diff --git a/Assets/Games/Platformer/Ground.physicsMaterial2D b/Assets/Games/Platformer/Ground.physicsMaterial2D new file mode 100644 index 0000000..db40d00 --- /dev/null +++ b/Assets/Games/Platformer/Ground.physicsMaterial2D @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!62 &6200000 +PhysicsMaterial2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ground + serializedVersion: 2 + friction: 0 + bounciness: 0 + m_FrictionCombine: 1 + m_BounceCombine: 4 diff --git a/Assets/Games/Platformer/Ground.physicsMaterial2D.meta b/Assets/Games/Platformer/Ground.physicsMaterial2D.meta new file mode 100644 index 0000000..eefebcf --- /dev/null +++ b/Assets/Games/Platformer/Ground.physicsMaterial2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c29c2a30d0b3d4a9b95031c5dfbd222a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 6200000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Games/Platformer/Platformer Player.prefab b/Assets/Games/Platformer/Platformer Player.prefab index 421163e..907e81b 100644 --- a/Assets/Games/Platformer/Platformer Player.prefab +++ b/Assets/Games/Platformer/Platformer Player.prefab @@ -187,11 +187,13 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 64 walkSpeed: 5 + walkSpeedFactor: 30 + maxSpeed: 5 virtualAxisX: 0 virtualButtonJump: 0 virtualButtonJumpLastFrame: 0 turnaroundMultiplier: 2 - walkSmooth: 0 + walkSmooth: 0.98 secondsToFullSpeed: 0 jumpSpeed: 17 coyoteTime: 0.1 diff --git a/Assets/Games/Platformer/PlatformerPlayerMovement.cs b/Assets/Games/Platformer/PlatformerPlayerMovement.cs index 2041720..c183157 100644 --- a/Assets/Games/Platformer/PlatformerPlayerMovement.cs +++ b/Assets/Games/Platformer/PlatformerPlayerMovement.cs @@ -14,6 +14,8 @@ public class PlayerMovement : MonoBehaviour [Header("Movement")] public float walkSpeed; + public float walkSpeedFactor = 1f; + public float maxSpeed = 5f; public float virtualAxisX; public float virtualButtonJump; public float virtualButtonJumpLastFrame; @@ -65,7 +67,6 @@ public class PlayerMovement : MonoBehaviour HorizontalMovement(); - Land(); } @@ -123,7 +124,18 @@ public class PlayerMovement : MonoBehaviour private void HorizontalMovement() { - body.linearVelocity = new Vector2(virtualAxisX * walkSpeed, body.linearVelocity.y); + //body.linearVelocity = new Vector2(virtualAxisX * walkSpeed, body.linearVelocity.y); + body.AddForce(new Vector2(virtualAxisX * walkSpeed * walkSpeedFactor, 0), ForceMode2D.Force); + + if (Mathf.Abs(body.linearVelocityX) >= maxSpeed) + { + body.linearVelocity = new Vector2(Mathf.Sign(body.linearVelocityX) * maxSpeed, body.linearVelocity.y); + } + + //if (!IsPhysicallyGrounded()) + //{ + body.linearVelocityX *= walkSmooth; + //} if (transform.position == positionLastFrame && (InputSystem.actions.FindAction($"Player {player} Move").ReadValue().x == 0)) { @@ -135,6 +147,12 @@ public class PlayerMovement : MonoBehaviour private void UpdateVirtualAxis() { + virtualButtonJump = InputSystem.actions.FindAction($"Player {player} Action").ReadValue(); + virtualButtonJumpLastFrame = InputSystem.actions.FindAction($"Player {player} Action").WasPressedThisFrame() ? 1 : 0; + + virtualAxisX = InputSystem.actions.FindAction($"Player {player} Move").ReadValue().x; + return; + // From https://discussions.unity.com/t/manually-smooth-input-getaxisraw/225141/4 float basicallyRawAxis = InputSystem.actions.FindAction($"Player {player} Move").ReadValue().x; float sensitivity = 3; @@ -158,9 +176,6 @@ public class PlayerMovement : MonoBehaviour { turnaroundMultiplier = 1; } - - virtualButtonJump = InputSystem.actions.FindAction($"Player {player} Action").ReadValue(); - virtualButtonJumpLastFrame = InputSystem.actions.FindAction($"Player {player} Action").WasPressedThisFrame() ? 1 : 0; } private void OnTriggerEnter2D(Collider2D collision) { diff --git a/Assets/Games/Platformer/Player.physicsMaterial2D b/Assets/Games/Platformer/Player.physicsMaterial2D new file mode 100644 index 0000000..13e03db --- /dev/null +++ b/Assets/Games/Platformer/Player.physicsMaterial2D @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!62 &6200000 +PhysicsMaterial2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Player + serializedVersion: 2 + friction: 0 + bounciness: 0 + m_FrictionCombine: 1 + m_BounceCombine: 4 diff --git a/Assets/Games/Platformer/Player.physicsMaterial2D.meta b/Assets/Games/Platformer/Player.physicsMaterial2D.meta new file mode 100644 index 0000000..daa6cad --- /dev/null +++ b/Assets/Games/Platformer/Player.physicsMaterial2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 522e8bb901c31496c91921bd603c0e8b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 6200000 + userData: + assetBundleName: + assetBundleVariant: