#c# #unity3d
Вопрос:
Я пытаюсь создать систему выносливости, при которой, если игрок удерживаетShift, он теряет выносливость.
У меня это там, где каждый разShift, когда нажимают, они теряют часть, но как я заставляю их постоянно терять выносливость?
Например, каждую секунду они теряют 3, вместо того чтобы терять только 3 при нажатии клавиши.
Вот текущий код, который у меня есть для этого.
//running
if (Input.GetKeyDown(KeyCode.LeftShift))
{
speed = speed run_speed;
Stamina = Stamina - 3;
}
if (Input.GetKeyUp(KeyCode.LeftShift))
{
speed = speed - run_speed;
Stamina = Stamina 3;
}
Ответ №1:
Основываясь на вашем коде, вы можете объявить логическое bool isRunning
значение в классе и установить его true
при запуске.
if (Input.GetKeyDown(KeyCode.LeftShift))
{
speed = speed run_speed;
// Stamina = Stamina - 3;
isRunning = true;
}
if (Input.GetKeyUp(KeyCode.LeftShift))
{
speed = speed - run_speed;
// Stamina = Stamina 3;
isRunning = false;
}
Добавьте это в свою функцию обновления
private void Update(){
if (isRunning) { Stamina -= 3 * Time.deltaTime }
else { Stamina = 3 * Time.deltaTime }
}