版本: Unity 6 (6000.0)
语言English
  • C#

RenderPipelineGlobalSettings

UnityEngine.Rendering 中的类

/

继承自:ScriptableObject

/

实现于:UnityEngine.CoreModule


实现接口:ISerializationCallbackReceiver

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

一个 ScriptableObject,用于与 RenderPipeline 关联,并为该 Pipeline 存储项目范围的设置。

可以通过 GraphicsSettings.RegisterRenderPipelineSettings 将单个 RenderPipelineGlobalSettings 实例注册到 GraphicsSettings。我们建议使用此 ScriptableObject 来保存您在 GraphicsSettings 中找到的 RenderPipeline 设置。

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从此 RenderPipelineGlobalSettings 资产实例中删除 IRenderPipelineGraphicsSettings 接口。
TryGet在此 RenderPipelineGlobalSettings 资产实例中查找 IRenderPipelineGraphicsSettings 接口,如果找到则返回 true。
TryGetFirstSettingsImplementingInterface尝试获取第一个实现 TSettingsInterfaceType 的设置。

继承的成员

属性

hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy删除 GameObject、组件或资产。
DestroyImmediate立即销毁对象 obj。强烈建议您改用 Destroy。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某个 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。
CreateInstance创建可脚本化对象的实例。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用是否引用同一个对象。

消息

Awake创建 ScriptableObject 实例时调用。
OnDestroy当可脚本化对象将被销毁时调用此函数。
OnDisable当可脚本化对象超出范围时调用此函数。
OnEnable加载对象时调用此函数。
OnValidate仅编辑器函数,当加载脚本或检查器中的值发生更改时,Unity 会调用此函数。
Reset重置为默认值。