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 | Сброс значений по умолчанию. |