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.