#unity3d #wait #unityscript
#unity3d #подождите #unityscript
Вопрос:
Итак, в Unity у меня есть этот код голода, который каждый раз немного вычитается.
#pragma strict
var Hunger:float;
var MaxHunger:float=100;
var timer:float;
function Start ()
{
Hunger=MaxHunger;
}
function Update ()
{
timer =Time.deltaTime;
if(timer>=10)
{
Hunger-=1.0;
}
}
Моя проблема в том, что я хочу, чтобы из голода вычиталось только 1 каждые пять секунд. Я уже пытался настроить его на 0,2 каждые секунду, но это не работает. Мне просто нужно подождать пять секунд, прежде чем вычитать 1. Спасибо!
Комментарии:
1. Используйте функцию javascript «setInterval». Вот ссылка на инструкции. w3schools.com/jsref/met_win_setinterval.asp
2. @KentAnderson Взгляните на w3fools . И это документ setInterval mdn.
Ответ №1:
Вы могли бы использовать метод InvokeRepeating:
function SubtractHunger ()
{
Hunger -= 1.0;
}
function Start () {
Hunger = MaxHunger;
var seconds:int = 5;
InvokeRepeating("SubtractHunger", seconds, seconds);
}
// and then you don't need the Update function
Или вы можете использовать timeLastSubtracted
переменную или аналогичную для проверки в вашей Update
функции:
var timeLastSubtracted:float;
function Update ()
{
if (Time.time >= timeLastSubtracted 5) {
Hunger -= 1.0;
timeLastSubtracted = Time.time;
}
}
Комментарии:
1. Боже мой! Спасибо!