Version: 2022.2

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着色器属性的默认渲染。
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为矢量着色器属性绘制一个属性字段。

受保护的函数

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 方法。

继承的成员

变量

serializedObject表示正在检查的一个或多个对象的 SerializedObject。
target所检查的对象。
targets正在检查的所有对象的数组。
hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

CreateInspectorGUI实现此方法以创建自定义 UIElements 检视面板。
DrawDefaultInspector绘制内置检视面板。
DrawHeader调用此函数以绘制编辑器标头。
DrawPreview预览绘制的第一个入口点。
GetInfoString实现此方法以在资源预览上显示资源信息。
GetPreviewTitle如果要更改 Preview 区域的标签,可重载此方法。
OnInteractivePreviewGUI实现此方法可创建您自己的交互式自定义预览。交互式自定义预览用于检视面板和对象选择器的预览区域。
OnPreviewSettings如果要在预览标头中显示自定义控件,可重载此方法。
RenderStaticPreview如果要渲染静态预览,可重载此方法。
Repaint重新绘制显示此编辑器的任意检视面板。
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。
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfTypeGets 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 窗口的标题时引发的事件。