EditorInspectorPlugin

继承: RefCounted < Object

插件,用于在检查器上添加自定义属性编辑器。

描述

EditorInspectorPlugin 允许将自定义属性编辑器添加到 EditorInspector

当编辑对象时,会调用 _can_handle 函数,如果支持该对象类型,则必须返回 true

如果支持,函数 _parse_begin 将被调用,允许在类的开头放置自定义控件。

随后,为每个类别和属性调用 _parse_category_parse_property。它们也提供了向检查器添加自定义控件的能力。

最后,将调用 _parse_end

在这些调用中的每一个,都可以调用“add”函数。

要使用 EditorInspectorPlugin,首先使用 EditorPlugin.add_inspector_plugin 方法注册它。

教程

方法

bool

_can_handle(object: Object) virtual const

void

_parse_begin(object: Object) virtual

void

_parse_category(object: Object, category: String) virtual

void

_parse_end(object: Object) virtual

void

_parse_group(object: Object, group: String) virtual

bool

_parse_property(object: Object, type: Variant.Type, name: String, hint_type: PropertyHint, hint_string: String, usage_flags: BitField[PropertyUsageFlags], wide: bool) virtual

void

add_custom_control(control: Control)

void

add_property_editor(property: String, editor: Control, add_to_end: bool = false, label: String = “”)

void

add_property_editor_for_multiple_properties(label: String, properties: PackedStringArray, editor: Control)


方法说明

bool _can_handle(object: Object) virtual const 🔗

如果此插件可以处理此对象返回 true


void _parse_begin(object: Object) virtual 🔗

可以将控件添加在 object 的属性列表开头时调用。


void _parse_category(object: Object, category: String) virtual 🔗

可以将控件添加在 object 属性列表中的某个分类开头时调用。


void _parse_end(object: Object) virtual 🔗

可以将控件添加在 object 的属性列表末尾时调用。


void _parse_group(object: Object, group: String) virtual 🔗

可以将控件添加在 object 属性列表的某个分组或子分组的开头时调用。


bool _parse_property(object: Object, type: Variant.Type, name: String, hint_type: PropertyHint, hint_string: String, usage_flags: BitField[PropertyUsageFlags], wide: bool) virtual 🔗

可以为 object 的属性列表添加针对属性的编辑器时调用。这些编辑器必须继承 EditorProperty。返回 true 会移除该属性的内置编辑器,否则会在内置编辑器之前插入自定义编辑器。


void add_custom_control(control: Control) 🔗

添加自定义控件,它不一定是属性编辑器。


void add_property_editor(property: String, editor: Control, add_to_end: bool = false, label: String = “”) 🔗

为单个属性添加属性编辑器。editor 控件必须继承自 EditorProperty

同一个属性可以有多个属性编辑器。如果 add_to_endtrue 新添加的编辑器会显示在该属性所有 add_to_endfalse 的编辑器之后。例如,Sprite2D.region_rect 普通 Rect2 编辑器下面的“编辑区域”按钮就是使用这个参数添加的。

可以使用 label 选择该属性编辑器在检查器中的自定义标签。留空时则会根据属性的名称来计算标签。


void add_property_editor_for_multiple_properties(label: String, properties: PackedStringArray, editor: Control) 🔗

添加能够修改多个属性的编辑器。editor 控件必须扩展 EditorProperty