Version: 2023.1

MaterialEditor

class in UnityEditor

/

继承自:Editor

切换到手册

描述

Unity 材质编辑器。

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

静态变量

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

变量

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

公共函数

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。
IntegerPropertyDraw a property field for an integer shader property.
IsInstancingEnabled确定是否选中 Enable Instancing 复选框。
LightmapEmissionFlagsProperty绘制用于设置材质的全局光照标志的 UI。
LightmapEmissionProperty此函数将绘制用于光照贴图发射属性的 UI。(无、实时、烘焙)另请参阅:MaterialLightmapFlags。
OnDisable在编辑器处于禁用状态时调用,如果被重载,请调用基础 OnDisable() 以确保正确设置材质检视面板。
OnEnable在编辑器处于启用状态时调用,如果被重载,请调用基础 OnEnable() 以确保正确设置材质检视面板。
OnInspectorGUI在此处实现特定的 MaterialEditor GUI 代码。如果您只想扩展现有编辑器,应在执行任何自定义 GUI 代码之前先调用基础 OnInspectorGUI ()。
OnPreviewGUIImage 组件的自定义预览。
PropertiesChanged每当材质属性发生更改时,需调用此函数。这将重新构建检视面板并验证属性。
PropertiesDefaultGUI着色器属性的默认渲染。
PropertiesGUIRender the standard material properties. This method will either render properties using a ShaderGUI instance if found otherwise it uses 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 值。
BeginPropertyCreates a wrapper enabling the Unity Editor to display GUI controls for the property.
EndPropertyCloses a property wrapper that begins with MaterialEditor.BeginProperty.
FixupEmissiveFlag根据传入的标志和给定的颜色返回正确设置的全局光照标志。
GetDefaultPropertyHeight计算属性所需的高度(忽略自定义绘制器)。
GetFlexibleRectBetweenFieldAndRightEdge用于 GUI 布局 ShaderGUI 的 Utility 方法。例如,用于左对齐 Color 字段之后的矩形。
GetFlexibleRectBetweenLabelAndField用于 GUI 布局 ShaderGUI 的 Utility 方法。
GetLeftAlignedFieldRect用于 GUI 布局 ShaderGUI 的 Utility 方法。
GetMaterialPropertiesGet shader property information of the materials you pass in.
GetMaterialProperty获取有关单个着色器属性的信息。
GetMaterialPropertyNamesGets the shader property names of the materials you pass in.
GetRectAfterLabelWidth用于 GUI 布局 ShaderGUI 的 Utility 方法。这是可用于多个属性的标签后面的矩形。可通过调用以下函数来获取输入矩形:EditorGUILayout.GetControlRect。
GetRightAlignedFieldRect用于 GUI 布局 ShaderGUI 的 Utility 方法。

继承的成员

变量

hasUnsavedChangesThis property specifies whether the Editor prompts the user to save or discard unsaved changes before the Inspector gets rebuilt.
saveChangesMessageThe message that displays to the user if they are prompted to save.
serializedObject表示正在检查的一个或多个对象的 SerializedObject。
target所检查的对象。
targets正在检查的所有对象的数组。
hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

CreateInspectorGUI实现此方法以创建自定义 UIElements 检视面板。
DiscardChangesDiscards unsaved changes to the contents of the editor.
DrawDefaultInspectorDraws the built-in Inspector.
DrawHeader调用此函数以绘制编辑器标头。
DrawPreview预览绘制的第一个入口点。
GetInfoString实现此方法以在资源预览上显示资源信息。
GetPreviewTitle如果要更改 Preview 区域的标签,可重载此方法。
OnInteractivePreviewGUI实现此方法可创建您自己的交互式自定义预览。交互式自定义预览用于检视面板和对象选择器的预览区域。
OnPreviewSettings如果要在预览标头中显示自定义控件,可重载此方法。
RenderStaticPreview如果要渲染静态预览,可重载此方法。
Repaint重新绘制显示此编辑器的任意检视面板。
SaveChangesPerforms a save action on the contents of the editor.
UseDefaultMargins如果您不想使用默认边距,可在子类中重载此方法以返回 false。
GetInstanceIDGets the instance ID of the object.
ToString返回对象的名称。

受保护的函数

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

静态函数

CreateCachedEditor返回时,previousEditor 是 targetObject 或 targetObjects 的编辑器。如果该编辑器已经在跟踪对象,则函数会返回,否则该函数会销毁之前的编辑器并创建一个新编辑器。
CreateCachedEditorWithContext使用上下文对象创建缓存的编辑器。
CreateEditor为 targetObject 或 targetObjects 创建自定义编辑器。
CreateEditorWithContext使用上下文对象为 targetObject 或 targetObjects 创建自定义编辑器。
DrawFoldoutInspector为 target 绘制带有折叠标头的检视面板 GUI。
Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindAnyObjectByTypeRetrieves any active loaded object of Type type.
FindFirstObjectByTypeRetrieves the first active loaded object of Type type.
FindObjectsByTypeRetrieves a list of all loaded objects of Type type.
Instantiate克隆 original 对象并返回克隆对象。
CreateInstance创建脚本化对象的实例。

运算符

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

消息

HasFrameBoundsValidates whether custom bounds can be calculated for this Editor.
OnGetFrameBoundsGets custom bounds for the target of this editor.
OnSceneGUI使编辑器在场景视图中处理事件。
OnDestroy当脚本化对象将销毁时调用此函数。
OnValidateEditor-only function that Unity calls when the script is loaded or a value changes in the Inspector.
Reset重置为默认值。

Events

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