Fixed player movement

This commit is contained in:
adrenalx 2016-06-26 13:46:06 -04:00
parent 0a7b160ec8
commit 7b40c51101

View File

@ -6,7 +6,11 @@ public class PlayerMovement : MonoBehaviour
public float speed = 0f; public float speed = 0f;
public float turn = 0f; public float turn = 0f;
public float jump = 0f;
//private Rigidbody rb;
public Rigidbody characterRigidBody; public Rigidbody characterRigidBody;
private bool isGrounded;
Vector3 up;
// Boost // Boost
public float boostFactor; public float boostFactor;
@ -32,22 +36,28 @@ public class PlayerMovement : MonoBehaviour
private void ManageMovement() private void ManageMovement()
{ {
Vector3 fowardVector = new Vector3(Camera.main.transform.forward.x, 0, Camera.main.transform.forward.z); Vector3 forwardVector = new Vector3(Camera.main.transform.forward.x, 0, Camera.main.transform.forward.z);
if (Input.GetAxis("Vertical") > 0) 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) private void SpeedBoostTimer(float seconds)
{ {
if (SpeedBoostTimerStart) if (SpeedBoostTimerStart)