Вот переделал скрипт, все работает почти как надо, вот только одна проблема, когда я отпускаю Shift, то у игрока остается скорость 10... Как исправить?
#pragma strict
var SpeedOgran = 6.0;
var controller : CharacterController;
var motor : CharacterMotor;
var activeres = false;
function Start()
{
controller = GetComponent(CharacterController);
motor = GetComponent(CharacterMotor);
}
function Update()
{
if(Input.GetKey(KeyCode.LeftShift) && activeres == false) // Проверяем персонажа на нажатие кнопок W и lshift
{
if(controller.isGrounded && controller.velocity.magnitude > 0.3) // Проверяем персонажа на земле он или нет
{
if(SpeedOgran > 0) // проверяем персонажа на количество выносливости
{
SpeedOgran -= 1.0*Time.deltaTime;
motor.movement.maxForwardSpeed = 10;
}
if(SpeedOgran <= 0 && activeres == false)
{
activeres = true;
motor.movement.maxForwardSpeed = 6;
}
}
}
if(activeres == true) SpeedOgran += 1.0*Time.deltaTime;
if(SpeedOgran > 6){ SpeedOgran = 6; activeres = false; }
}