Unity 6.3
0 онлайн 26 гостей 3 в системе
Вход

GraphicsSettings.GetSettingsForRenderPipeline

Declaration

public static Rendering.RenderPipelineGlobalSettings GetSettingsForRenderPipeline(Type renderPipelineType);
public static Rendering.RenderPipelineGlobalSettings GetSettingsForRenderPipeline();

Параметры

Параметр Описание
renderPipelineType Тип RenderPipeline.

Возвращаемое значение

RenderPipelineGlobalSettings RenderPipelineGlobalSettings ассет, зарегистрированный для данного конвейера.

Описание

Получить зарегистрированные RenderPipelineGlobalSettings для данных RenderPipeline.

Этот метод итерирует все RenderPipelineGlobalSettings, зарегистрированные в GraphicsSettings. Если существует зарегистрированный экземпляр для заданного RenderPipeline, метод возвращает его, в противном случае метод возвращает null. Функция выполняет сравнение строк и может выделять память. Для повышения производительности во время выполнения, результат вызова функции кэшируется.

using UnityEngine;
using UnityEngine.Rendering;

public class ExampleRenderPipelineAsset : RenderPipelineAsset { protected override RenderPipeline CreatePipeline() { return new ExampleRenderPipeline(); } }

public class ExampleRenderPipeline : RenderPipeline { public ExampleRenderPipeline() { var mySettings = ExampleRPGlobalSettings.Create(); ExampleRPGlobalSettings.RegisterToGraphicsSettings(mySettings); }

protected override void Render(ScriptableRenderContext renderContext, Camera[] cameras) { // Do something }

public virtual RenderPipelineGlobalSettings globalSettings { get { return ExampleRPGlobalSettings.instance; } }

protected virtual void Dispose(bool disposing) { ExampleRPGlobalSettings.UnregisterToGraphicsSettings(); } }

public class ExampleRPGlobalSettings : RenderPipelineGlobalSettings { private static ExampleRPGlobalSettings cachedInstance = null; public static ExampleRPGlobalSettings instance { get { if (cachedInstance == null) cachedInstance = GraphicsSettings.GetSettingsForRenderPipeline<ExampleRenderPipeline>() as ExampleRPGlobalSettings; return cachedInstance; } }

public static void RegisterToGraphicsSettings(ExampleRPGlobalSettings newSettings) { GraphicsSettings.RegisterRenderPipelineSettings<ExampleRenderPipeline>(newSettings as RenderPipelineGlobalSettings); cachedInstance = null; }

public static void UnregisterToGraphicsSettings() { GraphicsSettings.UnregisterRenderPipelineSettings<ExampleRenderPipeline>(); cachedInstance = null; }

static public ExampleRPGlobalSettings Create() { ExampleRPGlobalSettings assetCreated = ScriptableObject.CreateInstance<ExampleRPGlobalSettings>(); return assetCreated; } }