Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

MultiplayerPeerExtension

继承: MultiplayerPeer < PacketPeer < RefCounted < Object

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

描述

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

方法

void

_close ( ) virtual

void

_disconnect_peer ( int p_peer, bool p_force ) virtual

int

_get_available_packet_count ( ) virtual const

ConnectionStatus

_get_connection_status ( ) virtual const

int

_get_max_packet_size ( ) virtual const

Error

_get_packet ( const uint8_t ** r_buffer, int32_t* r_buffer_size ) 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 ( const uint8_t* p_buffer, int p_buffer_size ) virtual

Error

_put_packet_script ( PackedByteArray p_buffer ) virtual

void

_set_refuse_new_connections ( bool p_enable ) virtual

void

_set_target_peer ( int p_peer ) virtual

void

_set_transfer_channel ( int p_channel ) virtual

void

_set_transfer_mode ( TransferMode p_mode ) virtual


方法说明

void _close ( ) virtual

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


void _disconnect_peer ( int p_peer, bool p_force ) 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 ( const uint8_t ** r_buffer, int32_t* r_buffer_size ) virtual

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


int _get_packet_channel ( ) virtual const

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


TransferMode _get_packet_mode ( ) virtual const

返回发送下一个可用数据包所使用的远程对等体的 TransferMode。请参阅 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 ( const uint8_t* p_buffer, int p_buffer_size ) virtual

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


Error _put_packet_script ( PackedByteArray p_buffer ) virtual

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


void _set_refuse_new_connections ( bool p_enable ) virtual

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


void _set_target_peer ( int p_peer ) virtual

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


void _set_transfer_channel ( int p_channel ) virtual

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


void _set_transfer_mode ( TransferMode p_mode ) virtual

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