SceneTree¶
类别: 核心
简要说明¶
通过节点层次结构管理游戏循环。
属性¶
假 |
||
假 |
||
真 |
||
假 |
||
假 |
||
假 |
方法¶
call_group ( String group, String method, ... ) vararg |
|
call_group_flags ( int flags, String group, String method, ... ) vararg |
|
change_scene ( String path ) |
|
change_scene_to ( PackedScene packed_scene ) |
|
create_timer ( float time_sec, bool pause_mode_process=true ) |
|
get_frame ( ) const |
|
get_network_connected_peers ( ) const |
|
get_network_unique_id ( ) const |
|
get_node_count ( ) const |
|
get_nodes_in_group ( String group ) |
|
get_rpc_sender_id ( ) const |
|
has_network_peer ( ) const |
|
is_input_handled ( ) |
|
is_network_server ( ) const |
|
无效 |
notify_group ( String group, int notification ) |
无效 |
notify_group_flags ( int call_flags, String group, int notification ) |
无效 |
queue_delete ( Object obj ) |
无效 |
quit ( ) |
无效 |
set_auto_accept_quit ( bool enabled ) |
无效 |
|
无效 |
set_group_flags ( int call_flags, String group, String property, Variant value ) |
无效 |
|
无效 |
set_quit_on_go_back ( bool enabled ) |
无效 |
set_screen_stretch ( StretchMode mode, StretchAspect aspect, Vector2 minsize, float shrink=1 ) |
信号¶
connected_to_server ( )
无论何时 SceneTree
的 network_peer 已成功连接到服务器。仅在客户端上发出。
connection_failed ( )
无论何时 SceneTree
的 network_peer 无法建立到服务器的连接。仅在客户端上发出。
files_dropped ( PoolStringArray files, int screen )
当文件从OS文件管理器中拖动并放到游戏窗口中时发出。这些参数是文件路径的列表和产生拖动的屏幕的标识符。
idle_frame ( )
之前立即发出 Node._process 在中的每个节点上调用 SceneTree
.
network_peer_connected ( int id )
无论何时 SceneTree
的 network_peer 与新的对等机连接。ID是新对等机的对等机ID。当其他客户端连接到同一服务器时,客户端会收到通知。在连接到服务器时,客户机还接收服务器的此信号(ID为1)。
network_peer_disconnected ( int id )
无论何时 SceneTree
的 network_peer 从对等机断开连接。当其他客户端与同一服务器断开连接时,客户端会收到通知。
node_added ( Node node )
每当将节点添加到 SceneTree
.
node_configuration_warning_changed ( Node node )
节点配置更改时发出。仅在 tool
模式。
node_removed ( Node node )
每当从中移除节点时发出 SceneTree
.
node_renamed ( Node node )
每当重命名节点时发出。
physics_frame ( )
之前立即发出 Node._physics_process 在中的每个节点上调用 SceneTree
.
screen_resized ( )
当屏幕分辨率(全屏)或窗口大小(带窗口)更改时发出。
server_disconnected ( )
无论何时 SceneTree
的 network_peer 已断开与服务器的连接。仅在客户端上发出。
tree_changed ( )
无论何时 SceneTree
层次结构已更改(正在移动或重命名子级等)。
枚举¶
枚举 GroupCallFlags :
GROUP_CALL_DEFAULT = 0 ---调用没有标志的组(默认)。
GROUP_CALL_REVERSE = 1 ---按相反的场景顺序调用一个组。
GROUP_CALL_REALTIME = 2 ---立即呼叫一个组(呼叫通常在空闲时进行)。
GROUP_CALL_UNIQUE = 4 ---即使多次执行呼叫,也只呼叫一个组。
枚举 StretchMode :
STRETCH_MODE_DISABLED = 0 ——不要拉伸。
STRETCH_MODE_2D = 1 ---以更高的分辨率渲染拉伸(内插)。
STRETCH_MODE_VIEWPORT = 2 ---保持指定的显示分辨率。没有插值。内容可能出现像素化。
枚举 StretchAspect :
STRETCH_ASPECT_IGNORE = 0 ---在窗口中填充拉伸的内容,以覆盖多余的空间。内容可能会出现拉伸。
STRETCH_ASPECT_KEEP = 1 ---通过在任意轴上填充黑色条来保持相同的纵横比。这样可以防止变形。
STRETCH_ASPECT_KEEP_WIDTH = 2 ---垂直展开。如果窗口太宽,可能会出现左/右黑条。
STRETCH_ASPECT_KEEP_HEIGHT = 3 ---水平展开。如果窗口太高,可能会出现顶部/底部的黑色条。
STRETCH_ASPECT_EXPAND = 4 ---双向展开,保持相同的展弦比。这可以防止变形,同时避免黑条。
描述¶
作为最重要的课程之一, SceneTree
管理场景中节点的层次结构以及场景本身。可以添加、检索和删除节点。可以暂停整个场景树(从而暂停当前场景)。可以加载、切换和重新加载场景。
您也可以使用 SceneTree
把你的节点组织成组:每个节点可以被分配任意多个你想要创建的组,例如“敌人”组。然后,您可以迭代这些组,甚至调用方法,并同时在组的所有成员上设置属性。
SceneTree
是默认值 MainLoop 实现由场景使用,因此负责游戏循环。
属性描述¶
Node current_scene
设定器 |
设置当前场景(值) |
吸气剂 |
获取当前场景() |
当前场景。
bool debug_collisions_hint
违约 |
假 |
设定器 |
设置调试冲突提示(值) |
吸气剂 |
是否调试冲突提示( |
如果 true
,当从编辑器运行游戏以进行调试时,碰撞形状将可见。
违约 |
假 |
设定器 |
设置调试导航提示(值) |
吸气剂 |
正在调试导航提示()。 |
如果 true
,当从编辑器运行游戏以进行调试时,导航多边形将可见。
Node edited_scene_root
设定器 |
设置已编辑的场景根(值) |
吸气剂 |
获取已编辑的场景根()。 |
已编辑场景的根。
MultiplayerAPI multiplayer
设定器 |
设置多人游戏(值) |
吸气剂 |
获取多人游戏() |
默认值 MultiplayerAPI 这个的实例 SceneTree
.
bool multiplayer_poll
违约 |
真 |
设定器 |
设置多人投票(值) |
吸气剂 |
多人在线投票是否启用()。 |
如果 true
(默认值),启用 MultiplayerAPI 对于这个场景,在 idle_frame .
如果 false
,您需要手动呼叫 MultiplayerAPI.poll 处理网络包并发送RPC/RSET。这允许在不同的循环(例如物理、线程、特定时间步)中运行rpcs/rsets,并用于手动 Mutex 访问时的保护 MultiplayerAPI 从线程。
NetworkedMultiplayerPeer network_peer
设定器 |
设置网络对等(值) |
吸气剂 |
获取网络对等机() |
处理RPC系统的对等对象(设置时有效启用网络)。取决于对等机本身, SceneTree
将成为网络服务器(请检查 is_network_server )并将根节点的网络模式设置为master(请参见 NETWORK_MODE_*
中的常量 Node 否则,它将成为根节点设置为puppet的常规对等节点。默认情况下,所有子节点都设置为继承网络模式。处理与网络相关的事件(连接、断开连接、新客户端)是通过连接到 SceneTree
的信号。
bool paused
违约 |
假 |
设定器 |
设置暂停(值) |
吸气剂 |
已暂停()。 |
如果 true
, the SceneTree
已暂停。这样做将具有以下行为:
二维和三维物理将停止。
Node._process , Node._physics_process 和 Node._input 将不再在节点中调用。
bool refuse_new_network_connections
违约 |
假 |
设定器 |
设置“拒绝”新网络连接(值) |
吸气剂 |
是否拒绝新的网络连接 |
如果 true
, the SceneTree
的 network_peer 拒绝新的传入连接。
Viewport root
吸气剂 |
获取根目录() |
这个 SceneTree
的根 Viewport .
bool use_font_oversampling
违约 |
假 |
设定器 |
设置“使用”字体“过采样”(值) |
吸气剂 |
_是否使用了_字体_过采样() |
如果 true
,使用字体过采样。
方法说明¶
调用 method
在给定组的每个成员上。
调用 method
关于给定组的每个成员,尊重给定的 GroupCallFlags .
将运行场景更改为给定的 path
,加载到 PackedScene 并创建一个新实例。
返回 @GlobalScope.OK 关于成功, @GlobalScope.ERR_CANT_OPEN 如果 path
无法加载到 PackedScene 或 @GlobalScope.ERR_CANT_CREATE 如果无法实例化该场景。
Error change_scene_to ( PackedScene packed_scene )
将正在运行的场景更改为给定的 PackedScene .
返回 @GlobalScope.OK 关于成功还是 @GlobalScope.ERR_CANT_CREATE 如果无法实例化场景。
SceneTreeTimer create_timer ( float time_sec, bool pause_mode_process=true )
返回A SceneTreeTimer 哪个会 SceneTreeTimer.timeout 在给定的时间(以秒为单位)之后 SceneTree
.如果 pause_mode_process
设置为 false
,暂停 SceneTree
也会暂停计时器。
通常用于创建单次延迟计时器,如下例所示:
func some_function():
print("start")
yield(get_tree().create_timer(1.0), "timeout")
print("end")
int get_frame ( ) const
返回当前帧号,即自应用程序启动以来的总帧计数。
PoolIntArray get_network_connected_peers ( ) const
返回此的所有已连接对等机的对等机ID SceneTree
的 network_peer .
int get_network_unique_id ( ) const
返回此的唯一对等ID SceneTree
的 network_peer .
int get_node_count ( ) const
返回此中的节点数 SceneTree
.
返回分配给给定组的所有节点的列表。
int get_rpc_sender_id ( ) const
返回最近收到的RPC调用的发送方对等ID。
返回 true
如果给定的组存在。
bool has_network_peer ( ) const
返回 true
如果有 network_peer 集合。
bool is_input_handled ( )
返回 true
如果是最近的 InputEvent 标记为已处理 set_input_as_handled .
bool is_network_server ( ) const
返回 true
如果这样 SceneTree
的 network_peer 处于服务器模式(正在侦听连接)。
将给定的通知发送给 group
.
将给定的通知发送给 group
尊重给予的 GroupCallFlags .
void queue_delete ( Object obj )
将给定对象排队以进行删除,从而延迟对 Object.free 到当前帧之后。
void quit ( )
退出应用程序。
Error reload_current_scene ( )
重新加载当前活动的场景。
Returns an Error code as described in change_scene, with the addition of @GlobalScope.ERR_UNCONFIGURED if no current_scene was defined yet.
void set_auto_accept_quit ( bool enabled )
如果 true
,应用程序自动接受退出。默认启用。
设置给定的 property
到 value
指定组的所有成员。
设置给定的 property
到 value
关于给定群体的所有成员,尊重给定群体 GroupCallFlags .
void set_input_as_handled ( )
标记最近的 InputEvent 按处理。
void set_quit_on_go_back ( bool enabled )
如果 true
,应用程序返回时自动退出(例如在Android上)。默认启用。
void set_screen_stretch ( StretchMode mode, StretchAspect aspect, Vector2 minsize, float shrink=1 )
配置屏幕拉伸到给定的 StretchMode , StretchAspect 最小尺寸和 shrink
比率。