- Home /
CharacterController.isGrounded not working reliably
Hi,
I just switched over to a CC for my player, and I am pretty new to it, so that is why I am posting because I am having trouble with it. I put a Debug.Log for isGrounded, and it maybe fired 3 times in a minute of walking in circles.
Here's my code. When I added the gravity effect with the hopes of grounding him more accurately, I started slipping through the floor. I have a gravity.y of -75, a fixed framerate of 0.01, and this is my code; I added comments to the problem code :)
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
private float mouseX;
private float mouseY;
public float xSensitiv;
public float ySensitiv;
public float jumpForce;
private Vector3 [] movement = new Vector3 [5];
void FixedUpdate () {
Debug.Log (GetComponent <CharacterController> ().isGrounded);
if (Input.GetKey (KeyCode.W))
{
movement [0] = transform.forward;
}
else
{
movement [0] = Vector3.zero;
}
if (Input.GetKey (KeyCode.A))
{
movement [1] = -transform.right;
}
else
{
movement [1] = Vector3.zero;
}
if (Input.GetKey (KeyCode.S))
{
movement [2] = -transform.forward;
}
else
{
movement [2] = Vector3.zero;
}
if (Input.GetKey (KeyCode.D))
{
movement [3] = transform.right;
}
else
{
movement [3] = Vector3.zero;
}
mouseX += Input.GetAxis ("Mouse X") * xSensitiv * Time.deltaTime;
transform.rotation = Quaternion.Euler (0, mouseX, 0);
mouseY -= Input.GetAxis ("Mouse Y") * ySensitiv * Time.deltaTime;
mouseY = Mathf.Clamp (mouseY, -90, 90);
Camera.main.transform.localRotation = Quaternion.Euler (mouseY, 0, 0);
if (GetComponent <CharacterController> ().isGrounded == true)
{
movement [4] = Vector3.zero;
if (Input.GetKey (KeyCode.Space))
{
movement [4] = Vector3.up * jumpForce;
}
}
else
{
movement [4] += Vector3.down * Physics.gravity.y * Time.deltaTime; // This line sets the gravity
}
GetComponent <CharacterController> ().Move ((movement [0] + movement [1] + movement [2] + movement [3] + movement [4]) * Time.deltaTime); // This line applies movement, such as WASD movement and gravity
}
}
@Addyarb I decided to switch to a CharacterController. Can you help me with this new issue? I'm sure there's something I'm missing.
Your answer
Follow this Question
Related Questions
Spherical Gravity Question 1 Answer
Constant force, with gravity, and correct collisions. 2 Answers
Physics and gravity of my 3D model 0 Answers
how to make an object fall slowly ? 2 Answers