- Home /
interpolate a move variable
I'm trying to slow down the character after he lands from jumping, and i want it to smoothly interpolate back into regular speed. I'm using the variable "slowDown" to slow down the character. However when using mathf.lerp it never goes back to 1, which is the default value of slowDown. The important part is the last line controller.Move as thats where i try to slow the character down (which works) and then build speed again (which doesnt).`
var forwardSpeed : float = 5;
var strafeSpeed : float = 2;
var jumpSpeed : float = 8;
static var moveX : float = 0;
static var moveZ : float = 0;
private var moveDirection : Vector3 = Vector3.zero;
private var gravity : float = 26;
var jumped : boolean = false;
var landed : boolean = false;
private var timeJumped : float;
var newStrafeSpeed :float;
var newForwardSpeed : float;
var slowDown : float = 1;
function Start () {
}
function Update () {
var controller : CharacterController = transform.GetComponent(CharacterController);
if(controller.isGrounded) {
if(jumped == true) {
slowDown = 0.3; landed = true;
}
if(landed == true) {
}
moveX = Input.GetAxis("Horizontal");
moveZ = Input.GetAxis("Vertical");
moveX *= strafeSpeed;
moveZ *= forwardSpeed;
moveDirection = Vector3(moveX, 0, moveZ);
moveDirection = transform.TransformDirection(moveDirection);
if(Input.GetButton("Jump")) {
gravity = 12; moveDirection.y = jumpSpeed; jumped = true;
}
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection Time.deltaTime Mathf.Lerp(slowDown, 1, Time.deltaTime * 0.1));
}
`
Your answer
Follow this Question
Related Questions
Click on an object and then edit the speed of my player? 1 Answer
Make a character controller shake. 2 Answers
Check CharacterController's Velocity 0 Answers
accessing charactercontroller 1 Answer
Why am I not moving forward? 1 Answer