I’m very new to Unity and I’ve been trying to learn it all day but I can’t seem to get my character to move while he’s in the air. I’m trying to make a simple 3D platformer, simpler than the tutorial one in the asset store so I don’t want to use that as a reference.
I know the isGrounded statement is in there but when i take that out or seperate it so it tests for when the controller is not grounded, the jumping turns into a small hop and slowly falls down.
var speed : float = 6.0;
var jumpSpeed : float = 8.0;
var gravity : float = 20.0;
private var moveDirection : Vector3 = Vector3.zero;
function Update() {
var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
// We are grounded, so recalculate
// move direction directly from axes
moveDirection = Vector3(Input.GetAxis("Horizontal"), 0, 0);
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
}
}
// Apply gravity
moveDirection.y -= gravity * Time.deltaTime;
// Move the controller
controller.Move(moveDirection * Time.deltaTime);
}