Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
MultiplayerPeerExtension
继承: MultiplayerPeer < PacketPeer < RefCounted < Object
可以通过 GDExtension 继承,从而实现自定义多人 API 网络层的类。
描述
该类旨在被一个 GDExtension 插件继承,以实现多人游戏 API(例如 WebRTC)的自定义网络层。下面的所有方法都必须被实现,才能实现一个有效的自定义多人游戏实现。另见 MultiplayerAPI。
方法
void |
_close() virtual |
void |
_disconnect_peer(p_peer: int, p_force: bool) virtual |
_get_available_packet_count() virtual const |
|
_get_connection_status() virtual const |
|
_get_max_packet_size() virtual const |
|
_get_packet(r_buffer: |
|
_get_packet_channel() virtual const |
|
_get_packet_mode() virtual const |
|
_get_packet_peer() virtual const |
|
_get_packet_script() virtual |
|
_get_transfer_channel() virtual const |
|
_get_transfer_mode() virtual const |
|
_get_unique_id() virtual const |
|
_is_refusing_new_connections() virtual const |
|
_is_server() virtual const |
|
_is_server_relay_supported() virtual const |
|
void |
_poll() virtual |
_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 |
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())。取值必须在 1
和 2147483647
之间。
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)。