在 Unity 编辑器中,您可以控制材质属性在Inspector一个 Unity 窗口,显示当前选定的 GameObject、资源或项目设置的信息,允许您检查和编辑值。 更多信息
参见 术语表窗口中的显示方式。最简单的方法是使用MaterialPropertyDrawer。
对于更复杂的需求,您可以使用MaterialEditor、MaterialProperty和ShaderGUI类。
使用自定义编辑器来显示 Unity 无法使用其默认材质 Inspector 显示的数据类型,或定义自定义控件或数据验证。
在ShaderLabUnity 用于定义着色器对象结构的语言。 更多信息
参见 术语表中,您可以为所有渲染管线一系列操作,获取场景的内容并在屏幕上显示。Unity 允许您选择预建的渲染管线,或编写您自己的。 更多信息
参见 术语表分配自定义编辑器。为此,您可以在 Shader
块内放置一个 CustomEditor
块。您还可以根据可脚本化的渲染管线为渲染管线分配不同的自定义编辑器,方法是在 Shader
块内放置一个 CustomEditorForRenderPipeline
块。如果您的代码同时包含 CustomEditor
和 CustomEditorForRenderPipeline
块,则特定于渲染管线的块将覆盖 CustomEditor
块。
要为表示给定着色器对象Shader 类的实例,着色器对象是着色器程序和 GPU 指令以及告知 Unity 如何使用它们的容器。将它们与材质一起使用以确定场景的外观。 更多信息
参见 术语表的着色器在 GPU 上运行的程序。 更多信息
参见 术语表资源定义自定义编辑器,您可以创建一个从 ShaderGUI 类继承的脚本。将您的脚本放在 Assets 文件夹中的名为 Editor 的文件夹中。
脚本应遵循以下格式
using UnityEditor;
public class ExampleShaderGUI : ShaderGUI
{
public override void OnGUI (MaterialEditor materialEditor, MaterialProperty[] properties)
{
// Custom code that controls the appearance of the Inspector goes here
base.OnGUI (materialEditor, properties);
}
}
此示例代码演示了使用 CustomEditor
块为着色器资源指定默认自定义编辑器的语法,然后使用 CustomEditorForRenderPipeline
块为特定渲染管线资源指定两个其他自定义编辑器。
Shader "Examples/UsesCustomEditor"
{
// The Unity Editor uses the class ExampleCustomEditor to configure the Inspector for this shader asset
CustomEditor "ExampleShaderGUI"
CustomEditorForRenderPipeline "ExampleRenderPipelineShaderGUI" "ExampleRenderPipelineAsset"
CustomEditorForRenderPipeline "OtherExampleRenderPipelineShaderGUI" "OtherExampleRenderPipelineAsset"
SubShader
{
// Code that defines the SubShader goes here.
Pass
{
// Code that defines the Pass goes here.
}
}
}