Unity C#
WaitForEndOfFrame в Unity C# — практическое руководство
WaitForEndOfFrame — вспомогательный класс Unity для ожидания завершения текущего кадра перед выполнением кода. Его применяют в корутинах, когда нужно дождаться окончания всех вычислений и операций рендера.
Задача класса — выполнить код в самом конце кадра. Это удобно, например, для действий после отрисовки всех объектов или дополнительных вычислений без блокировки игрового цикла.
Особенность: WaitForEndOfFrame работает только в корутинах, запущенных через StartCoroutine — без этого ожидание невозможно.
Пример кода
Корутина пишет сообщение, ждёт конца кадра и пишет второе:
using UnityEngine;
using System.Collections;
public class EndOfFrameExample : MonoBehaviour
{
void Start()
{
// Запускаем корутину
StartCoroutine(WaitAndPrint());
}
IEnumerator WaitAndPrint()
{
Debug.Log("Это сообщение выводится до завершения кадра.");
// Ждем конца текущего кадра
yield return new WaitForEndOfFrame();
Debug.Log("Это сообщение выводится после завершения кадра.");
}
}
Метод не останавливает игру — он лишь выполняет задачи в строго определённый момент кадра. Не путай его с WaitForSeconds.