Node
继承
简要描述
所有 scene 对象的基类。
描述
节点是IdeaXR的构建块。它们可以被分配为另一个节点的子节点,从而形成树形布局。给定节点可以包含任意数量的节点作为子节点,但要求所有兄弟节点(节点的直接子节点)的名称必须唯一。节点树称为scene。场景能够被保存到磁盘,并且能够实例化到其他场景中。这为IdeaXR项目的架构和数据模型提供了非常高的灵活性。
场景树: SceneTree包含活动的节点树。当一个节点被添加到场景树中时,它会接收到NOTIFICATION_ENTER_TREE通知,并触发它的_enter_tree回调。子节点添加总是在父节点之后,也就是说,父节点的_enter_tree回调函数会在子节点之前被触发。一旦将所有节点添加到场景树中,它们就会收到NOTIFICATION_READY通知,并触发它们各自的_ready回调。
这意味着在将节点添加到场景树时,以下顺序将用于回调:父级的_enter_tree,子级的_enter_tree,子级的_ready以及最后的父级_ready
处理:节点可以重载“处理”状态,以便它们在每个帧上收到回调,以请求它们进行处理(执行某些操作)。正常的处理(callback _process,切换set_process)会尽可能快地发生,并且依赖于帧速率,所以处理时间delta作为参数传递。物理处理(callback _physics_process,切换set_physics_process)每秒发生固定次数(默认为60次),对于与物理引擎相关的代码很有用。
节点还可以处理输入事件。当出现时,程序接收到的每个输入都会调用_input函数。在很多情况下,这可能有点过分(除非用于简单的项目),所以_unhandled_input函数可能是首选;当其他任何人(通常是GUI Control节点)没有处理输入事件时,就会调用它,以确保该节点只接收针对它的事件。
为了跟踪场景层次结构(尤其是在将场景实例化为其他场景时),可以使用owner属性为节点设置“所有者”。这可以跟踪谁实例了什么。不过,这在编写编辑器和工具时非常有用。
最后,当使用Object.free或queue_free释放节点时,它还将释放其所有子节点。
组:可以将节点添加到尽可能多的组中,以便于管理,例如,可以根据游戏类型创建“敌人”或“收藏品”之类的组。参见add_to_group,is_in_group和remove_from_group。然后,您可以检索这些组中的所有节点,迭代它们,甚至通过SceneTree上的方法调用组上的方法。
与节点建立网络:连接到服务器(或建立一个服务器后,请参阅[NetworkedMultiplayerENet])之后,可以使用内置的RPC(远程过程调用)系统通过网络进行通信。通过使用方法名调用rpc,它将在本地和所有连接的对等体中被调用(对等体=客户端和接受连接的服务器)。要识别哪个节点接收RPC调用,IdeaXR将使用它的NodePath(确保节点名在所有对等节点上是相同的)。另外,看一看高级网络教程和相应的演示。
成员
类型 | 属性名 | 默认值 |
---|---|---|
MultiplayerAPI | custom_multiplayer | |
String | filename | |
MultiplayerAPI | multiplayer | |
String | name | |
Node | owner | |
int | pause_mode | 0 |
int | process_priority | 0 |
方法
返回值类型 | 方法名称 |
---|---|
void | _enter_tree() virtual |
void | _exit_tree() virtual |
String | _get_configuration_warning() virtual |
void | _input(event: InputEvent) virtual |
void | _physics_process(delta: float) virtual |
void | _process(delta: float) virtual |
void | _ready() virtual |
void | _unhandled_input(event: InputEvent) virtual |
void | _unhandled_key_input(event: InputEventKey) virtual |
void | add_child(node: Node, legible_unique_name: bool = false) |
void | add_child_below_node(node: Node, child_node: Node, legible_unique_name: bool = false) |
void | add_to_group(group: String, persistent: bool = false) |
bool | can_process() const |
Node | duplicate(flags: int = 15) const |
Node | find_node(mask: String, recursive: bool = true, owned: bool = true) const |
Node | find_parent(mask: String) const |
Node | get_child(idx: int) const |
int | get_child_count() const |
Array | get_children() const |
Array | get_groups() const |
int | get_index() const |
int | get_network_master() const |
Node | get_node(path: NodePath) const |
Array | get_node_and_resource(path: NodePath) |
Node | get_node_or_null(path: NodePath) const |
Node | get_parent() const |
NodePath | get_path() const |
NodePath | get_path_to(node: Node) const |
float | get_physics_process_delta_time() const |
int | get_position_in_parent() const |
float | get_process_delta_time() const |
bool | get_scene_instance_load_placeholder() const |
SceneTree | get_tree() const |
Viewport | get_viewport() const |
bool | has_node(path: NodePath) const |
bool | has_node_and_resource(path: NodePath) const |
bool | is_a_parent_of(node: Node) const |
bool | is_displayed_folded() const |
bool | is_greater_than(node: Node) const |
bool | is_in_group(group: String) const |
bool | is_inside_tree() const |
bool | is_network_master() const |
bool | is_physics_processing() const |
bool | is_physics_processing_internal() const |
bool | is_processing() const |
bool | is_processing_input() const |
bool | is_processing_internal() const |
bool | is_processing_unhandled_input() const |
bool | is_processing_unhandled_key_input() const |
void | move_child(child_node: Node, to_position: int) |
void | print_stray_nodes() |
void | print_tree() |
void | print_tree_pretty() |
void | propagate_call(method: String, args: Array = [], parent_first: bool = false) |
void | propagate_notification(what: int) |
void | queue_free() |
void | raise() |
void | remove_and_skip() |
void | remove_child(node: Node) |
void | remove_from_group(group: String) |
void | replace_by(node: Node, keep_data: bool = false) |
void | request_ready() |
Variant | rpc(method: String, ...) vararg |
void | rpc_config(method: String, mode: int) |
Variant | rpc_id(peer_id: int, method: String, ...) vararg |
Variant | rpc_unreliable(method: String, ...) vararg |
Variant | rpc_unreliable_id(peer_id: int, method: String, ...) vararg |
void | rset(property: String, value: Variant) |
void | rset_config(property: String, mode: int) |
void | rset_id(peer_id: int, property: String, value: Variant) |
void | rset_unreliable(property: String, value: Variant) |
void | rset_unreliable_id(peer_id: int, property: String, value: Variant) |
void | set_display_folded(fold: bool) |
void | set_network_master(id: int, recursive: bool = true) |
void | set_physics_process(enable: bool) |
void | set_physics_process_internal(enable: bool) |
void | set_process(enable: bool) |
void | set_process_input(enable: bool) |
void | set_process_internal(enable: bool) |
void | set_process_unhandled_input(enable: bool) |
void | set_process_unhandled_key_input(enable: bool) |
void | set_scene_instance_load_placeholder(load_placeholder: bool) |
void | update_configuration_warning() |
信号
- **ready**
当节点准备就绪时发出。
- **renamed**
重命名节点时发出。
- **tree_entered**
当节点进入树时发出。
- **tree_exited**
在节点退出树并且不再处于活动状态之后发出。
- **tree_exiting**
当节点仍处于活动状态但即将退出树时发出。这是反初始化(或者说是“析构函数”)的正确位置。
枚举
enum PauseMode:
- **PAUSE_MODE_INHERIT = 0**
从节点的父级继承暂停模式。
- **PAUSE_MODE_STOP = 1**
SceneTree暂停时停止处理。
- **PAUSE_MODE_PROCESS = 2**
无论SceneTree暂停状态如何,都继续处理。
enum DuplicateFlags:
- **DUPLICATE_SIGNALS = 1**
复制节点的信号。
- **DUPLICATE_GROUPS = 2**
复制节点的组。
- **DUPLICATE_SCRIPTS = 4**
复制节点的脚本。
- **DUPLICATE_USE_INSTANCING = 8**
使用实例复制。
实例保持与原始实例的链接,因此当原始实例更改时,该实例也随之更改。
常量
- **NOTIFICATION_ENTER_TREE = 10**
当节点进入SceneTree时收到通知。
- **NOTIFICATION_EXIT_TREE = 11**
当节点即将退出SceneTree时收到通知。
- **NOTIFICATION_MOVED_IN_PARENT = 12**
当节点在父节点中移动时收到通知。
- **NOTIFICATION_READY = 13**
节点准备就绪时收到通知。
- **NOTIFICATION_PAUSED = 14**
节点暂停时收到通知。
- **NOTIFICATION_UNPAUSED = 15**
节点取消暂停时收到通知。
- **NOTIFICATION_PHYSICS_PROCESS = 16**
设置物理过程标记时,每帧都会收到通知(请参阅set_physics_process)。
- **NOTIFICATION_PROCESS = 17**
设置了处理标志时,每帧都会收到通知(请参阅set_process)。
- **NOTIFICATION_PARENTED = 18**
当一个节点设置为另一个节点的子节点时收到通知。
注意:这并不意味着节点进入了SceneTree。
- **NOTIFICATION_UNPARENTED = 19**
将节点取消父级(父级将其从子级列表中删除)时收到通知。
- **NOTIFICATION_INSTANCED = 20**
实例化节点时收到通知。
- **NOTIFICATION_DRAG_BEGIN = 21**
开始拖动时收到通知。
- **NOTIFICATION_DRAG_END = 22**
拖动结束时收到通知。
- **NOTIFICATION_PATH_CHANGED = 23**
节点的NodePath更改时收到通知。
- **NOTIFICATION_INTERNAL_PROCESS = 25**
设置内部进程标志时,每帧都会收到通知(请参阅set_process_internal)。
- **NOTIFICATION_INTERNAL_PHYSICS_PROCESS = 26**
设置内部物理过程标记时,每帧都会收到通知(请参阅set_physics_process_internal)。
- **NOTIFICATION_WM_MOUSE_ENTER = 1002**
当鼠标进入游戏窗口时,从操作系统收到通知。
在桌面和Web平台上实现。
- **NOTIFICATION_WM_MOUSE_EXIT = 1003**
当鼠标离开游戏窗口时,从操作系统收到通知。
在桌面和Web平台上实现。
- **NOTIFICATION_WM_FOCUS_IN = 1004**
聚焦游戏窗口时从OS收到通知。
在所有平台上实施。
- **NOTIFICATION_WM_FOCUS_OUT = 1005**
当游戏窗口未聚焦时,会从OS收到通知。
在所有平台上实施。
- **NOTIFICATION_WM_QUIT_REQUEST = 1006**
发送退出请求时(例如,使用“关闭”按钮或Alt F4关闭窗口)从操作系统收到通知。
在桌面平台上实现。
- **NOTIFICATION_WM_GO_BACK_REQUEST = 1007**
发送回退请求时(例如,按Android上的“后退”按钮),从操作系统收到通知。
特定于Android平台。
- **NOTIFICATION_WM_UNFOCUS_REQUEST = 1008**
当发送散焦请求时(例如另一个OS窗口希望获得焦点),从OS收到通知。
当前没有支持的平台发送此通知。
- **NOTIFICATION_OS_MEMORY_WARNING = 1009**
当应用程序超出其分配的内存时,从OS收到通知。
特定于iOS平台。
- **NOTIFICATION_TRANSLATION_CHANGED = 1010**
翻译可能已更改时收到通知。
- **NOTIFICATION_WM_ABOUT = 1011**
发送有关“关于”信息的请求时,从OS收到通知。
特定于macOS平台。
- **NOTIFICATION_CRASH = 1012**
引擎即将崩溃时,从IdeaXR的崩溃处理程序收到通知。
如果启用了崩溃处理程序,则在桌面平台上实现。
- **NOTIFICATION_OS_IME_UPDATE = 1013**
发生输入法引擎更新时从操作系统收到的通知(例如,IME光标位置或组成字符串的更改)。
特定于macOS平台。
- **NOTIFICATION_APP_RESUMED = 1014**
恢复应用后,会从操作系统收到通知。
特定于Android平台。
- **NOTIFICATION_APP_PAUSED = 1015**
暂停应用程序时从操作系统收到通知。
特定于Android平台。
成员说明
- MultiplayerAPI custom_multiplayer
setter | set_custom_multiplayer(value) |
---|---|
getter | get_custom_multiplayer |
- String filename
setter | set_filename(value) |
---|---|
getter | get_filename |
- MultiplayerAPI multiplayer
getter | get_multiplayer |
---|
- String name
setter | set_name(value) |
---|---|
getter | get_name |
- Node owner
setter | set_owner(value) |
---|---|
getter | get_owner |
- int pause_mode
Default | 0 |
---|---|
setter | set_pause_mode(value) |
getter | get_pause_mode |
- int process_priority
Default | 0 |
---|---|
setter | set_process_priority(value) |
getter | get_process_priority |
方法说明
- _enter_tree _enter_tree() virtual
在节点进入SceneTree时调用(例如,在实例化,场景更改时或在脚本中调用add_child之后)。
对应于Object._notification中的NOTIFICATION_ENTER_TREE通知。
- _exit_tree _exit_tree() virtual
在节点即将离开SceneTree时调用(例如,释放,更改场景或在脚本中调用remove_child之后)。
对应于Object._notification中的NOTIFICATION_EXIT_TREE通知,并发出tree_exiting信号。
- _get_configuration_warning _get_configuration_warning() virtual
如果覆盖此方法的脚本是tool
脚本,则此方法返回的字符串将在Scene Dock中显示为警告。
返回空字符串不会产生任何警告。
需要为此节点更新警告时,请调用update_configuration_warning。
- _input _input(event: InputEvent) virtual
有输入事件时调用。
仅在启用输入处理的情况下才调用它,如果覆盖了此方法,它将自动完成,并且可以使用set_process_input进行切换。
要消耗输入事件并停止将其传播到其他节点,可以调用SceneTree.set_input_as_handled。
对于游戏输入,_unhandled_input和_unhandled_key_input通常更适合,因为它们允许GUI首先拦截事件。
- _physics_process _physics_process(delta: float) virtual
在主循环的物理处理步骤中调用。物理处理意味着帧率与物理同步,例如delta
变量应该是常量。
仅在启用了物理处理的情况下才调用它,如果重写了此方法,该处理将自动完成,并且可以使用set_physics_process进行切换。
对应于Object._notification中的NOTIFICATION_PHYSICS_PROCESS通知。
- _process _process(delta: float) virtual
在主循环的处理步骤中调用。
仅当启用处理时才调用它,如果重写了此方法,它将自动完成,并且可以使用set_process进行切换。
对应于Object._notification中的NOTIFICATION_PROCESS通知。
- _ready _ready() virtual
在节点“就绪”时调用,即在节点及其子节点都进入场景树时调用。也就是说当节点及其子节点都进入场景树时。如果节点有子节点,它们的_ready回调会首先被触发,然后父节点会收到ready通知。
对应于Object._notification中的NOTIFICATION_READY通知。参见onready
关键字变量。
通常用于初始化。参见_enter_tree
注意:每个节点只能调用_ready。在从场景树中移除一个节点并再次添加之后,_ready
将不会被第二次调用。这可以通过使用[request_ready]请求另一个调用来绕过,该方法可以在再次添加节点之前的任何地方调用。
- _unhandled_input _unhandled_input(event: InputEvent) virtual
在_input或任何GUI尚未使用InputEvent时调用。
仅在启用了未处理的输入处理的情况下才调用它,如果重写了此方法,此处理将自动完成,并且可以使用set_process_unhandled_input进行切换。
要消耗输入事件并停止将其传播到其他节点,可以调用SceneTree.set_input_as_handled。
对于游戏输入,此方法和_unhandled_key_input通常比_input更适合,因为它们允许GUI首先拦截事件。
- _unhandled_key_input _unhandled_key_input(event: InputEventKey) virtual
在_input或任何GUI尚未使用InputEventKey时调用。输入事件通过节点树向上传播,直到某个节点使用它。
仅在启用了未处理的键输入处理的情况下才调用它,如果重写了此方法,此处理将自动完成,并且可以使用set_process_unhandled_key_input进行切换。
要消耗输入事件并停止将其传播到其他节点,可以调用SceneTree.set_input_as_handled。
对于游戏输入,此方法和_unhandled_input通常比_input更适合,因为它们允许GUI首先拦截事件。
- add_child add_child(node: Node, legible_unique_name: bool = false)
添加一个子节点。节点可以有任意数量的子节点,但是每个子节点必须有唯一的名称。当父节点被删除时,子节点被自动删除,所以整个场景可以通过删除其最顶层的节点来删除。
如果legible_unique_name
为` true [/ode],则子节点将具有基于实例节点名称而不是其类型的可读名称。
注意:如果子节点已经有一个父节点,则该函数将失败。
if child_node.get_parent():
child_node.get_parent().remove_child(child_node)
add_child(child_node)
注意:如果要让子节点坚持到[PackedScene](/docs/api/resource/PackedScene,除了调用[方法add_child]之外,还必须设置add_child。除了调用add_child,还必须设置add_child。如果在未设置owner的情况下调用add_child,则新添加的Node在场景树中不可见,但在2D/3D视图中可见。
- add_child_below_node add_child_below_node(node: Node, child_node: Node, legible_unique_name: bool = false)
添加一个子节点。子节点位于子节点列表中给定节点的下面。
如果legible_unique_name
为true
,则子节点将具有基于实例节点名称而不是其类型的可读名称。
- add_to_group add_to_group(group: String, persistent: bool = false)
将节点添加到组。群组是命名和组织节点子集的帮手,例如“敌人”或“可收集的东西”。一个节点可以属于任意数量的组。节点可以在任何时候分配一个组,但是直到它们在场景树中才会被添加(参见is_inside_tree)。参见描述中的注释,以及SceneTree中的组方法。
将节点打包到PackedScene并保存到文件时,将使用persistent
选项。
- can_process can_process() const
如果节点可以在场景树暂停期间进行处理,则返回true
(请参阅pause_mode)。
- duplicate duplicate(flags: int = 15) const
复制节点,返回一个新节点。
您可以使用flags
来微调行为(请参见DuplicateFlags)。
注意:如果该节点包含带有构造函数参数的脚本(即需要向Object._init方法提供参数),它将无法正常工作。
- find_node find_node(mask: String, recursive: bool = true, owned: bool = true) const
查找该节点的后代,其名称与String.match中的名称匹配mask
(即区分大小写,但“ *”
匹配零个或多个字符,并且"?"
匹配除"."
外的任何单个字符。)
注意:它不与完整路径匹配,仅与单个节点名称匹配。
如果owned
为true
,则此方法仅查找所有者为该节点的节点。这对于通过脚本实例化的场景尤其重要,因为这些场景没有所有者。
- find_parent find_parent(mask: String) const
查找名称与mask
匹配的当前节点的第一个父节点,如String.match(即区分大小写,但“ *”
匹配零个或多个字符,并且"?"
匹配除"."
外的任何单个字符。)
注意:它不与完整路径匹配,仅与单个节点名称匹配。
- get_child get_child(idx: int) const
通过其索引返回子节点(请参见get_child_count)。此方法通常用于迭代节点的所有子节点。
要通过其名称访问子节点,请使用get_node。
- get_child_count get_child_count() const
返回子节点的数量。
- get_children get_children() const
返回对节点的子节点的引用的数组。
- get_groups get_groups() const
返回一个数组,列出该节点所属的组。
- get_index get_index() const
返回节点的索引,即节点在其父级同级中的位置。
- get_network_master get_network_master() const
返回此节点的网络主机的对等ID。
- get_node get_node(path: NodePath) const
获取节点。 NodePath可以是一个相对路径(从当前节点)或绝对路径(在场景树)到一个节点。如果路径不存在,则返回null instance
,并记录错误。尝试访问返回值上的方法将导致 "尝试访问
注意:仅当节点在场景树内部时,才可以获取绝对路径(请参见is_inside_tree)。
示例:假设您当前的节点是Character,并且下面的树是:
/root
/root/Character
/root/Character/Sword
/root/Character/Backpack/Dagger
/root/MyGame
/root/Swamp/Alligator
/root/Swamp/Mosquito
/root/Swamp/Goblin
可能的路径是:
get_node("Sword")
get_node("Backpack/Dagger")
get_node("../Swamp/Alligator")
get_node("/root/MyGame")
- get_node_and_resource get_node_and_resource(path: NodePath)
按照NodePath的子名称指定的方式获取节点及其资源之一(例如Area2D /CollisionShape2D:shape
)。
返回值是一个大小为3的数组:第一个索引指向Node(如果找不到,则指向null
),第二个索引指向Resource(如果找不到,则指向null
),第三个索引是剩下的NodePath(如果有的话)。
例如,假设Area2D /CollisionShape2D
是有效节点,并且已为其shape
属性分配了RectangleShape2D资源,则可能会有这种输出:
print(get_node_and_resource("Area2D/CollisionShape2D")) # [[CollisionShape2D:1161], Null, ]
print(get_node_and_resource("Area2D/CollisionShape2D:shape")) # [[CollisionShape2D:1161], [RectangleShape2D:1156], ]
print(get_node_and_resource("Area2D/CollisionShape2D:shape:extents")) # [[CollisionShape2D:1161], [RectangleShape2D:1156], :extents]
- get_node_or_null get_node_or_null(path: NodePath) const
与get_node相似,但是如果path
没有指向有效的Node,则不会记录错误。
- get_parent get_parent() const
返回当前节点的父节点,如果该节点缺少父节点,则返回一个空的Node。
- get_path get_path() const
返回当前节点的绝对路径。这仅在当前节点位于场景树内时有效(参见is_inside_tree)。
- get_path_to get_path_to(node: Node) const
返回从此节点到指定的node
的相对NodePath。两个节点必须在同一个场景中,否则函数将失败。
- get_physics_process_delta_time get_physics_process_delta_time() const
返回自上一个物理绑定帧以来经过的时间(请参见_physics_process)。除非通过Engine.iterations_per_second改变每秒帧数,否则在物理处理中这总是一个常量。
- get_position_in_parent get_position_in_parent() const
返回场景树分支中节点的顺序。例如,如果在第一个子节点上调用,位置是0
。
- get_process_delta_time get_process_delta_time() const
返回自上次进程回调以来经过的时间(以秒为单位)。这个值可能因帧而异。
- get_scene_instance_load_placeholder get_scene_instance_load_placeholder() const
如果这是实例加载占位符,则返回true
。
- get_tree get_tree() const
返回包含此节点的SceneTree。
- get_viewport get_viewport() const
返回节点的Viewport。
- has_node has_node(path: NodePath) const
如果NodePath指向的节点存在,则返回true
。
- has_node_and_resource has_node_and_resource(path: NodePath) const
如果NodePath指向有效节点,并且其子名称指向有效资源,则返回true
。
- is_a_parent_of is_a_parent_of(node: Node) const
如果给定节点是当前节点的直接或间接子节点,则返回true
。
- is_displayed_folded is_displayed_folded() const
如果节点在场景底座中折叠(折叠),则返回true
。
- is_greater_than is_greater_than(node: Node) const
如果给定节点在场景层次结构中的出现时间比当前节点晚,则返回true
。
- is_in_group is_in_group(group: String) const
如果此节点在指定的组中,则返回true
。
- is_inside_tree is_inside_tree() const
如果此节点当前在SceneTree中,则返回true
。
- is_network_master is_network_master() const
如果本地系统是此节点的主节点,则返回true
。
- is_physics_processing is_physics_processing() const
如果启用了物理处理,则返回true
(请参阅set_physics_process)。
- is_physics_processing_internal is_physics_processing_internal() const
如果启用了内部物理处理,则返回true
(请参阅set_physics_process_internal)。
- is_processing is_processing() const
如果启用了处理,则返回true
(请参阅set_process)。
- is_processing_input is_processing_input() const
如果节点正在处理输入,则返回true
(请参阅set_process_input)。
- is_processing_internal is_processing_internal() const
如果启用了内部处理,则返回true
(请参阅set_process_internal)。
- is_processing_unhandled_input is_processing_unhandled_input() const
如果节点正在处理未处理的输入,则返回true
(请参阅set_process_unhandled_input)。
- is_processing_unhandled_key_input is_processing_unhandled_key_input() const
如果节点正在处理未处理的键输入,则返回true
(请参阅set_process_unhandled_key_input)。
- move_child move_child(child_node: Node, to_position: int)
将子节点移动到其他子节点中的其他位置(顺序)。因为调用、信号等都是按照树的顺序执行的,所以改变子节点的顺序可能是有用的。
- print_stray_nodes print_stray_nodes()
打印所有杂散节点(SceneTree之外的节点)。
- print_tree print_tree()
将树打印到标准输出。主要用于调试目的。这个版本显示了相对于当前节点的路径,适合复制/粘贴到get_node函数中。
示例输出:
TheGame
TheGame/Menu
TheGame/Menu/Label
TheGame/Menu/Camera2D
TheGame/SplashScreen
TheGame/SplashScreen/Camera2D
- print_tree_pretty print_tree_pretty()
与print_tree相似,这会将树打印到标准输出。
示例输出:
┖╴TheGame
┠╴Menu
┃ ┠╴Label
┃ ┖╴Camera2D
┖-SplashScreen
┖╴Camera2D
- propagate_call propagate_call(method: String, args: Array = [], parent_first: bool = false)
使用此节点上args
中给定的参数并对其所有子级递归调用给定方法(如果存在)。如果parent_first
参数为true
,则该方法将首先在当前节点上调用,然后在它的所有子节点上调用。如果parent_first
是false
,则子程序将首先被调用。
- propagate_notification propagate_notification(what: int)
通过在所有节点上调用Object.notification来递归通知当前节点及其所有子节点。
- queue_free queue_free()
在当前帧的末尾将要删除的节点排队。删除时,它的所有子节点也将被删除。这个方法确保了删除节点是安全的,这与Object.free相反。使用Object.is_queued_for_deletion来检查节点是否会在帧的末尾被删除。
- raise raise()
将此节点移动到父节点的子层次结构的底部。这在gui (Control节点)中通常很有用,因为它们的绘制顺序取决于它们在树中的顺序,也就是说,它们在节点列表中越远,绘制的位置就越高。在使用raise
之后,一个控件将被绘制在它的兄弟控件之上。
- remove_and_skip remove_and_skip()
删除节点并将其所有子节点设置为父节点的子节点(如果存在)。通过已删除节点传递的所有事件订阅都将取消订阅。
- remove_child remove_child(node: Node)
删除子节点。该节点未被删除,需要手动删除。
- remove_from_group remove_from_group(group: String)
从组中删除节点。参见描述中的注释,以及SceneTree中的组方法。
- replace_by replace_by(node: Node, keep_data: bool = false)
用给定的节点替换场景中的节点。
- request_ready request_ready()
请求再次调用_ready
。通过此节点的订阅将丢失。注意,该方法不会立即被调用,而是在节点再次添加到场景树时被调度(参见_ready)。_ready
只在请求它的节点上被调用,这意味着如果你想要它们也调用_ready
,你需要为每一个子节点请求ready(在这种情况下,_ready
将会被按照正常的顺序调用)。
- rpc rpc(method: String, ...) vararg
将给定方法
的远程过程调用请求发送到网络上(和本地)的对等方,可以选择将所有其他参数作为参数发送给RPC调用的方法。调用请求只会被具有相同NodePath的节点接收,包括完全相同的节点名。行为取决于给定方法的RPC配置,参见rpc_config。默认情况下,方法不向rpc公开。属性参见rset和rset_config。返回一个空的Variant。
注意:仅在收到SceneTree的connected_to_server
信号后,才能安全地在客户端上使用RPC。
- rpc_config rpc_config(method: String, mode: int)
将给定方法
的RPC模式更改为给定mode
。看到MultiplayerAPI.RPCMode。另一种方法是用相应的关键字(remote
, master
, puppet
, remotesync
, mastersync
, puppetsync
)注释方法和属性。默认情况下,方法不向网络(和rpc)公开。属性参见rset和rset_config。
- rpc_id rpc_id(peer_id: int, method: String, ...) vararg
将rpc发送到由peer_id
标识的特定对等方(请参阅[方法NetworkedMultiplayerPeer.set_target_peer])。
- rpc_unreliable rpc_unreliable(method: String, ...) vararg
使用不可靠的协议发送rpc。
- rpc_unreliable_id rpc_unreliable_id(peer_id: int, method: String, ...) vararg
使用不可靠的协议将rpc发送到由peer_id
标识的特定对等方(请参阅NetworkedMultiplayerPeer.set_target_peer)。
- rset rset(property: String, value: Variant)
远程更改其他同位体(和本地)上的属性值。行为取决于RPC对给定属性的配置,参见rset_config。关于方法,大部分信息也适用于这个方法。
- rset_config rset_config(property: String, mode: int)
将给定属性
的RPC模式更改为给定mode
。看到MultiplayerAPI.RPCMode。另一种方法是用相应的关键字(remote
, master
, puppet
, remotesync
, mastersync
, puppetsync
)注释方法和属性。默认情况下,属性不向网络(和rpc)公开。方法参见rpc和rpc_config。
- rset_id rset_id(peer_id: int, property: String, value: Variant)
在peer_id
所标识的特定对等方上远程更改属性的值(请参阅[方法NetworkedMultiplayerPeer.set_target_peer])。
- rset_unreliable rset_unreliable(property: String, value: Variant)
使用不可靠的协议远程更改其他对等方(和本地)的属性值。
- rset_unreliable_id rset_unreliable_id(peer_id: int, property: String, value: Variant)
使用不可靠的协议远程更改由peer_id
标识的特定同级上的属性值(请参阅NetworkedMultiplayerPeer.set_target_peer)。
- set_display_folded set_display_folded(fold: bool)
设置场景管理器中节点的折叠状态。
- set_network_master set_network_master(id: int, recursive: bool = true)
将节点的网络主节点设置为具有给定对等ID的对等节点。
- set_physics_process set_physics_process(enable: bool)
启用或禁用物理(即固定帧频)处理。当一个节点正在被处理时,它将以固定的速率(通常是60 FPS,参见Engine)接收NOTIFICATION_PHYSICS_PROCESS。(如果存在的话,将调用method_physics_process(#method_physics_process)回调函数)。如果method_physics_process(#method_physics_process)被覆盖,将自动启用。在_ready之前的任何调用都会被忽略。
- set_physics_process_internal set_physics_process_internal(enable: bool)
启用或禁用此节点的内部物理。内部物理处理与正常的_physics_process调用是隔离的,一些内部节点使用它来保证正常的功能,即使节点被暂停或者物理处理因脚本(set_physics_process)而被禁用。只对操作内置节点行为的高级用途有用。
- set_process set_process(enable: bool)
启用或禁用处理。当一个节点正在被处理时,它将在每个绘制的帧上接收到一个NOTIFICATION_PROCESS(如果存在_process回调函数将被调用)。如果[方法_process]被覆盖,将自动启用。在_ready之前的任何调用都会被忽略。
- set_process_input set_process_input(enable: bool)
启用或禁用输入处理。 这对于GUI控件是不需要的! 当_input被覆盖时自动启用。在_ready之前的任何调用都会被忽略。
- set_process_internal set_process_internal(enable: bool)
启用或禁用此节点的内部处理。内部处理与正常的_process调用是隔离的,一些节点内部使用它来保证正常的功能,即使节点被暂停或者由于脚本(set_process)而无法处理。只对操作内置节点行为的高级用途有用。
- set_process_unhandled_input set_process_unhandled_input(enable: bool)
启用未处理的输入处理。 这对于GUI控件是不需要的!它使节点能够接收以前没有处理过的所有输入(通常是由Control处理的)。如果_unhandled_input被覆盖,则自动启用。在_ready之前的任何调用都会被忽略。
- set_process_unhandled_key_input set_process_unhandled_key_input(enable: bool)
启用未处理的按键输入处理。如果_unhandled_key_input被覆盖,则自动启用。在_ready之前的任何调用都会被忽略。
- set_scene_instance_load_placeholder set_scene_instance_load_placeholder(load_placeholder: bool)
设置这是否是实例加载占位符。
- update_configuration_warning update_configuration_warning()
更新在Scene Dock中为此节点显示的警告。
使用_get_configuration_warning设置要显示的警告消息。