- Home /
How to make my character limited run?
Hello I customised the fps input controller so I could run. Here is the way I modified it but I want to know how do I limit how long I can run!
private var motor : CharacterMotor;
// Use this for initialization function Awake () { motor = GetComponent(CharacterMotor); }
// Update is called once per frame function Update () { // Get the input vector from kayboard or analog stick var directionVector = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); var sprint : int = 7; var reg_speed: int = 4;
if (directionVector != Vector3.zero) {
// Get the length of the directon vector and then normalize it
// Dividing by the length is cheaper than normalizing when we already have the length anyway
var directionLength = directionVector.magnitude;
directionVector = directionVector / directionLength;
// Make sure the length is no bigger than 1
directionLength = Mathf.Min(1, directionLength);
// Make the input vector more sensitive towards the extremes and less sensitive in the middle
// This makes it easier to control slow speeds when using analog sticks
directionLength = directionLength * directionLength;
// Multiply the normalized direction vector by the modified length
directionVector = directionVector * directionLength;
}
// Apply the direction to the CharacterMotor
motor.inputMoveDirection = transform.rotation * directionVector;
motor.inputJump = Input.GetButton("Jump");
//Speeding Up
if (Input.GetKeyDown(KeyCode.LeftShift)){
motor.movement.maxForwardSpeed = sprint;
}
if (Input.GetKeyUp(KeyCode.LeftShift)){
motor.movement.maxForwardSpeed = reg_speed;
} } // Require a character controller to be attached to the same game object @script RequireComponent (CharacterMotor)
Comment