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

RenderPipelineGlobalSettings

класс в UnityEngine.Rendering

Наследуется от:ScriptableObject

Выполнено в:UnityEngine.CoreModule


Интерфейсы приспособлений:ISerializationCallbackReceiver

Описание

ScriptableObject для ассоциации с RenderPipeline и хранения общепроектных настроек для этого Конвейера.

Один экземпляр RenderPipelineGlobalSettings может быть зарегистрирован на GraphicsSettings через GraphicsSettings.RegisterRenderPipelineSettings. Мы рекомендуем использовать этот ScriptableObject для сохранения настроек RenderPipeline, которые вы найдете в GraphicsSettings.

using System;
using System.Collections.Generic;

using UnityEngine; using UnityEngine.Rendering;

#if UNITY_EDITOR using UnityEditor.Rendering; #endif

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

public class ExampleRenderPipeline : RenderPipeline { public virtual RenderPipelineGlobalSettings globalSettings => ExampleRPGlobalSettings.instance;

protected override void Render(ScriptableRenderContext renderContext, Camera[] cameras) { #if UNITY_EDITOR // On Editor we must make sure the Global Settings Asset is registered into the GraphicsSettings // Graphics Settings will make sure the asset is available on player builds if (globalSettings == null) { var mySettings = ExampleRPGlobalSettings.Create(); ExampleRPGlobalSettings.RegisterToGraphicsSettings(mySettings); } #endif

// Do something } }

[SupportedOnRenderPipeline(typeof(ExampleRenderPipelineAsset))] 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; } }

/* Use this pattern if you want to enable your global settings to use IRenderPipelineGraphicsSettings

[SerializeReference] private List<IRenderPipelineGraphicsSettings> m_SettingsList = new(); protected override List<IRenderPipelineGraphicsSettings> settingsList => m_Settings;

*/

#if UNITY_EDITOR public static void RegisterToGraphicsSettings(ExampleRPGlobalSettings newSettings) { EditorGraphicsSettings.SetRenderPipelineGlobalSettingsAsset<ExampleRenderPipeline>(newSettings as RenderPipelineGlobalSettings); cachedInstance = null; }

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

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

Свойства

Свойство Описание
settingsListОбнаруживает List<IRenderPipelineGraphicsSettings>, который управляется этим экземпляром RenderPipelineGlobalSettings.

Открытые методы

Метод Описание
InitializeФункция только для редактора, инициализирующая RenderPipelineGlobalSettings.

Защищенные методы

Метод Описание
AddДобавляет интерфейс IRenderPipelineGraphicsSettings к этому экземпляру ассета RenderPipelineGlobalSettings.
ContainsЕсли указанный тип ISRPGraphicsSetting присутствует в этом экземпляре RenderPipelineGlobalSettings.
GetSettingsImplementingInterfaceПолучить все настройки для текущего активного конвейера, реализующего TSettingsInterfaceType.
RemoveУдаляет интерфейс IRenderPipelineGraphicsSettings из этого экземпляра ассета RenderPipelineGlobalSettings.
TryGetИщет интерфейс IRenderPipelineGraphicsSettings в этом экземпляре ассета RenderPipelineGlobalSettings и возвращает true, если находит его.
TryGetFirstSettingsImplementingInterfaceПопробуйте получить первые настройки, которые реализуют TSettingsInterfaceType.
Унаследованные члены 5

Свойства

СвойствоОписание
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

Открытые методы

МетодОписание
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

Статические методы

МетодОписание
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.
CreateInstanceСоздает экземпляр скриптового объекта.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.

Сообщения

СообщениеОписание
AwakeВызывается при создании экземпляра ScriptableObject.
OnDestroyЭта функция вызывается, когда скриптовый объект будет уничтожен.
OnDisableЭта функция вызывается, когда скриптовый объект выходит за пределы области действия.
OnEnableЭта функция вызывается при загрузке объекта.
OnValidateФункция только для редактора, которую вызывает Unity при загрузке скрипта или изменении значения в Inspector.
ResetСброс значений по умолчанию.