多叶剑

Inherits: Reference < Object

类别: 核心

简要说明

高级多人API。

方法

无效

clear ( )

PoolIntArray

get_network_connected_peers ( ) const

int

get_network_unique_id ( ) const

int

get_rpc_sender_id ( ) const

bool

has_network_peer ( ) const

bool

is_network_server ( ) const

无效

poll ( )

Error

send_bytes ( PoolByteArray bytes, int id=0, TransferMode mode=2 )

无效

set_root_node ( Node node )

信号

  • connected_to_server ( )

当这个多叶龙 network_peer 已成功连接到服务器。仅在客户端上发出。

  • connection_failed ( )

当这个多叶龙 network_peer 无法建立到服务器的连接。仅在客户端上发出。

  • network_peer_connected ( int id )

当这个多叶龙 network_peer 与新的对等机连接。ID是新对等机的对等机ID。当其他客户端连接到同一服务器时,客户端会收到通知。在连接到服务器时,客户机还接收服务器的此信号(ID为1)。

  • network_peer_disconnected ( int id )

当这个多叶龙 network_peer 从对等机断开连接。当其他客户端与同一服务器断开连接时,客户端会收到通知。

当这个多叶龙 network_peer 接收 packet 使用自定义数据(请参见 send_bytes )ID是发送数据包的对等机的对等机ID。

  • server_disconnected ( )

当这个多叶龙 network_peer 断开与服务器的连接。仅在客户端上发出。

枚举

枚举 RPCMode

  • RPC_MODE_DISABLED = 0 ---用于 Node.rpc_configNode.rset_config 禁用所有RPC调用的方法或属性,使其不可用。所有方法的默认值。

  • RPC_MODE_REMOTE = 1 ---用于 Node.rpc_configNode.rset_config 只在远程端(而不是本地端)设置要调用的方法或要更改的属性。类似于 remote 关键字。从所有远程对等机接受调用和属性更改,无论它们是节点的主节点还是木偶节点。

  • RPC_MODE_MASTER = 2 ---用于 Node.rpc_configNode.rset_config 为该节点设置只在网络主机上调用的方法或要更改的属性。类似于 master 关键字。只接受来自节点网络玩偶的调用或属性更改,请参见 Node.set_network_master .

  • RPC_MODE_PUPPET = 3 ---用于 Node.rpc_configNode.rset_config 为该节点设置只在Puppets上调用的方法或要更改的属性。类似于 puppet 关键字。只接受来自节点的网络主节点的调用或属性更改,请参见 Node.set_network_master .

  • RPC_MODE_SLAVE = 3 --- 已弃用。 使用 RPC_MODE_PUPPET 相反。类似于 slave 关键字。

  • RPC_MODE_REMOTESYNC = 4 ---表现得像 RPC_MODE_REMOTE 但也要在本地更改呼叫或属性。类似于 remotesync 关键字。

  • RPC_MODE_SYNC = 4 --- 已弃用。 使用 RPC_MODE_REMOTESYNC 相反。类似于 sync 关键字。

  • RPC_MODE_MASTERSYNC = 5 ---表现得像 RPC_MODE_MASTER 但也要在本地更改呼叫或属性。类似于 mastersync 关键字。

  • RPC_MODE_PUPPETSYNC = 6 ---表现得像 RPC_MODE_PUPPET 但也要在本地更改呼叫或属性。类似于 puppetsync 关键字。

描述

这个类实现了高级多人API背后的大部分逻辑。

默认情况下, SceneTree 具有对此类的引用,该类用于在整个场景中提供多人功能(即rpc/rset)。

可以通过设置 Node.custom_multiplayer 属性,有效地允许在同一场景中运行客户机和服务器。

属性描述

  • bool allow_object_decoding

违约

设定器

设置允许对象解码(值)

吸气剂

_object_decoding_allowed()允许吗?

如果 true (或者如果 network_peerPacketPeer.allow_object_decoding 设置为 true )multiplayerapi将允许在rpcs/rset期间对对象进行编码和解码。

警告: 反序列化对象可以包含执行的代码。如果序列化对象来自不受信任的源,请不要使用此选项,以避免潜在的安全威胁,如远程代码执行。

设定器

设置网络对等(值)

吸气剂

获取网络对等机()

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

  • bool refuse_new_network_connections

违约

设定器

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

吸气剂

是否拒绝新的网络连接

如果 true 多层面的 network_peer 拒绝新的传入连接。

方法说明

  • void clear ( )

清除当前的multiplayerapi网络状态(除非您知道自己在做什么,否则不应调用此状态)。

返回此multiplayerapi的所有连接对等机的对等机ID network_peer .

  • int get_network_unique_id ( ) const

返回此multiplayerapi的唯一对等ID network_peer .

  • int get_rpc_sender_id ( ) const

返回当前正在执行的RPC的发送方对等ID。

注: 如果不在RPC中,此方法将返回0。

  • bool has_network_peer ( ) const

返回 true 如果有 network_peer 集合。

  • bool is_network_server ( ) const

返回 true 如果这辆多轮车 network_peer 处于服务器模式(正在侦听连接)。

  • void poll ( )

用于轮询multiplayerapi的方法。如果你使用 Node.custom_multiplayer 覆盖或设置 SceneTree.multiplayer_pollfalse . 默认情况下, SceneTree 将为您投票。

注: 此方法导致调用rpcs和rset,因此它们将在此函数的同一上下文中执行(例如 _processphysicsThread

发送给定的原始 bytes 到特定的对等机 id (见 NetworkedMultiplayerPeer.set_target_peer )默认ID为 0 即向所有同行广播。

  • void set_root_node ( Node node )

设置要用于RPC的基根节点。将使用相对路径来查找应在其上执行RPC的节点,而不是绝对路径。

这有效地允许场景树的不同分支由不同的multiplayerapi管理,例如允许在同一场景中运行客户机和服务器。