2.3 KiB
Add a settings group
To add a custom graphics settings group to a Scriptable Render Pipeline, implement the IRenderPipelineGraphicsSettings interface.
Follow these steps:
-
Create a class that implements the
IRenderPipelineGraphicsSettingsinterface, then add a[Serializable]attribute. -
To set which render pipeline the setting applies to, add a
[SupportedOnRenderPipeline]attribute and pass in aRenderPipelineAssettype.Note: If you don't add a
[SupportedOnRenderPipeline]attribute, the setting applies to any Scriptable Render Pipeline. However each Scriptable Render Pipeline stores its own value for the setting. -
Implement the
versionproperty. Unity doesn't currently use theversionproperty, but you must implement it.
Unity adds the new settings group to the Edit > Project Settings > Graphics window.
For example, the following script adds a settings group called My Settings in the Graphics settings window of the Universal Render Pipeline (URP).
using System;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
[Serializable]
[SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))]
// Create a new settings group by implementing the IRenderPipelineGraphicsSettings interface
public class MySettings : IRenderPipelineGraphicsSettings
{
// Add a private field for the version property
int internalVersion = 1;
// Implement the public version property
public int version => internalVersion;
}

The Edit > Project Settings > Graphics window with the new custom settings group from the example script.
Change the display order of settings groups
To change where a settings group appears, use the [UnityEngine.Categorization.CategoryInfo] attribute. For example, the following code gives the settings group the name My Settings and moves the group to the top of the graphics settings window.
[UnityEngine.Categorization.CategoryInfo(Name = "My Settings", Order = 0)]
public class MySettings : IRenderPipelineGraphicsSettings
{
...
}