MultiplayerPeerExtension

继承: MultiplayerPeer < PacketPeer < RefCounted < Object

可以通过 GDExtension 继承,从而实现自定义多人 API 网络层的类。

描述

该类旨在被一个 GDExtension 插件继承,以实现多人游戏 API(例如 WebRTC)的自定义网络层。下面的所有方法都必须被实现,才能实现一个有效的自定义多人游戏实现。另请参阅 MultiplayerAPI

方法

void

_close() virtual

void

_disconnect_peer(p_peer: int, p_force: bool) virtual

int

_get_available_packet_count() virtual const

ConnectionStatus

_get_connection_status() virtual const

int

_get_max_packet_size() virtual const

Error

_get_packet(r_buffer: const uint8_t *, r_buffer_size: int32_t) virtual

int

_get_packet_channel() virtual const

TransferMode

_get_packet_mode() virtual const

int

_get_packet_peer() virtual const

PackedByteArray

_get_packet_script() virtual

int

_get_transfer_channel() virtual const

TransferMode

_get_transfer_mode() virtual const

int

_get_unique_id() virtual const

bool

_is_refusing_new_connections() virtual const

bool

_is_server() virtual const

bool

_is_server_relay_supported() virtual const

void

_poll() virtual

Error

_put_packet(p_buffer: const uint8_t*, p_buffer_size: int) virtual

Error

_put_packet_script(p_buffer: PackedByteArray) virtual

void

_set_refuse_new_connections(p_enable: bool) virtual

void

_set_target_peer(p_peer: int) virtual

void

_set_transfer_channel(p_channel: int) virtual

void

_set_transfer_mode(p_mode: TransferMode) virtual


方法说明

void _close() virtual 🔗

该多人游戏对等体应当立即关闭时调用(见 MultiplayerPeer.close)。


void _disconnect_peer(p_peer: int, p_force: bool) virtual 🔗

应当强制断开与对等体 p_peer 的连接时调用(见 MultiplayerPeer.disconnect_peer)。


int _get_available_packet_count() virtual const 🔗

MultiplayerAPI 对可用的数据包数量发出内部请求时调用。


ConnectionStatus _get_connection_status() virtual const 🔗

MultiplayerAPI 请求连接状态时调用(见 MultiplayerPeer.get_connection_status)。


int _get_max_packet_size() virtual const 🔗

MultiplayerAPI 请求最大允许的数据包大小(单位为字节)时调用。


Error _get_packet(r_buffer: const uint8_t **, r_buffer_size: int32_t*) virtual 🔗

MultiplayerAPI 需要接收一个数据包时调用,r_buffer_size 是二进制缓冲区 r_buffer 的字节大小。


int _get_packet_channel() virtual const 🔗

返回接收下一个可用数据包所使用的通道。请参阅 MultiplayerPeer.get_packet_channel


TransferMode _get_packet_mode() virtual const 🔗

调用以获取远程对等体用于发送下一个可用数据包的传输模式。请参阅 MultiplayerPeer.get_packet_mode


int _get_packet_peer() virtual const 🔗

请求最近数据包发送方 MultiplayerPeer 的 ID 时调用(见 MultiplayerPeer.get_packet_peer)。


PackedByteArray _get_packet_script() virtual 🔗

如果 _get_packet 未实现,则在有数据包需要被 MultiplayerAPI 接收时调用。使用 GDScript 扩展这个类时请使用。


int _get_transfer_channel() virtual const 🔗

读取 MultiplayerPeer 所使用的传输通道时调用(见 MultiplayerPeer.transfer_channel)。


TransferMode _get_transfer_mode() virtual const 🔗

读取 MultiplayerPeer 所使用的传输模式时调用(见 MultiplayerPeer.transfer_mode)。


int _get_unique_id() virtual const 🔗

请求 MultiplayerPeer 的唯一 ID 时调用(见 MultiplayerPeer.get_unique_id)。取值必须在 12147483647 之间。


bool _is_refusing_new_connections() virtual const 🔗

请求 MultiplayerPeer 的“拒绝新连接”状态时调用(见 MultiplayerPeer.refuse_new_connections)。


bool _is_server() virtual const 🔗

请求 MultiplayerPeer 的“是否为服务器”状态时调用。见 MultiplayerAPI.is_server


bool _is_server_relay_supported() virtual const 🔗

检查服务器在当前配置中是否能够作为中继时调用。见 MultiplayerPeer.is_server_relay_supported


void _poll() virtual 🔗

轮询 MultiplayerPeer 时调用。见 MultiplayerAPI.poll


Error _put_packet(p_buffer: const uint8_t*, p_buffer_size: int) virtual 🔗

需要让 MultiplayerAPI 发送数据包时调用,p_buffer_size 是二进制缓冲区 p_buffer 的字节大小。


Error _put_packet_script(p_buffer: PackedByteArray) virtual 🔗

如果 _put_packet 未实现,则在需要让 MultiplayerAPI 发送数据包时调用。使用 GDScript 扩展这个类时请使用。


void _set_refuse_new_connections(p_enable: bool) virtual 🔗

设置 MultiplayerPeer 的“拒绝新连接”状态时调用(见 MultiplayerPeer.refuse_new_connections)。


void _set_target_peer(p_peer: int) virtual 🔗

设置 MultiplayerPeer 所使用的目标对等体时调用(见 MultiplayerPeer.set_target_peer)。


void _set_transfer_channel(p_channel: int) virtual 🔗

设置 MultiplayerPeer 所使用的通道时调用(见 MultiplayerPeer.transfer_channel)。


void _set_transfer_mode(p_mode: TransferMode) virtual 🔗

设置 MultiplayerPeer 所使用的传输模式时调用(见 MultiplayerPeer.transfer_mode)。