MaterialEditor

class in UnityEditor

/

Inherits from:Editor

Switch to Manual

Description

Unity 材质编辑器。

扩展该类可编写您自己的自定义材质编辑器。有关更多详细信息,请参阅 ShaderLab referenceCustom Material Editor 部分。

Static Variables

kMiniTextureFieldLabelIndentLevel适用于对需要与最小纹理字段具有相同缩进的着色器属性进行缩进。

Variables

isVisible当前材质是否已展开。

Public Functions

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

Protected Functions

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

Static Functions

ApplyMaterialPropertyDrawers应用初始 MaterialPropertyDrawer 值。
FixupEmissiveFlag根据传入的标志和给定的颜色返回正确设置的全局光照标志。
GetDefaultPropertyHeight计算属性所需的高度(忽略自定义绘制器)。
GetFlexibleRectBetweenFieldAndRightEdge用于 GUI 布局 ShaderGUI 的 Utility 方法。例如,用于左对齐 Color 字段之后的矩形。
GetFlexibleRectBetweenLabelAndField用于 GUI 布局 ShaderGUI 的 Utility 方法。
GetLeftAlignedFieldRect用于 GUI 布局 ShaderGUI 的 Utility 方法。
GetMaterialProperties获取所传递材质的着色器属性信息。
GetMaterialProperty获取有关单个着色器属性的信息。
GetRectAfterLabelWidth用于 GUI 布局 ShaderGUI 的 Utility 方法。这是可用于多个属性的标签后面的矩形。可通过调用以下函数来获取输入矩形:EditorGUILayout.GetControlRect。
GetRightAlignedFieldRect用于 GUI 布局 ShaderGUI 的 Utility 方法。

Inherited members

Variables

serializedObject表示正在检查的一个或多个对象的 SerializedObject。
target所检查的对象。
targets正在检查的所有对象的数组。
hideFlagsShould the object be hidden, saved with the Scene or modifiable by the user?
name对象的名称。

Public Functions

DrawDefaultInspector绘制内置检视面板。
DrawHeader调用此函数以绘制编辑器标头。
DrawPreview预览绘制的第一个入口点。
GetInfoString实现此方法以在资源预览上显示资源信息。
GetPreviewTitle如果要更改 Preview 区域的标签,可重载此方法。
OnInteractivePreviewGUI实现此方法可创建您自己的交互式自定义预览。交互式自定义预览用于检视面板和对象选择器的预览区域。
OnPreviewSettings如果要在预览标头中显示自定义控件,可重载此方法。
RenderStaticPreview如果要渲染静态预览,可重载此方法。
Repaint重新绘制显示此编辑器的任意检视面板。
UseDefaultMargins如果您不想使用默认边距,可在子类中重载此方法以返回 false。
GetInstanceID返回对象的实例 ID。
ToString返回 GameObject 的名称。

Protected Functions

ShouldHideOpenButton返回检视面板中“open”按钮的可见性设置。

Static Functions

CreateCachedEditor返回时,previousEditor 为 targetObject 或 targetObjects 的编辑器。如果该编辑器已在跟踪对象,则函数会返回,否则该函数会销毁之前的编辑器并创建一个新编辑器。
CreateCachedEditorWithContext使用上下文对象创建缓存的编辑器。
CreateEditor为 targetObject 或 targetObjects 创建自定义编辑器。
CreateEditorWithContext使用上下文对象为 targetObject 或 targetObjects 创建自定义编辑器。
Destroy删除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoadDo not destroy the target Object when loading a new Scene.
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfType返回所有类型为 type 的已加载的激活对象的列表。
Instantiate克隆 original 对象并返回克隆对象。
CreateInstance创建脚本化对象的实例。

Operators

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。

Messages

OnSceneGUIEnables the Editor to handle an event in the Scene view.
OnDestroy当脚本化对象将销毁时调用此函数。

Events

finishedDefaultHeaderGUIAn event raised while drawing the header of the Inspector window, after the default header items have been drawn.