diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index fd7c84e..dbf3ef1 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -286,14 +286,15 @@ MonoBehaviour: m_EditorClassIdentifier: rb: {fileID: 1772573266731274174} canWalk: 1 - canJump: 0 + canJump: 1 movementSpeed: 0.8 - jumpPower: 5 + jumpPower: 3 + afterJumpHorizontalSlowdownTime: 1 groundDrag: 1 airDrag: 0 - playerHeight: 0.5 + playerHeight: 0.6 + jumpAirSlowdown: 80 isGrounded: 0 - isJumping: 0 --- !u!114 &8474203461765366282 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/CharacterMovement_test.unity b/Assets/Scenes/CharacterMovement_test.unity index eddcf9b..c4fb069 100644 --- a/Assets/Scenes/CharacterMovement_test.unity +++ b/Assets/Scenes/CharacterMovement_test.unity @@ -220,6 +220,121 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &413704380 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1772573266731274163, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: canJump + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274163, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: jumpPower + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274163, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: playerHeight + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274163, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: jumpAirSlowdown + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274163, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: horizontalJumpInputTime + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274163, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: afterJumpHorizontalSlowdownTime + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274171, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_Name + value: Player_01 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274171, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274173, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274174, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_Mass + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalPosition.x + value: 4.54 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalPosition.y + value: 5.06 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 1772573266731274173, guid: 4dbf735f9da7b9f43b69f1577e4e5763, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 4dbf735f9da7b9f43b69f1577e4e5763, type: 3} --- !u!1 &589479057 GameObject: m_ObjectHideFlags: 0 @@ -241,7 +356,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!54 &589479058 Rigidbody: m_ObjectHideFlags: 0 @@ -394,6 +509,22 @@ MonoBehaviour: m_CallState: 2 m_ActionId: e09d302b-d2bc-4e8e-a3a4-8cb74814c2cc m_ActionName: Player/Jump[/Keyboard/space,/XInputControllerWindows/buttonSouth] + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 7d1c4cb5-032a-4799-ac7b-841a778c389d + m_ActionName: Player/ShootGrapple[/Mouse/leftButton] + - m_PersistentCalls: + m_Calls: [] + m_ActionId: abdcd477-96c8-41e2-a4ff-70e14e18f036 + m_ActionName: Player/Aim[/Mouse/position] + - m_PersistentCalls: + m_Calls: [] + m_ActionId: dcc9ba8a-9503-43ef-a481-d6fc1abc5880 + m_ActionName: Player/BoostToAnchor[/Mouse/rightButton] + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 098de720-4946-4b02-bafc-25d0f86614c6 + m_ActionName: Player/RaiseLowerGrapple[/Keyboard/w,/Keyboard/s] m_NeverAutoSwitchControlSchemes: 0 m_DefaultControlScheme: m_DefaultActionMap: Player @@ -416,9 +547,12 @@ MonoBehaviour: canJump: 1 movementSpeed: 1.5 jumpPower: 5 + afterJumpHorizontalSlowdownTime: 0 groundDrag: 0.2 + airDrag: 0 + playerHeight: 0 + jumpAirSlowdown: 0 isGrounded: 0 - isJumping: 0 --- !u!1 &684542796 GameObject: m_ObjectHideFlags: 0 @@ -534,6 +668,172 @@ MonoBehaviour: m_ShadowLayerMask: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} +--- !u!1001 &1241861833 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1772573266731274171, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_Name + value: Player_02 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalPosition.x + value: 4.54 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalPosition.y + value: 5.06 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4dbf735f9da7b9f43b69f1577e4e5763, type: 3} +--- !u!1 &1590268446 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1590268450} + - component: {fileID: 1590268449} + - component: {fileID: 1590268448} + - component: {fileID: 1590268447} + m_Layer: 3 + m_Name: floor_01 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1590268447 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1590268446} + m_Material: {fileID: 13400000, guid: 94aadfb8d34aeba4bb98e223427410a2, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1590268448 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1590268446} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1590268449 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1590268446} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1590268450 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1590268446} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -17.89, y: -10.98, z: 0} + m_LocalScale: {x: 25.444, y: 1, z: 6.2683} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1765725228 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/CharacterMovement.cs b/Assets/Scripts/CharacterMovement.cs index 5c16aea..afbe800 100644 --- a/Assets/Scripts/CharacterMovement.cs +++ b/Assets/Scripts/CharacterMovement.cs @@ -14,16 +14,40 @@ public class CharacterMovement : MonoBehaviour [Header("Movement settings")] [SerializeField] private float movementSpeed; [SerializeField] private float jumpPower; + [SerializeField] private float afterJumpHorizontalSlowdownTime; [Header("Character properties")] [SerializeField] private float groundDrag; [SerializeField] private float airDrag; [SerializeField] private float playerHeight; + [SerializeField] private float jumpAirSlowdown; public bool isGrounded; - public bool isJumping; private bool isStunned = false; private Vector3 rawInputMovement; + private float afterJumpHorizontalSlowdownTimeCounter; + + private bool stopWalk; + private void Update() + { + if (isGrounded) + { + stopWalk = false; + afterJumpHorizontalSlowdownTimeCounter = afterJumpHorizontalSlowdownTime; + } + else + { + afterJumpHorizontalSlowdownTimeCounter -= Time.deltaTime; + stopWalk = true; + + } + + if (afterJumpHorizontalSlowdownTimeCounter <= 0f) + { + stopWalk = false; + + } + } private void FixedUpdate() { @@ -32,10 +56,18 @@ public class CharacterMovement : MonoBehaviour } if (canWalk || canJump) { - + Debug.Log("test"); //The walk is actually handled here - rb.AddForce(new Vector3(rawInputMovement.x * movementSpeed, rawInputMovement.y, rawInputMovement.z * movementSpeed), ForceMode.Impulse); + if (!stopWalk) + { + rb.AddForce(new Vector3(rawInputMovement.x * movementSpeed, rawInputMovement.y, rawInputMovement.z * movementSpeed), ForceMode.Impulse); + } + else + { + rb.AddForce(new Vector3(rawInputMovement.x * movementSpeed/ jumpAirSlowdown, rawInputMovement.y, rawInputMovement.z * movementSpeed/ jumpAirSlowdown), ForceMode.Impulse); + } } + Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.down) * playerHeight, Color.yellow); //Ground Check @@ -57,10 +89,7 @@ public class CharacterMovement : MonoBehaviour //Handle Grounded if (isGrounded) - { rb.drag = groundDrag; - isJumping = false; - } else rb.drag= airDrag; } @@ -86,10 +115,13 @@ public class CharacterMovement : MonoBehaviour { if(canJump && isGrounded) { - isJumping = true; float inputMovement = value.ReadValue(); - rb.velocity = new Vector3(rb.velocity.x, jumpPower* inputMovement, rb.velocity.z); + rb.velocity = new Vector3(rb.velocity.x, jumpPower * inputMovement, rb.velocity.z); //rawInputMovement = new Vector3(rawInputMovement.x, jumpPower, rawInputMovement.z); + if (inputMovement == 1f) + { + Debug.Log("start jump"); + } } }