when chaging between two Ground tagged objects my isGrounded boolean gets checked as false ,even to its on a ground object ,here is the code:
public float speed;
public float horizontalSpeed = 2f;
public int jumpHeight = 300;
public bool isGrounded = true;
private Animator animator;
private Rigidbody rigidBody;
void Start()
{
animator = GetComponent<Animator>();
rigidBody = GetComponent<Rigidbody>();
}
void Update()
{
Movememt();
}
void Movememt()
{
animator.SetFloat("WalkSide", Input.GetAxisRaw("Horizontal"));
animator.SetFloat("WalkBlend", Input.GetAxisRaw("Vertical"));
animator.SetFloat("Run", Input.GetAxisRaw("run"));
animator.SetBool("Jump", isGrounded);
if(Input.GetAxisRaw("Vertical") != 0 || Input.GetAxisRaw("Horizontal") != 0)
{
animator.SetBool("Walking", true);
}
else
{
animator.SetBool("Walking", false);
}
if (animator.GetFloat("Run") > 0)
{
speed = 10f;
}
else
{
speed = 5f;
}
//Movement Front Back
float v = Input.GetAxisRaw("Vertical") * speed * Time.deltaTime;
transform.Translate(0, 0, v);
//end movement Front back
//Movement Left Right
float h = Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime;
transform.Translate(h, 0, 0);
//End movement left right
//Movement Mouse
float hMouse = horizontalSpeed * Input.GetAxisRaw("Mouse X");
transform.Rotate(0, hMouse, 0);
//End Movement mouse
//jump
if(Input.GetKeyDown(KeyCode.Space) && isGrounded == true)
{
rigidBody.AddRelativeForce(Vector3.up * jumpHeight);
}
//end jump
}
void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag == "Ground")
{
isGrounded = true;
}
}
void OnCollisionExit(Collision collision)
{
if(collision.gameObject.tag == "Ground")
{
isGrounded = false;
}
}
}