From 7b40c511014dfb9d5bb128defc75a3d5203255bc Mon Sep 17 00:00:00 2001 From: adrenalx Date: Sun, 26 Jun 2016 13:46:06 -0400 Subject: [PATCH] Fixed player movement --- Assets/Scripts/PlayerMovement.cs | 36 ++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/Assets/Scripts/PlayerMovement.cs b/Assets/Scripts/PlayerMovement.cs index 975c32b..34f238b 100644 --- a/Assets/Scripts/PlayerMovement.cs +++ b/Assets/Scripts/PlayerMovement.cs @@ -6,7 +6,11 @@ public class PlayerMovement : MonoBehaviour public float speed = 0f; public float turn = 0f; + public float jump = 0f; + //private Rigidbody rb; public Rigidbody characterRigidBody; + private bool isGrounded; + Vector3 up; // Boost public float boostFactor; @@ -32,22 +36,28 @@ public class PlayerMovement : MonoBehaviour private void ManageMovement() { - Vector3 fowardVector = new Vector3(Camera.main.transform.forward.x, 0, Camera.main.transform.forward.z); - if (Input.GetAxis("Vertical") > 0) + Vector3 forwardVector = new Vector3(Camera.main.transform.forward.x, 0, Camera.main.transform.forward.z); + if (Input.GetAxis("Vertical") > 0 && isGrounded) { - characterRigidBody.velocity = (fowardVector * speed * boostFactor * Time.deltaTime); + characterRigidBody.velocity = (forwardVector * speed * boostFactor * Time.deltaTime); } - else if (Input.GetAxis("Vertical") < 0) + else if (Input.GetAxis("Vertical") < 0 && isGrounded) { - characterRigidBody.velocity = (-fowardVector * speed * boostFactor * Time.deltaTime); + characterRigidBody.velocity = (-forwardVector * speed * boostFactor * Time.deltaTime); } - if (Input.GetAxis("Horizontal") < 0) + if (Input.GetAxis("Horizontal") < 0 && isGrounded) { - characterRigidBody.velocity = (Vector3.Cross(-transform.up, fowardVector) * speed * boostFactor * Time.deltaTime ); + characterRigidBody.velocity = (Vector3.Cross(-transform.up, forwardVector) * speed * boostFactor * Time.deltaTime ); } - else if (Input.GetAxis("Horizontal") > 0) + else if (Input.GetAxis("Horizontal") > 0 && isGrounded) { - characterRigidBody.velocity = (Vector3.Cross(transform.up, fowardVector) * speed * boostFactor * Time.deltaTime); + characterRigidBody.velocity = (Vector3.Cross(transform.up, forwardVector) * speed * boostFactor * Time.deltaTime); + } + + if (Input.GetButtonDown("Jump") && isGrounded) + { + characterRigidBody.AddForce(0, jump * boostFactor, 0); + isGrounded = false; } } @@ -66,6 +76,14 @@ public class PlayerMovement : MonoBehaviour } } + void OnCollisionEnter(Collision collision) + { + if (collision.gameObject.tag == "Ground") + { + isGrounded = true; + } + } + private void SpeedBoostTimer(float seconds) { if (SpeedBoostTimerStart)