SceneTree

Inherits: MainLoop < Object

类别: 核心

简要说明

通过节点层次结构管理游戏循环。

方法

Variant

call_group ( String group, String method, ... ) vararg

Variant

call_group_flags ( int flags, String group, String method, ... ) vararg

Error

change_scene ( String path )

Error

change_scene_to ( PackedScene packed_scene )

SceneTreeTimer

create_timer ( float time_sec, bool pause_mode_process=true )

int

get_frame ( ) const

PoolIntArray

get_network_connected_peers ( ) const

int

get_network_unique_id ( ) const

int

get_node_count ( ) const

Array

get_nodes_in_group ( String group )

int

get_rpc_sender_id ( ) const

bool

has_group ( String name ) const

bool

has_network_peer ( ) const

bool

is_input_handled ( )

bool

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 ( )

Error

reload_current_scene ( )

无效

set_auto_accept_quit ( bool enabled )

无效

set_group ( String group, String property, Variant value )

无效

set_group_flags ( int call_flags, String group, String property, Variant value )

无效

set_input_as_handled ( )

无效

set_quit_on_go_back ( bool enabled )

无效

set_screen_stretch ( StretchMode mode, StretchAspect aspect, Vector2 minsize, float shrink=1 )

信号

  • connected_to_server ( )

无论何时 SceneTreenetwork_peer 已成功连接到服务器。仅在客户端上发出。

  • connection_failed ( )

无论何时 SceneTreenetwork_peer 无法建立到服务器的连接。仅在客户端上发出。

当文件从OS文件管理器中拖动并放到游戏窗口中时发出。这些参数是文件路径的列表和产生拖动的屏幕的标识符。

  • idle_frame ( )

之前立即发出 Node._process 在中的每个节点上调用 SceneTree .

  • network_peer_connected ( int id )

无论何时 SceneTreenetwork_peer 与新的对等机连接。ID是新对等机的对等机ID。当其他客户端连接到同一服务器时,客户端会收到通知。在连接到服务器时,客户机还接收服务器的此信号(ID为1)。

  • network_peer_disconnected ( int id )

无论何时 SceneTreenetwork_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 ( )

无论何时 SceneTreenetwork_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 ,当从编辑器运行游戏以进行调试时,碰撞形状将可见。

  • bool debug_navigation_hint

违约

设定器

设置调试导航提示(值)

吸气剂

正在调试导航提示()。

如果 true ,当从编辑器运行游戏以进行调试时,导航多边形将可见。

  • Node edited_scene_root

设定器

设置已编辑的场景根(值)

吸气剂

获取已编辑的场景根()。

已编辑场景的根。

设定器

设置多人游戏(值)

吸气剂

获取多人游戏()

默认值 MultiplayerAPI 这个的实例 SceneTree .

  • bool multiplayer_poll

违约

设定器

设置多人投票(值)

吸气剂

多人在线投票是否启用()。

如果 true (默认值),启用 MultiplayerAPI 对于这个场景,在 idle_frame .

如果 false ,您需要手动呼叫 MultiplayerAPI.poll 处理网络包并发送RPC/RSET。这允许在不同的循环(例如物理、线程、特定时间步)中运行rpcs/rsets,并用于手动 Mutex 访问时的保护 MultiplayerAPI 从线程。

设定器

设置网络对等(值)

吸气剂

获取网络对等机()

处理RPC系统的对等对象(设置时有效启用网络)。取决于对等机本身, SceneTree 将成为网络服务器(请检查 is_network_server )并将根节点的网络模式设置为master(请参见 NETWORK_MODE_* 中的常量 Node 否则,它将成为根节点设置为puppet的常规对等节点。默认情况下,所有子节点都设置为继承网络模式。处理与网络相关的事件(连接、断开连接、新客户端)是通过连接到 SceneTree 的信号。

违约

设定器

设置暂停(值)

吸气剂

已暂停()。

如果 true , the SceneTree 已暂停。这样做将具有以下行为:

  • bool refuse_new_network_connections

违约

设定器

设置“拒绝”新网络连接(值)

吸气剂

是否拒绝新的网络连接

如果 true , the SceneTreenetwork_peer 拒绝新的传入连接。

吸气剂

获取根目录()

这个 SceneTree 的根 Viewport .

  • bool use_font_oversampling

违约

设定器

设置“使用”字体“过采样”(值)

吸气剂

_是否使用了_字体_过采样()

如果 true ,使用字体过采样。

方法说明

调用 method 在给定组的每个成员上。

调用 method 关于给定组的每个成员,尊重给定的 GroupCallFlags .

将运行场景更改为给定的 path ,加载到 PackedScene 并创建一个新实例。

返回 @GlobalScope.OK 关于成功, @GlobalScope.ERR_CANT_OPEN 如果 path 无法加载到 PackedScene@GlobalScope.ERR_CANT_CREATE 如果无法实例化该场景。

将正在运行的场景更改为给定的 PackedScene .

返回 @GlobalScope.OK 关于成功还是 @GlobalScope.ERR_CANT_CREATE 如果无法实例化场景。

返回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

返回当前帧号,即自应用程序启动以来的总帧计数。

返回此的所有已连接对等机的对等机ID SceneTreenetwork_peer .

  • int get_network_unique_id ( ) const

返回此的唯一对等ID SceneTreenetwork_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 如果这样 SceneTreenetwork_peer 处于服务器模式(正在侦听连接)。

  • void notify_group ( String group, int notification )

将给定的通知发送给 group .

  • void notify_group_flags ( int call_flags, String group, int notification )

将给定的通知发送给 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 ,应用程序自动接受退出。默认启用。

设置给定的 propertyvalue 指定组的所有成员。

设置给定的 propertyvalue 关于给定群体的所有成员,尊重给定群体 GroupCallFlags .

  • void set_input_as_handled ( )

标记最近的 InputEvent 按处理。

  • void set_quit_on_go_back ( bool enabled )

如果 true ,应用程序返回时自动退出(例如在Android上)。默认启用。

配置屏幕拉伸到给定的 StretchModeStretchAspect 最小尺寸和 shrink 比率。