Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

RenderPipeline.EndContextRendering

Объявление

protected static void EndContextRendering(Rendering.ScriptableRenderContext context, List cameras);

Описание

Вызывает делегаты RenderPipelineManager.endContextRendering и RenderPipelineManager.endFrameRendering.

Используйте делегаты, которые вызывает этот метод, для реализации функций в конце RenderPipeline.Render.

В универсальном конвейере рендеринга (URP) и конвейере рендеринга высокого разрешения (HDRP) Unity автоматически вызывает этот метод в конце RenderPipeline.Render. Если вы пишете собственный Scriptable Render Pipeline, вы можете сами вызвать этот метод в том же месте. Эта функция несовместима со встроенным конвейером рендеринга.

Делегаты, вызываемые этим методом, работают одинаково друг с другом, за исключением того, что RenderPipelineManager.endFrameRendering вызывает выделение кучи и RenderPipelineManager.endContextRendering не работает. Поэтому вам следует использовать RenderPipelineManager.endContextRendering, чтобы избежать ненужного выделения кучи и сборки мусора.

Этот метод заменяет RenderPipeline.EndFrameRendering. Он делает все то же, что и метод, и, кроме того, вызывает делегата RenderPipelineManager.endContextRendering. Если вы пишете собственный конвейер рендеринга с поддержкой сценариев, используйте этот метод вместо RenderPipeline.EndFrameRendering.

В следующем примере кода показано, как вызвать этот метод, если вы создаете собственный конвейер рендеринга с поддержкой сценариев:

using UnityEngine; using UnityEngine.Rendering; using System.Collections.Generic; public class ExampleRenderPipelineInstance : RenderPipeline { public ExampleRenderPipelineInstance() { } override protected void Render(ScriptableRenderContext context, List<Camera> cameras) { // Put the rest of your Render method code here // Call the RenderPipelineManager.endContextRendering and RenderPipelineManager.endFrameRendering delegates EndContextRendering(context, cameras); } // Older version of the Render function that can generate garbage, needed for backwards compatibility override protected void Render(ScriptableRenderContext context, Camera[] cameras) { } }

Смотрите так же: RenderPipelineManager.endContextRendering, RenderPipelineManager.endFrameRendering, RenderPipeline.BeginContextRendering, RenderPipelineManager.beginContextRendering, RenderPipelineManager.beginFrameRendering, Unity Manual: Scriptable Render Pipeline

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3