Описание
Приостанавливает выполнение сопрограммы на заданное количество секунд, используя масштабированное время.
Приостановленное реальное время равно заданному времени, деленному на Time.timeScale. См. раздел WaitForSecondsRealtime, если вы хотите использовать немасштабированное время ожидания. WaitForSeconds можно использовать только с оператором yield
в сопрограммах.
Существуют некоторые факторы, из-за которых фактическое время ожидания может не совпадать с указанным временем:
1. Начать ожидание в конце
текущего кадра. Если вы запустите WaitForSeconds с продолжительностью 't' в длинном кадре (например, в том, который имеет длинную операцию, которая блокирует основной поток, например некоторую синхронную загрузку), сопрограмма вернуть 't' секунд после окончания кадра, а не 't' секунд после его вызова.
2. Разрешить сопрограмме возобновлять работу с первого кадра по истечении t секунд, а не точно по истечении t секунд.
using UnityEngine;
using System.Collections;
public class WaitForSecondsExample : MonoBehaviour
{
void Start()
{
//Start the coroutine we define below named ExampleCoroutine.
StartCoroutine(ExampleCoroutine());
}
IEnumerator ExampleCoroutine()
{
//Print the time of when the function is first called.
Debug.Log("Started Coroutine at timestamp : " + Time.time);
//yield on a new YieldInstruction that waits for 5 seconds.
yield return new WaitForSeconds(5);
//After we have waited 5 seconds print the time again.
Debug.Log("Finished Coroutine at timestamp : " + Time.time);
}
}
Смотрите так же: MonoBehaviour.StartCoroutine, AsyncOperation, WaitForEndOfFrame, WaitForFixedUpdate, WaitForSecondsRealtime, WaitUntil, WaitWhile.
Конструкторы
WaitForSeconds | Приостанавливает выполнение сопрограммы на заданное количество секунд, используя масштабированное время. |