Мне не совсем понятно, чего вы пытаетесь достичь, но я могу показать вам, как настроить задержку времени для сопрограммы. Для этого примера давайте поработаем с простым охлаждением, так же, как вы настроили в своем примере. Предполагая, что вы хотите постоянно что-то делать каждые 2 секунды, пока ваша игра запущена, в ваш код можно внести небольшие изменения.
function Start()
{
StartCoroutine(CoStart);
}
function CoStart() : IEnumerator
{
while(true)
{
//.. place your logic here
// function will sleep for two seconds before starting this loop again
yield WaitForSeconds(2);
}
}
Вы также можете рассчитать время ожидания, используя другую логику
function Start()
{
StartCoroutine(CoStart);
}
function CoStart() : IEnumerator
{
while(true)
{
//.. place your logic here
// function will sleep for two seconds before starting this loop again
yield WaitForSeconds(CalculateWait());
}
}
function CalculateWait() : float
{
// use some logic here to determine the amount of time to wait for the
// next CoStart cycle to start
return someFloat;
}
Если я полностью пропустил оценку, пожалуйста, обновите вопрос с более подробной информацией о том, что вы пытаетесь достичь.