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...
GraphNode¶
实验性: This class may be changed or removed in future versions.
继承: GraphElement < Container < Control < CanvasItem < Node < Object
带有连接端口的容器,代表 GraphEdit 中的一个节点。
描述¶
GraphNode 能够在 GraphEdit 图中创建节点,节点会根据其子控件定制内容。GraphNode 派生自 Container,负责将其子节点放置在屏幕上。工作原理类似于 VBoxContainer。而子节点为 GraphNode 提供所谓的插槽,每个插槽的两侧都可以有一个连接端口。
GraphNode 的插槽由其索引定义,一个插槽可以为节点提供最多两个端口:一个在左侧,一个在右侧。根据惯例,左侧端口也被称为输入端口,右侧端口被称为输出端口。每个端口都可以单独启用和配置,使用不同的类型和颜色。类型是你按照自己的需要来定义的任意值。父 GraphEdit 将在每个连接和断开连接请求中收到此信息。
添加至少一个子 Control 后,就可以在“检查器”面板中配置插槽。这些属性在“Slot”部分中按每个插槽的索引进行分组。
注意:虽然 GraphNode 是使用插槽和插槽索引设置的,但连接是在启用的端口之间建立的。因此 GraphEdit 使用端口的索引,而不是插槽的索引。可以使用 get_input_port_slot 和 get_output_port_slot 从端口索引中获取插槽索引。
属性¶
|
||
mouse_filter |
|
|
|
方法¶
void |
_draw_port(slot_index: int, position: Vector2i, left: bool, color: Color) virtual |
void |
|
void |
clear_slot(slot_index: int) |
get_input_port_color(port_idx: int) |
|
get_input_port_position(port_idx: int) |
|
get_input_port_slot(port_idx: int) |
|
get_input_port_type(port_idx: int) |
|
get_output_port_color(port_idx: int) |
|
get_output_port_position(port_idx: int) |
|
get_output_port_slot(port_idx: int) |
|
get_output_port_type(port_idx: int) |
|
get_slot_color_left(slot_index: int) const |
|
get_slot_color_right(slot_index: int) const |
|
get_slot_custom_icon_left(slot_index: int) const |
|
get_slot_custom_icon_right(slot_index: int) const |
|
get_slot_type_left(slot_index: int) const |
|
get_slot_type_right(slot_index: int) const |
|
is_slot_draw_stylebox(slot_index: int) const |
|
is_slot_enabled_left(slot_index: int) const |
|
is_slot_enabled_right(slot_index: int) const |
|
void |
set_slot(slot_index: int, enable_left_port: bool, type_left: int, color_left: Color, enable_right_port: bool, type_right: int, color_right: Color, custom_icon_left: Texture2D = null, custom_icon_right: Texture2D = null, draw_stylebox: bool = true) |
void |
set_slot_color_left(slot_index: int, color: Color) |
void |
set_slot_color_right(slot_index: int, color: Color) |
void |
set_slot_custom_icon_left(slot_index: int, custom_icon: Texture2D) |
void |
set_slot_custom_icon_right(slot_index: int, custom_icon: Texture2D) |
void |
set_slot_draw_stylebox(slot_index: int, enable: bool) |
void |
set_slot_enabled_left(slot_index: int, enable: bool) |
void |
set_slot_enabled_right(slot_index: int, enable: bool) |
void |
set_slot_type_left(slot_index: int, type: int) |
void |
set_slot_type_right(slot_index: int, type: int) |
主题属性¶
|
||
|
||
|
||
信号¶
slot_updated(slot_index: int) 🔗
当任何图形节点的插槽更新时发出。
属性说明¶
bool ignore_invalid_connection_type = false
🔗
如果为 true
,则可以连接不同类型的端口,即使父级 GraphEdit 中未明确允许该连接。
显示在 GraphNode 标题栏中的文本。
方法说明¶
void _draw_port(slot_index: int, position: Vector2i, left: bool, color: Color) virtual 🔗
该方法目前没有描述,请帮我们贡献一个吧!
void clear_all_slots() 🔗
禁用 GraphNode 的所有插槽。会移除该 GraphNode 的所有输入/输出端口。
void clear_slot(slot_index: int) 🔗
禁用索引为 slot_index
的插槽。会移除该 GraphNode 的对应输入和输出端口。
Color get_input_port_color(port_idx: int) 🔗
返回索引为 port_idx
的输入端口的 Color。
返回启用了输入端口的插槽数。
Vector2 get_input_port_position(port_idx: int) 🔗
返回索引为 port_idx
的输入端口的位置。
int get_input_port_slot(port_idx: int) 🔗
返回索引为 port_idx
的输入端口的对应插槽索引。
int get_input_port_type(port_idx: int) 🔗
返回索引为 port_idx
的输入端口的类型。
Color get_output_port_color(port_idx: int) 🔗
返回索引为 port_idx
的输出端口的 Color。
返回启用了输出端口的插槽数。
Vector2 get_output_port_position(port_idx: int) 🔗
返回索引为 port_idx
的输出端口的位置。
int get_output_port_slot(port_idx: int) 🔗
返回索引为 port_idx
的输出端口的对应插槽索引。
int get_output_port_type(port_idx: int) 🔗
返回索引为 port_idx
的输出端口的类型。
Color get_slot_color_left(slot_index: int) const 🔗
返回索引为 slot_index
的插槽左侧(输入)的 Color。
Color get_slot_color_right(slot_index: int) const 🔗
返回索引为 slot_index
的插槽右侧(输出)的 Color。
Texture2D get_slot_custom_icon_left(slot_index: int) const 🔗
返回具有给定 slot_index
的插槽的左侧(输入)的自定义 Texture2D。
Texture2D get_slot_custom_icon_right(slot_index: int) const 🔗
返回具有给定 slot_index
的插槽的右侧(输出)的自定义 Texture2D。
int get_slot_type_left(slot_index: int) const 🔗
返回索引为 slot_index
的插槽左侧(输入)的类型。
int get_slot_type_right(slot_index: int) const 🔗
返回索引为 slot_index
的插槽右侧(输出)的类型。
HBoxContainer get_titlebar_hbox() 🔗
返回标题栏所使用的 HBoxContainer,默认只包含一个 Label,用于显示标题。可用于向标题栏添加自定义控件,例如选项和关闭按钮等。
bool is_slot_draw_stylebox(slot_index: int) const 🔗
如果绘制索引为 slot_index
的插槽的背景 StyleBox,则返回 true。
bool is_slot_enabled_left(slot_index: int) const 🔗
如果启用了索引为 slot_index
的插槽的左侧(输入),则返回 true
。
bool is_slot_enabled_right(slot_index: int) const 🔗
如果启用了索引为 slot_index
的插槽的右侧(输出),则返回 true
。
void set_slot(slot_index: int, enable_left_port: bool, type_left: int, color_left: Color, enable_right_port: bool, type_right: int, color_right: Color, custom_icon_left: Texture2D = null, custom_icon_right: Texture2D = null, draw_stylebox: bool = true) 🔗
设置索引为 slot_index
的插槽的属性。
如果 enable_left_port
/enable_right_port
为 true
,则将出现一个端口,插槽将能够从这一侧连接。
使用 type_left
/type_right
可以为每个端口分配一个任意类型。如果两个端口具有相同的类型,或者如果它们的类型之间的连接在父 GraphEdit 中被允许(参见 GraphEdit.add_valid_connection_type),那么这两个端口就可以被连接。请记住,GraphEdit 在接受连接上拥有最终决定权。类型兼容性只允许发出 GraphEdit.connection_request 信号。
可以使用 color_left
/color_right
和 custom_icon_left
/custom_icon_right
进一步定制端口。颜色参数为图标添加了一个色调。自定义图标可以用来覆盖默认的端口点。
此外,draw_stylebox
可以用来启用或禁用每个插槽的背景样式框的绘制。参见 slot。
单个属性也可以使用 set_slot_*
方法之一来设置。
注意:该方法只设置插槽的属性。要创建插槽本身,请将 Control 派生的子节点添加到该 GraphNode。
void set_slot_color_left(slot_index: int, color: Color) 🔗
将索引为 slot_index
的插槽的左侧(输入)的 Color 设置为 color
。
void set_slot_color_right(slot_index: int, color: Color) 🔗
将索引为 slot_index
的插槽的右侧(输出)的 Color 设置为 color
。
void set_slot_custom_icon_left(slot_index: int, custom_icon: Texture2D) 🔗
将索引为 slot_index
的插槽的左侧(输入)的自定义 Texture2D 设置为 custom_icon
。
void set_slot_custom_icon_right(slot_index: int, custom_icon: Texture2D) 🔗
将索引为 slot_index
的插槽的右侧(输出)的自定义 Texture2D 设置为 custom_icon
。
void set_slot_draw_stylebox(slot_index: int, enable: bool) 🔗
开关索引为 slot_index
的插槽的背景 StyleBox。
void set_slot_enabled_left(slot_index: int, enable: bool) 🔗
切换给定插槽 slot_index
的左侧(输入)端口。如果 enable
为 true
,则左侧会出现一个端口,并且该插槽可以从这一侧连接。
void set_slot_enabled_right(slot_index: int, enable: bool) 🔗
切换给定插槽 slot_index
的右侧(输出)端口。如果 enable
为 true
,则右侧会出现一个端口,并且该插槽可以从这一侧连接。
void set_slot_type_left(slot_index: int, type: int) 🔗
将给定插槽 slot_index
的左侧(输入)类型设置为 type
。如果该值为负,则所有的连接将不允许通过用户输入来创建。
void set_slot_type_right(slot_index: int, type: int) 🔗
将给定插槽 slot_index
的右侧(输出)类型设置为 type
。如果该值为负,则所有的连接将不允许通过用户输入来创建。
主题属性说明¶
Color resizer_color = Color(0.875, 0.875, 0.875, 1)
🔗
应用于调整尺寸大小图标的颜色调制。
端口的水平偏移量。
端口之间的垂直距离。
该图标用于表示端口。
GraphNode 槽区域的默认背景。
用于被选中时的插槽区域的 StyleBox。
用于 GraphNode 的每个插槽的 StyleBox。
用于该 GraphNode 标题栏的 StyleBox。