diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index e953894..76a995d 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &4744918993632247556 +--- !u!1 &1084592339258698369 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,10 +8,41 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4079669462148839300} - - component: {fileID: 5693866633655101298} - - component: {fileID: 7355054851733484538} - - component: {fileID: 6310942981051980035} + - component: {fileID: 2033391409425088012} + m_Layer: 0 + m_Name: LegsPosition + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2033391409425088012 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1084592339258698369} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.9, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6890030909251295590} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1629483633304816955 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4506534449155536579} + - component: {fileID: 1094126809165627842} + - component: {fileID: 6485933102256554919} + - component: {fileID: 1432024724141933518} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -19,28 +50,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &4079669462148839300 +--- !u!4 &4506534449155536579 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4744918993632247556} + m_GameObject: {fileID: 1629483633304816955} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.5, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 2258969748614946840} + m_Father: {fileID: 6890030909251295590} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!20 &5693866633655101298 +--- !u!20 &1094126809165627842 Camera: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4744918993632247556} + m_GameObject: {fileID: 1629483633304816955} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 @@ -85,21 +116,21 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 ---- !u!81 &7355054851733484538 +--- !u!81 &6485933102256554919 AudioListener: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4744918993632247556} + m_GameObject: {fileID: 1629483633304816955} m_Enabled: 1 ---- !u!114 &6310942981051980035 +--- !u!114 &1432024724141933518 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4744918993632247556} + m_GameObject: {fileID: 1629483633304816955} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} @@ -137,7 +168,7 @@ MonoBehaviour: m_MipBias: 0 m_VarianceClampScale: 0.9 m_ContrastAdaptiveSharpening: 0 ---- !u!1 &7614691828756161553 +--- !u!1 &9016311960615966999 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -145,13 +176,12 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2258969748614946840} - - component: {fileID: 2279166656180073014} - - component: {fileID: 6431962544344112139} - - component: {fileID: 4523643939267655006} - - component: {fileID: 4951597813642074275} - - component: {fileID: 1679079740342129362} - - component: {fileID: 5239348240812869442} + - component: {fileID: 6890030909251295590} + - component: {fileID: 1892283461227420150} + - component: {fileID: 7857072580326449292} + - component: {fileID: 1437407097293080706} + - component: {fileID: 397169322893853401} + - component: {fileID: 1198108720433238150} m_Layer: 0 m_Name: Player m_TagString: Untagged @@ -159,37 +189,38 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2258969748614946840 +--- !u!4 &6890030909251295590 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7614691828756161553} + m_GameObject: {fileID: 9016311960615966999} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 2, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 4079669462148839300} + - {fileID: 4506534449155536579} + - {fileID: 2033391409425088012} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2279166656180073014 +--- !u!33 &1892283461227420150 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7614691828756161553} + m_GameObject: {fileID: 9016311960615966999} m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &6431962544344112139 +--- !u!23 &7857072580326449292 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7614691828756161553} + m_GameObject: {fileID: 9016311960615966999} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -228,40 +259,13 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!54 &4523643939267655006 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7614691828756161553} - serializedVersion: 4 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_CenterOfMass: {x: 0, y: 0, z: 0} - m_InertiaTensor: {x: 1, y: 1, z: 1} - m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ImplicitCom: 1 - m_ImplicitTensor: 1 - m_UseGravity: 1 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!143 &4951597813642074275 +--- !u!143 &1437407097293080706 CharacterController: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7614691828756161553} + m_GameObject: {fileID: 9016311960615966999} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -280,13 +284,13 @@ CharacterController: m_SkinWidth: 0.08 m_MinMoveDistance: 0.001 m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1679079740342129362 +--- !u!114 &397169322893853401 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7614691828756161553} + m_GameObject: {fileID: 9016311960615966999} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: ecc089d81c2c4574693f263b2365fdc5, type: 3} @@ -296,16 +300,23 @@ MonoBehaviour: sprintSpeedMultiplier: 2 crouchSpeedMultiplier: 0.5 crouchHeightMultiplier: 0.5 - jumpForce: 1 + jumpForce: 5 gravityMultiplier: 1 + legsPosition: {fileID: 2033391409425088012} + legsRadius: 0.2 + groundMask: + serializedVersion: 2 + m_Bits: 64 isCrouching: 0 ---- !u!114 &5239348240812869442 + gravityVelocity: {x: 0, y: 0, z: 0} + grounded: 0 +--- !u!114 &1198108720433238150 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7614691828756161553} + m_GameObject: {fileID: 9016311960615966999} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1241dd14aac57cb40a0e8493ced10162, type: 3} diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity index ccc21a4..dcecebd 100644 --- a/Assets/Scenes/TestScene.unity +++ b/Assets/Scenes/TestScene.unity @@ -358,7 +358,7 @@ GameObject: - component: {fileID: 1692628190} - component: {fileID: 1692628189} - component: {fileID: 1692628188} - m_Layer: 0 + m_Layer: 6 m_Name: Cube m_TagString: Untagged m_Icon: {fileID: 0} @@ -709,44 +709,69 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2060574361} m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &2060574367 -Transform: +--- !u!1001 &3997104640432974468 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2060574361} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 2, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1907799224} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2060574368 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2060574361} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1241dd14aac57cb40a0e8493ced10162, type: 3} - m_Name: - m_EditorClassIdentifier: - horSpeed: 140 - verSpeed: 100 - verUpperBound: 45 - verLowerBound: -45 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalPosition.y + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6890030909251295590, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9016311960615966999, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} + propertyPath: m_Name + value: Player + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 1560783769} - {fileID: 1692628191} - - {fileID: 2060574367} + - {fileID: 3997104640432974468} - {fileID: 1555151540} - {fileID: 840308438} diff --git a/Assets/Scripts/PlayerMovement.cs b/Assets/Scripts/PlayerMovement.cs index 8e4e80c..683a0c4 100644 --- a/Assets/Scripts/PlayerMovement.cs +++ b/Assets/Scripts/PlayerMovement.cs @@ -2,24 +2,31 @@ using UnityEngine; public class PlayerMovement : MonoBehaviour { + [Header("Horizontal movement")] public float speed = 1f; public float sprintSpeedMultiplier = 2f; public float crouchSpeedMultiplier = 0.5f; public float crouchHeightMultiplier = 0.5f; + [Header("Vertical movement")] public float jumpForce = 1f; public float gravityMultiplier = 1f; + public Transform legsPosition; + public float legsRadius = 0.5f; + public LayerMask groundMask; + + [Header("Debug info")] + [SerializeField] bool isCrouching = false; + [SerializeField] Vector3 gravityVelocity; + [SerializeField] bool grounded; CharacterController characterController; - [SerializeField] bool isCrouching = false; - Vector3 gravityVelocity; - bool grounded; void Start() { characterController = GetComponent(); } void Update() { - grounded = characterController.isGrounded; + grounded = GetOnGround(); HandleCrouching(); HandleMovement(); HandleJumping(); @@ -36,12 +43,11 @@ public class PlayerMovement : MonoBehaviour characterController.height /= crouchHeightMultiplier; characterController.center -= Vector3.down * (characterController.height * (1 - crouchHeightMultiplier)) / 2; } - // if (characterController.isGrounded) rb.AddForce(Vector3.up * (characterController.height / 5), ForceMode.VelocityChange); } } void HandleJumping() { - if (Input.GetKeyDown(KeyCode.Space) && grounded) { + if (Input.GetKey(KeyCode.Space) && grounded) { gravityVelocity = Vector3.up * (jumpForce * gravityMultiplier); } } @@ -58,11 +64,15 @@ public class PlayerMovement : MonoBehaviour } void DoGravity() { - if (grounded && gravityVelocity.y < 0) gravityVelocity = Vector3.down * 0.5f; + if (grounded && gravityVelocity.y < 0) gravityVelocity = Vector3.zero; gravityVelocity += Physics.gravity * Time.deltaTime; characterController.Move(gravityVelocity * (Time.deltaTime * gravityMultiplier)); } + bool GetOnGround() { + return Physics.CheckSphere(legsPosition.position, legsRadius, groundMask); + } + void OnControllerColliderHit(ControllerColliderHit hit) { hit.gameObject.SendMessage("ReverseOnControllerColliderHit", hit, SendMessageOptions.DontRequireReceiver); } diff --git a/Packages/manifest.json b/Packages/manifest.json index dd52105..92e58bc 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -11,6 +11,7 @@ "com.unity.render-pipelines.universal": "17.0.3", "com.unity.test-framework": "1.4.5", "com.unity.timeline": "1.8.7", + "com.unity.toolchain.linux-x86_64": "2.0.10", "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.10", "com.unity.ugui": "2.0.0", "com.unity.visualscripting": "1.9.5", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 4335535..9a7d1f2 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -218,6 +218,16 @@ }, "url": "https://packages.unity.com" }, + "com.unity.toolchain.linux-x86_64": { + "version": "2.0.10", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.10", + "com.unity.sysroot.linux-x86_64": "2.0.9" + }, + "url": "https://packages.unity.com" + }, "com.unity.toolchain.win-x86_64-linux-x86_64": { "version": "2.0.10", "depth": 0, diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 6413d11..4539691 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -2,7 +2,7 @@ %TAG !u! tag:unity3d.com,2011: --- !u!78 &1 TagManager: - serializedVersion: 2 + serializedVersion: 3 tags: [] layers: - Default @@ -11,7 +11,7 @@ TagManager: - - Water - UI - - + - Ground - - - @@ -50,27 +50,3 @@ TagManager: - Light Layer 5 - Light Layer 6 - Light Layer 7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -