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.
Checking the stable version of the documentation...
EditorDock
实验性: This class may be changed or removed in future versions.
继承: MarginContainer < Container < Control < CanvasItem < Node < Object
派生: FileSystemDock
用于编辑器的可停靠容器。
描述
EditorDock 是一个 Container 节点,可以停靠在编辑器的一个停靠面板槽中。插件可以添加停靠面板来为与 EditorPlugin 相关的控件提供空间。编辑器自带一些内置的停靠面板,例如场景面板、文件系统面板等等。
可以使用 EditorPlugin.add_dock() 添加停靠面板。可以通过更改其属性来自定义停靠面板。
@tool
extends EditorPlugin
# 停靠面板引用。
var dock
# 插件实例化。
func _enter_tree():
dock = EditorDock.new()
dock.title = "我的停靠面板"
dock.dock_icon = preload("./dock_icon.png")
dock.default_slot = EditorDock.DOCK_SLOT_RIGHT_UL
var dock_content = preload("./dock_content.tscn").instantiate()
dock.add_child(dock_content)
add_dock(dock)
# 插件清理。
func _exit_tree():
remove_dock(dock)
dock.queue_free()
dock = null
教程
属性
accessibility_region |
|
|
BitField[DockLayout] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法
void |
_load_layout_from_config(config: ConfigFile, section: String) virtual |
void |
_save_layout_to_config(config: ConfigFile, section: String) virtual const |
void |
_update_layout(layout: int) virtual |
void |
close() |
void |
|
void |
open() |
信号
closed() 🔗
当使用上下文弹出菜单中的“关闭”按钮关闭停靠面板时,在它从其父容器中移除之前发出。见 closable。
opened() 🔗
当通过 Editor > Editor Docks 菜单打开该 Dock 时,会在其变为可见状态之前发出此信号。
枚举
flags DockLayout: 🔗
DockLayout DOCK_LAYOUT_VERTICAL = 1
允许将停靠面板放置在编辑器两侧的垂直停靠面板插槽中。
DockLayout DOCK_LAYOUT_HORIZONTAL = 2
允许将该停靠面板(Dock)放置在底部的水平停靠槽中。
DockLayout DOCK_LAYOUT_FLOATING = 4
允许将停靠面板设置为浮动(以单独窗口的形式打开)。
DockLayout DOCK_LAYOUT_ALL = 7
允许将停靠面板放置在所有可用插槽中。
enum DockSlot: 🔗
DockSlot DOCK_SLOT_NONE = -1
停靠面板是关闭的。
DockSlot DOCK_SLOT_LEFT_UL = 0
左侧停靠槽的左上(默认布局中为空)。
DockSlot DOCK_SLOT_LEFT_BL = 1
左侧停靠槽的左下(默认布局中为空)。
DockSlot DOCK_SLOT_LEFT_UR = 2
左侧停靠槽的右上(默认布局中为“场景”和“导入”面板)。
DockSlot DOCK_SLOT_LEFT_BR = 3
左侧停靠槽的右下方(默认布局中包含“文件系统”和“历史”面板)。
DockSlot DOCK_SLOT_RIGHT_UL = 4
右侧停靠槽的左上方(默认布局中包含“检查器”、“信号”和“分组”面板)。
DockSlot DOCK_SLOT_RIGHT_BL = 5
右侧停靠槽的左下(默认布局中为空)。
DockSlot DOCK_SLOT_RIGHT_UR = 6
右侧停靠槽的右上(默认布局中为空)。
DockSlot DOCK_SLOT_RIGHT_BR = 7
右侧停靠槽的右下(默认布局中为空)。
DockSlot DOCK_SLOT_BOTTOM = 8
底部面板。
DockSlot DOCK_SLOT_BOTTOM_L = 9
位于底部面板下方、左侧的停靠槽位。
DockSlot DOCK_SLOT_BOTTOM_R = 10
位于底部面板下方、右侧的停靠槽位。
DockSlot DOCK_SLOT_MAX = 11
代表 DockSlot 枚举的大小。
属性说明
BitField[DockLayout] available_layouts = 5 🔗
void set_available_layouts(value: BitField[DockLayout])
BitField[DockLayout] get_available_layouts()
该停靠面板可用的布局,以位掩码形式表示。默认情况下,该停靠面板允许垂直布局和浮动布局。
如果为 true,则可以使用上下文弹出窗口中的“关闭”按钮关闭该停靠面板。启用 global 的停靠面板始终是可关闭的。
该属性定义了使用 EditorPlugin.add_dock() 方法添加此面板时,所使用的默认停靠槽位。
面板添加后,可被移动至其他槽位,编辑器会自动在不同会话间记住其位置。若移除后重新添加,该面板将被重置至默认槽位。
该停靠面板的图标,作为纹理。如果已指定,则它将覆盖 icon_name。
用于打开停靠面板的快捷键。
bool force_show_icon = false 🔗
如果设为 true,无论 EditorSettings.interface/editor/docks/dock_tab_style 或 EditorSettings.interface/editor/docks/bottom_dock_tab_style 怎么设置,该停靠面板(Dock)都会始终显示图标。
如果为 true,则停靠面板会出现在编辑器 > 编辑器面板菜单中,并且可以被关闭。非全局的停靠面板仍然可以使用 close() 关闭,或者当 closable 为 true 时关闭。
StringName icon_name = &"" 🔗
void set_icon_name(value: StringName)
StringName get_icon_name()
停靠面板的图标,名称取自编辑器主题中的 EditorIcons 主题类型。可以在此处找到可用的图标列表。
该键值用于在编辑器的布局文件中表示该停靠面板。如果为空,则将改用该停靠面板的显示名称。
停靠面板选项卡的标题。如果为空,则使用停靠面板的 Node.name。如果名称是自动生成的(包含 @),则会改用第一个子节点的名称。
Color title_color = Color(0, 0, 0, 0) 🔗
停靠面板选项卡标题的颜色。如果其 Alpha 为 0.0,则将使用默认字体颜色。
如果为 true,则加载编辑器布局时,停靠面板不会自动打开或关闭,只会移动。它也无法通过快捷键打开。这是为在特定情况下打开和关闭的停靠面板而设计的,例如选择 TileMap 或 AnimationTree 节点时。
方法说明
void _load_layout_from_config(config: ConfigFile, section: String) virtual 🔗
实现该方法以处理加载该停靠面板的布局。它等效于 EditorPlugin._set_window_layout()。section 是基于 layout_key 的独特节。
void _save_layout_to_config(config: ConfigFile, section: String) virtual const 🔗
实现该方法来处理保存该停靠面板的布局。它等价于 EditorPlugin._get_window_layout()。section 是基于 layout_key 的独特节。
void _update_layout(layout: int) virtual 🔗
实现该方法以处理该停靠面板的布局切换。layout 是 DockLayout 枚举常量之一。
func _update_layout(layout):
box_container.vertical = (layout == DOCK_LAYOUT_VERTICAL)
void close() 🔗
关闭该停靠面板,使其选项卡隐藏。
void make_visible() 🔗
聚焦停靠面板的选项卡(如果是浮动窗口,则聚焦窗口)。如果该停靠面板已关闭,则会将其打开。如果是底部停靠面板,则使底部面板可见。
void open() 🔗
打开停靠面板。它将显示在上次使用的停靠插槽中。如果该停靠面板没有默认插槽,它将以浮动窗口的形式打开。
注意:它不会聚焦停靠面板。如果想打开并聚焦停靠面板,请使用 make_visible()。