- Home /
Player object: capsule with Character Controller goes through the floor randomly
Dear forum user,
I'm just a beginner on Unity. I have a floor which have Box Collider and trigger check box is not marked. I'm using Capsule as Player object which has Rigidbody and Character Controller. If I have understood correctly Character Controller include a collider so that's why I don't have any other collider on the player object. I'm using following script to move the player object:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(CharacterController))]
[AddComponentMenu("Control Script/FPS Input")]
public class FPSInput : MonoBehaviour {
public float speed = 6.0f;
public float gravity = -9.8f;
private CharacterController _charController;
void Start () {
_charController = GetComponent<CharacterController> ();
}
void Update () {
float deltaX = Input.GetAxis ("Horizontal") * speed;
float deltaZ = Input.GetAxis ("Vertical") * speed;
Vector3 movement = new Vector3 (deltaX, 0, deltaZ);
movement = Vector3.ClampMagnitude (movement, speed);
movement.y = gravity;
movement *= Time.deltaTime;
movement = transform.TransformDirection (movement);
_charController.Move (movement);
}
}
Start point of the player object is above the floor so that it doesn't intersect with the floor. Gravity will pull the player on the floor on the beginning.
Still my player object randomly penetrates the floor, and falls into void. I can play it some time, and it just randomly goes through the floor. Any ideas what can cause this unwanted behavior?
Thank you for your help in advance.