Не видя ваш код / реальную проблему, трудно дать ответ, который выходит за рамки, а не очень общий:
Когда вы хотите использовать какую-то функцию ожидания в Unity, вы должны использовать сопрограммы ] используя, например, WaitForSeconds , WaitUntil , WaitWhile и другие.
private IEnumerator DoSomething()
{
// doing something
// waits 5 seconds
yield return new WaitForSeconds(5);
// do something else
}
Вы запускаете это из другого метода (внутри скрипта MonoBehaviour), используя
StartCoroutine(DoSomething());
Конечно, также можно просто подождать в методе Update
MonoBehaviours, например. что-то вроде
private float timer;
private bool activateSleep;
private void Update()
{
if(activateSleep)
{
timer += Time.deltaTime;
if(timer <= 0)
{
activateSleep = false;
}
else
{
// return so the rest of Update is not done
return;
}
}
// Otherwise do what you would usually do
}
public void ActivateSleep(float forSeconds)
{
timer = forSeconds;
activateSleep = true;
}
, но вы уже видите, как «красиво» это получается ...
Из Википедии:
Предописание
Объявление переменной или функции, которые еще не определяются. Их defnition виден позже.
Ссылка вперед
Подобный Предописанию, но где переменная или функция кажутся первыми, определение также на месте.
предописания используются для разрешения однопроходной компиляции языка (C, Паскаль).
если ссылки вперед позволяются без предописания (Java, C#), компилятор с двумя передачами требуется.