MultiplayerPeerExtension
继承: MultiplayerPeer < PacketPeer < RefCounted < Object
可以通过 GDExtension 继承,从而实现自定义多人 API 网络层的类。
描述
该类旨在被一个 GDExtension 插件继承,以实现多人游戏 API(例如 WebRTC)的自定义网络层。下面的所有方法都必须被实现,才能实现一个有效的自定义多人游戏实现。另见 MultiplayerAPI。
方法
void |
_close() virtual required |
void |
_disconnect_peer(p_peer: int, p_force: bool) virtual required |
_get_available_packet_count() virtual required const |
|
_get_connection_status() virtual required const |
|
_get_max_packet_size() virtual required const |
|
_get_packet(r_buffer: |
|
_get_packet_channel() virtual required const |
|
_get_packet_mode() virtual required const |
|
_get_packet_peer() virtual required const |
|
_get_packet_script() virtual |
|
_get_transfer_channel() virtual required const |
|
_get_transfer_mode() virtual required const |
|
_get_unique_id() virtual required const |
|
_is_refusing_new_connections() virtual const |
|
_is_server() virtual required const |
|
_is_server_relay_supported() virtual const |
|
void |
_poll() virtual required |
_put_packet(p_buffer: |
|
_put_packet_script(p_buffer: PackedByteArray) virtual |
|
void |
_set_refuse_new_connections(p_enable: bool) virtual |
void |
_set_target_peer(p_peer: int) virtual required |
void |
_set_transfer_channel(p_channel: int) virtual required |
void |
_set_transfer_mode(p_mode: TransferMode) virtual required |
方法说明
void _close() virtual required 🔗
该多人游戏对等体应当立即关闭时调用(见 MultiplayerPeer.close())。
void _disconnect_peer(p_peer: int, p_force: bool) virtual required 🔗
应当强制断开与对等体 p_peer 的连接时调用(见 MultiplayerPeer.disconnect_peer())。
int _get_available_packet_count() virtual required const 🔗
MultiplayerAPI 对可用的数据包数量发出内部请求时调用。
ConnectionStatus _get_connection_status() virtual required const 🔗
MultiplayerAPI 请求连接状态时调用(见 MultiplayerPeer.get_connection_status())。
int _get_max_packet_size() virtual required 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 required const 🔗
返回接收下一个可用数据包所使用的通道。请参阅 MultiplayerPeer.get_packet_channel()。
TransferMode _get_packet_mode() virtual required const 🔗
调用以获取远程对等体用于发送下一个可用数据包的传输模式。请参阅 MultiplayerPeer.get_packet_mode()。
int _get_packet_peer() virtual required const 🔗
请求最近数据包发送方 MultiplayerPeer 的 ID 时调用(见 MultiplayerPeer.get_packet_peer())。
PackedByteArray _get_packet_script() virtual 🔗
如果 _get_packet() 未实现,则在有数据包需要被 MultiplayerAPI 接收时调用。使用 GDScript 扩展这个类时请使用。
int _get_transfer_channel() virtual required const 🔗
读取 MultiplayerPeer 所使用的传输通道时调用(见 MultiplayerPeer.transfer_channel)。
TransferMode _get_transfer_mode() virtual required const 🔗
读取 MultiplayerPeer 所使用的传输模式时调用(见 MultiplayerPeer.transfer_mode)。
int _get_unique_id() virtual required const 🔗
请求 MultiplayerPeer 的唯一 ID 时调用(见 MultiplayerPeer.get_unique_id())。取值必须在 1 和 2147483647 之间。
bool _is_refusing_new_connections() virtual const 🔗
请求 MultiplayerPeer 的“拒绝新连接”状态时调用(见 MultiplayerPeer.refuse_new_connections)。
bool _is_server() virtual required const 🔗
请求 MultiplayerPeer 的“是否为服务器”状态时调用。见 MultiplayerAPI.is_server()。
bool _is_server_relay_supported() virtual const 🔗
检查服务器在当前配置中是否能够作为中继时调用。见 MultiplayerPeer.is_server_relay_supported()。
void _poll() virtual required 🔗
轮询 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 required 🔗
设置 MultiplayerPeer 所使用的目标对等体时调用(见 MultiplayerPeer.set_target_peer())。
void _set_transfer_channel(p_channel: int) virtual required 🔗
设置 MultiplayerPeer 所使用的通道时调用(见 MultiplayerPeer.transfer_channel)。
void _set_transfer_mode(p_mode: TransferMode) virtual required 🔗
设置 MultiplayerPeer 所使用的传输模式时调用(见 MultiplayerPeer.transfer_mode)。