Ссылка на инструкцию по выходу
Корутин отложил исполнение приговора до yield return заявление. yield return null приостанавливает выполнение коррутины до следующего кадра. Но yield return может также возвращать инструкцию для Unity Editor или время выполнения, например, ожидать определенное время или до тех пор, пока не будет выполнено условие, прежде чем возобновить выполнение сопутствующей программы.
Инструкции по выработке во время выполнения
Unity содержит набор пользовательских инструкций yield, полученных из UnityEngine.YieldInstruction, которые можно использовать для возобновления после указанного времени, при выполнении указанных условий или в определенных точках цикла Player.
| Образование | Описание |
|---|---|
AsyncOperation |
Приостанавливает сопутствующую программу и возобновляет ее при завершении асинхронной операции, например загрузки сцены или ресурса. |
WaitForEndOfFrame |
Приостанавливает сопроцесс и возобновляет его в конце кадра, после всех событий рендеринга и GUI. Примечание: WaitForEndOfFrame никогда не запускается в режиме редактирования, когда Редактор находится в пакетном режиме, даже если скрипты помечены [ExecuteInEditMode] или [ExecuteAlways]. |
WaitForFixedUpdate |
Приостанавливает сопутствующую программу и возобновляет ее в конце следующего обновления физики, после всех физических расчетов. |
WaitForSeconds |
Приостанавливает сопутствующую программу и возобновляет ее через заданное количество секунд с учетом шкалы времени. |
WaitForSecondsRealtime |
Приостанавливает сопутствующую программу и возобновляет ее через указанное количество секунд, игнорируя шкалу времени. |
WaitUntil |
Приостанавливает сопутствующую программу и возобновляет ее, когда предоставленный делегат оценивает true. |
WaitWhile |
Приостанавливает сопутствующую программу и возобновляет ее, когда предоставленный делегат оценивает false. |
Для получения дополнительной информации и примеров использования этих инструкций по выходу, обратитесь к их API справочным страницам.
Для визуального представления того, где различные сопутствующие процедуры возобновляются в цикле Player, обратитесь к диаграмме в Порядок выполнения функции события.
UnityTest инструкции по выходу
Unity Тесты Test Framework, помеченные атрибутом [UnityTest], выполняются как сопроцедуры. Пакет Test Framework добавляет поддержку дополнительных инструкций yield для управления Unity Editor из тестов и предоставляет возможность определения собственных инструкций yield.
| Образование | Описание |
|---|---|
EnterPlayMode |
Создает инструкцию yield для Unity Editor, чтобы перейти в режим Play. |
ExitPlayMode |
Создает инструкцию yield для Unity Editor для выхода из режима воспроизведения. |
RecompileScripts |
Запускает перекомпиляцию скриптов в Unity Editor. |
WaitForDomainReload |
Задерживает выполнение скриптов до перезагрузки входящего домена. |
Дополнительные сведения об инструкциях по выходу, предоставляемых тестовой платформой Unity, см. в Инструкции по выходу для редактора.
Инструкции по выходу редактора
Пакет Editor coroutines добавляет поддержку для коротунов, которые работают в режиме Edit Unity Editor. Пакет включает дополнительные инструкции yield для коротунов режима Edit.
| Образование | Описание |
|---|---|
EditorWaitForSeconds |
Возобновляет EditorCoroutine после указанного количества секунд, с учетом шкалы времени. |
Дополнительные сведения см. в Сопрограммы редактора.
Поддержка пакетного режима
Все инструкции по выделению ресурсов, выполняемые во время выполнения, выполняются как обычно, когда вы запускаете автономный Player в пакетном режиме.
Если вы запускаете Редактор в пакетном режиме и в вашем проекте есть скрипты, помеченные [ExecuteInEditMode] или [ExecuteAlways], так что они также запускаются в режиме редактирования, все сопутствующие процедуры выполнения в этих скриптах запускаются в режиме редактирования, за исключением WaitForEndOfFrame. Это происходит потому, что не все подсистемы Unity обновляются так же регулярно в режиме редактирования, как во время выполнения. Для получения дополнительной информации, обратитесь к справочным материалам [ExecuteAlways] API.
Дополнительные ресурсы
- Аргументы командной строки
[ExecuteAlways]API ссылка