- Home /
Question by
La Frite Chaude · Oct 24, 2010 at 05:28 PM ·
rotationquaternionclassslerp
Interpolate rotation of character.
Hi, i'm working on a 2D platformer and everything is good(animation, axes...) Exept when my Guy doesn't accually turn back. So i added the Quaternion and the proper rotation but still, here it is:
class CharacterMove {
var speed : float = 6.0; var jumpSpeed : float = 8.0; var gravity : float = 20.0; var rotationSmoothing : float = 1.0; var moveDirection : Vector3 = Vector3.zero; } var movement : CharacterMove;
function Update() {
var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
moveDirection = Vector3(Input.GetAxis("Horizontal"), 0, 0);
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= movement.speed;
if (movement.moveDirection.sqrMagnitude > 0.01)
transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation (movement.moveDirection), Time.deltaTime * movement.rotationSmoothing);
if(Input.GetButton("Jump")) {
moveDirection.y = movement.jumpSpeed;
}
}
moveDirection.y -= movement.gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
@script RequireComponent (CharacterController)
Comment