Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

EditorInspector

继承: ScrollContainer < Container < Control < CanvasItem < Node < Object

用于编辑对象属性的控件。

描述

这是为编辑器的“设置”对话框、“检查器”面板等实现属性编辑的控件。要获取编辑器的“检查器”面板中所使用的 EditorInspector,请使用 EditorInterface.get_inspector()

EditorInspector 展示属性的顺序与 Object.get_property_list() 返回的数组一致。

如果属性的名称为路径形式(即包含正斜杠),EditorInspector 会为该路径上的各个“目录”创建嵌套的部分。例如,如果某个属性名为 highlighting/gdscript/node_path_color,那么就会显示为“Node Path Color”,位于嵌套在“Highlighting”部分的“GDScript”部分中。

如果属性包含 @GlobalScope.PROPERTY_USAGE_GROUP 用法,就会将其后续属性中,名称以其提示字符串开头的属性合为一组。如果遇到不以该提示字符串开头的属性,或者开始了一个新的分组,那么这个分组就会结束。分组名称为空的效果为结束当前分组。EditorInspector 会为每个分组都创建一个顶层的部分。例如,如果有个包含分组用法的属性名叫 Collide With,其提示字符串为 collide_with_,那么后续的 collide_with_area 属性就会以“Area”的名称出现在“Collide With”部分中。另外还有一种特殊情况:提示字符串包含属性名称时,该属性也会被划入该分组。这样做的目的是将类似 fontfont_colorfont_size 的属性分在一起(使用 font_ 提示字符串)

如果属性包含 @GlobalScope.PROPERTY_USAGE_SUBGROUP 用法,就会用和分组一样的方法创建子分组,每个子分组都会创建一个二级部分。

注意:与根据路径形式的名称而创建的部分不同,EditorInspector 不会对根据分组创建的部分的名称进行首字母大写。因此,包含分组用法的属性通常使用首字母大写的名称,而不是 snake_case。

属性

bool

draw_focus_border

true (overrides ScrollContainer)

FocusMode

focus_mode

2 (overrides Control)

bool

follow_focus

true (overrides ScrollContainer)

ScrollMode

horizontal_scroll_mode

0 (overrides ScrollContainer)

方法

void

edit(object: Object)

Object

get_edited_object()

String

get_selected_path() const

EditorProperty

instantiate_property_editor(object: Object, type: Variant.Type, path: String, hint: PropertyHint, hint_text: String, usage: int, wide: bool = false) static


信号

edited_object_changed() 🔗

当检查器正在编辑的对象发生更改时触发。


object_id_selected(id: int) 🔗

在检查器中按下 Object 的“编辑”按钮时发出。这主要用于远程场景树检查器。


property_deleted(property: String) 🔗

当从检查器中移除属性时触发。


property_edited(property: String) 🔗

在检查器中编辑属性时触发。


property_keyed(property: String, value: Variant, advance: bool) 🔗

当属性在检查器中被键入时触发。当动画面板打开时,可通过点击属性旁边的“钥匙”图标为属性添加关键帧。


property_selected(property: String) 🔗

在检查器中选择属性时触发。


property_toggled(property: String, checked: bool) 🔗

在检查器中切换布尔属性时发出。

注意:如果启用了内部 autoclear 属性,则该信号永远不会触发。由于该属性在编辑器检查器中始终处于启用状态,因此编辑器本身绝不会发出该信号。


resource_selected(resource: Resource, path: String) 🔗

在检查器中选择资源时触发。


restart_requested() 🔗

在检查器中编辑需要重启应用的属性时触发。仅在项目设置和编辑器设置中使用。


方法说明

void edit(object: Object) 🔗

在该检查器中显示 object 对象的属性,用于编辑。要清空检查器,请用 null 调用该方法。

注意:如果你想要在编辑器的主检查器中编辑对象,请改用 EditorInterface 中的 edit_* 方法。


Object get_edited_object() 🔗

返回当前在该检查器中选择的对象。


String get_selected_path() const 🔗

获取当前选定属性的路径。


EditorProperty instantiate_property_editor(object: Object, type: Variant.Type, path: String, hint: PropertyHint, hint_text: String, usage: int, wide: bool = false) static 🔗

创建一个属性编辑器,可以用在插件 UI 中,编辑 object 中指定属性。