- 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
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                