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

MaterialEditor

UnityEditor 中的类

/

继承自:Editor

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

描述

Unity 材质编辑器。

扩展此类以编写您自己的自定义材质编辑器。有关更详细的信息,请参阅自定义材质编辑器部分的ShaderLab 参考

静态属性

kMiniTextureFieldLabelIndentLevel用于缩进需要与迷你纹理字段相同的缩进级别的着色器属性。

属性

customShaderGUI返回着色器实现的自定义 ShaderGUI。
isVisible当前材质是否已展开。

公共方法

Awake在编辑器唤醒时调用。
BeginAnimatedCheck创建一个 Property 包装器,用于使常规 GUI 控件与 MaterialProperty 一起使用。
ColorProperty为颜色着色器属性绘制属性字段。
CreatePreview请参阅 Editor.CreatePreview。
DefaultPreviewGUI材质预览区域的默认处理。
DefaultPreviewSettingsGUI材质预览区域的默认工具栏。
DefaultShaderProperty处理一个着色器属性的 UI,忽略任何自定义绘制器。
DoubleSidedGIField显示用于编辑材质的双面全局照明设置的 UI。如果确实显示了 UI(即材质支持双面全局照明设置),则返回 true。+其他资源:Material.doubleSidedGI。
EmissionEnabledProperty此函数将绘制用于控制材质上是否启用发光的 UI。
EnableInstancingField显示用于编辑材质的渲染队列设置的 UI。
EndAnimatedCheck结束使用 BeginAnimatedCheck 启动的 Property 包装器。
FloatProperty为浮点着色器属性绘制属性字段。
GetPropertyHeight计算属性所需的高度。
GetTexturePropertyCustomArea返回标签下方和大缩略图对象字段之前的空矩形。例如,用于平铺和偏移属性。
HasPreviewGUI此组件是否可以在其当前状态下预览?
HelpBoxWithButton制作一个带有消息和按钮的帮助框。如果按下按钮,则返回 true。
IntegerProperty为整数着色器属性绘制属性字段。
IsInstancingEnabled确定是否选中了“启用实例化”复选框。
LightmapEmissionFlagsProperty绘制用于设置材质的全局照明标志的 UI。
LightmapEmissionProperty此函数将绘制光照贴图发射属性的 UI。(无、实时、烘焙)其他资源:MaterialLightmapFlags。
OnDisable在禁用编辑器时调用,如果重写,请调用基本 OnDisable() 以确保正确设置材质检查器。
OnEnable在启用编辑器时调用,如果重写,请调用基本 OnEnable() 以确保正确设置材质检查器。
OnInspectorGUI在此处实现特定的 MaterialEditor GUI 代码。如果您只想扩展现有编辑器,请在执行任何自定义 GUI 代码之前调用基本 OnInspectorGUI()。
OnPreviewGUI图像组件的自定义预览。
PropertiesChanged每当材质属性更改时,都会调用此函数。这将重建检查器并验证属性。
PropertiesDefaultGUI着色器属性的默认渲染。
PropertiesGUI渲染标准材质属性。此方法将使用 ShaderGUI 实例(如果找到)渲染属性,否则它将使用 PropertiesDefaultGUI。
RangeProperty为范围着色器属性绘制范围滑块。
RegisterPropertyChangeUndo更改材质属性时调用此方法。它将为该操作添加撤消。
RenderQueueField显示用于编辑材质的渲染队列设置的 UI。
RequiresConstantRepaint此编辑是否需要在其当前状态下不断重新绘制?
SetDefaultGUIWidths将 EditorGUIUtility.fieldWidth 和 labelWidth 设置为 PropertiesGUI 使用的默认值。
SetShader设置材质的着色器。
ShaderProperty处理一个着色器属性的 UI。
TextureCompatibilityWarning检查特定属性是否具有材质指定的错误类型的纹理,显示相应的警告并建议用户自动解决问题。
TextureProperty为纹理着色器属性绘制属性字段。
TexturePropertyMiniThumbnail为仅占用单行高度的纹理着色器属性绘制属性字段。
TexturePropertySingleLine用于显示带有多个内联属性的纹理属性控件的方法。
TexturePropertyTwoLines用于显示属性的紧凑布局的方法。
TexturePropertyWithHDRColor用于显示带有多个HDR颜色字段及其颜色亮度浮点字段的纹理属性控件的方法。
TextureScaleOffsetProperty绘制纹理的平铺和偏移属性。
VectorProperty为矢量着色器属性绘制属性字段。

受保护的方法

OnShaderChanged在检查器中更改材质的着色器时调用的回调。

静态方法

ApplyMaterialPropertyDrawers应用初始 MaterialPropertyDrawer 值。
BeginProperty创建一个包装器,使 Unity 编辑器能够显示属性的 GUI 控件。
EndProperty关闭以 MaterialEditor.BeginProperty 开头的属性包装器。
FixupEmissiveFlag根据传入的标志和给定的颜色返回正确设置的全局照明标志。
GetDefaultPropertyHeight计算属性所需的高度,忽略自定义绘制器。
GetFlexibleRectBetweenFieldAndRightEdge用于 GUI 布局 ShaderGUI 的实用程序方法。例如,用于左对齐颜色字段后的矩形。
GetFlexibleRectBetweenLabelAndField用于 GUI 布局 ShaderGUI 的实用程序方法。
GetLeftAlignedFieldRect用于 GUI 布局 ShaderGUI 的实用程序方法。
GetMaterialProperties获取您传入的材质的着色器属性信息。
GetMaterialProperty获取有关单个着色器属性的信息。
GetMaterialPropertyNames获取您传入的材质的着色器属性名称。
GetRectAfterLabelWidth用于 GUI 布局 ShaderGUI 的实用程序方法。这是标签之后的矩形,可用于多个属性。输入矩形可以通过调用以下方式获取:EditorGUILayout.GetControlRect。
GetRightAlignedFieldRect用于 GUI 布局 ShaderGUI 的实用程序方法。

继承的成员

属性

hasUnsavedChanges此属性指定在检查器重建之前,编辑器是否提示用户保存或放弃未保存的更改。
saveChangesMessage如果提示用户保存,则显示给用户的消息。
serializedObject表示正在检查的对象或对象的 SerializedObject。
target正在检查的对象。
targets正在检查的所有对象的数组。
hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

CreateInspectorGUI实现此方法以创建自定义 UIElements 检查器。
DiscardChanges放弃对编辑器内容的未保存更改。
DrawDefaultInspector绘制内置检查器。
DrawHeader调用此函数以绘制编辑器的标题。
DrawPreview预览绘制的第一个入口点。
GetInfoString实现此方法以在资产预览顶部显示资产信息。
GetPreviewTitle如果您想更改预览区域的标签,请重写此方法。
OnInteractivePreviewGUI实现以创建您自己的交互式自定义预览。交互式自定义预览用于检查器和对象选择器的预览区域。
OnPreviewSettings如果您想在预览标题中显示自定义控件,请重写此方法。
RenderStaticPreview如果您想渲染静态预览,请重写此方法。
Repaint重新绘制显示此编辑器的任何检查器。
SaveChanges对编辑器内容执行保存操作。
UseDefaultMargins在子类中重写此方法以返回 false,如果您不希望使用默认边距。
GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

受保护的方法

ShouldHideOpenButton返回检查器中“打开”按钮的可见性设置。

静态方法

CreateCachedEditor返回时,previousEditor 是 targetObject 或 targetObjects 的编辑器。该函数要么返回(如果编辑器已经在跟踪对象),要么销毁以前的编辑器并创建一个新的编辑器。
CreateCachedEditorWithContext使用上下文对象创建缓存的编辑器。
CreateEditor为 targetObject 或 targetObjects 创建自定义编辑器。
CreateEditorWithContext使用上下文对象为 targetObject 或 targetObjects 创建自定义编辑器。
DrawFoldoutInspector使用带有折叠标题的 target 绘制检查器 GUI。
Destroy移除游戏对象、组件或资产。
DestroyImmediate立即销毁对象 obj。强烈建议您改用 Destroy。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载的对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载的对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某些游戏对象相关)的快照并返回 AsyncInstantiateOperation。
CreateInstance创建可脚本化对象的实例。

运算符

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

消息

HasFrameBounds验证是否可以为此编辑器计算自定义边界。
OnGetFrameBounds获取此编辑器目标的自定义边界。
OnSceneGUI使编辑器能够在场景视图中处理事件。
OnDestroy当可脚本化对象将被销毁时,将调用此函数。
OnValidate当脚本加载或检查器中的值发生更改时,Unity 调用的仅编辑器函数。
Reset重置为默认值。

事件

finishedDefaultHeaderGUI在绘制检查器窗口的标题时引发的事件,在绘制默认标题项后。