A ScriptableObject to associate with a RenderPipeline and store project-wide settings for that Pipeline.
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.
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; } }
hideFlags | Should the object be hidden, saved with the Scene or modifiable by the user? |
name | The name of the object. |
GetInstanceID | Gets the instance ID of the object. |
ToString | Returns the name of the object. |
Destroy | Removes a GameObject, component or asset. |
DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
DontDestroyOnLoad | Do not destroy the target Object when loading a new Scene. |
FindAnyObjectByType | Retrieves any active loaded object of Type type. |
FindFirstObjectByType | Retrieves the first active loaded object of Type type. |
FindObjectOfType | Returns the first active loaded object of Type type. |
FindObjectsByType | Retrieves a list of all loaded objects of Type type. |
FindObjectsOfType | Gets a list of all loaded objects of Type type. |
Instantiate | Clones the object original and returns the clone. |
CreateInstance | Creates an instance of a scriptable object. |
bool | Does the object exist? |
operator != | Compares if two objects refer to a different object. |
operator == | Compares two object references to see if they refer to the same object. |
Awake | This function is called when the ScriptableObject script is started. |
OnDestroy | This function is called when the scriptable object will be destroyed. |
OnDisable | This function is called when the scriptable object goes out of scope. |
OnEnable | This function is called when the object is loaded. |
OnValidate | Editor-only function that Unity calls when the script is loaded or a value changes in the Inspector. |
Reset | Reset to default values. |