RenderPipelineGlobalSettings
A ScriptableObject to associate with a RenderPipeline and store project-wide settings for that Pipeline.
Read time 5 minutesLast updated 5 days ago
Definition
- Type: Class
- Namespace: UnityEngine.Rendering
- Assembly: UnityEngine.CoreModule
- Inherits from: ScriptableObject
- Implements: ISerializationCallbackReceiver
public abstract class RenderPipelineGlobalSettings : ScriptableObject, ISerializationCallbackReceiver
Remarks
A single RenderPipelineGlobalSettings instance can be registered to the GraphicsSettings via GraphicsSettings.RegisterRenderPipelineSettings. We recommend to use this ScriptableObject to save RenderPipeline settings you would find in the GraphicsSettings.
Examples
using System;using System.Collections.Generic;using UnityEngine;using UnityEngine.Rendering;#if UNITY_EDITORusing UnityEditor.Rendering;#endifpublic 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}
Properties
Property | Description |
|---|---|
| settingsList | Exposes a List\<IRenderPipelineGraphicsSettings\> that this RenderPipelineGlobalSettings instance is managing. |
Methods
Method | Description |
|---|---|
| Add | Adds a IRenderPipelineGraphicsSettings interface to this instance of the RenderPipelineGlobalSettings asset. |
| Contains | If the given ISRPGraphicsSetting type is present in this RenderPipelineGlobalSettings instance. |
| GetSettingsImplementingInterface | Get all settings for the currently active pipeline that implement |
| Initialize | Editor-only function that initializes the RenderPipelineGlobalSettings. |
| Remove | Removes a IRenderPipelineGraphicsSettings interface from this instance of the RenderPipelineGlobalSettings asset. |
| TryGet | Looks for a IRenderPipelineGraphicsSettings interface in this instance of the RenderPipelineGlobalSettings asset and returns true if it's found. |
| TryGetFirstSettingsImplementingInterface | Try to get the first settings that implements |
Inheritance
Operators
Operator | Description |
|---|---|
| operator == | Compares two object references to see if they refer to the same object. |
| bool | Determines whether the object exists. |
| operator != | Compares if two objects refer to a different object. |