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 required |
void |
_disconnect_peer(peer: int, 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(buffer: |
|
_put_packet_script(buffer: PackedByteArray) virtual |
|
void |
_set_refuse_new_connections(enable: bool) virtual |
void |
_set_target_peer(peer: int) virtual required |
void |
_set_transfer_channel(channel: int) virtual required |
void |
_set_transfer_mode(mode: TransferMode) virtual required |
方法說明
void _close() virtual required 🔗
該多人遊戲對等體應當立即關閉時呼叫(見 MultiplayerPeer.close())。
void _disconnect_peer(peer: int, force: bool) virtual required 🔗
Called when the connected peer should be forcibly disconnected (see 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 🔗
Called to get the transfer mode the remote peer used to send the next available packet. See 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(buffer: const uint8_t*, buffer_size: int) virtual 🔗
Called when a packet needs to be sent by the MultiplayerAPI, with buffer_size being the size of the binary buffer in bytes.
Error _put_packet_script(buffer: PackedByteArray) virtual 🔗
如果 _put_packet() 未實作,則在需要讓 MultiplayerAPI 發送封包時調用。使用 GDScript 擴充這個類時請使用。
void _set_refuse_new_connections(enable: bool) virtual 🔗
設定 MultiplayerPeer 的“拒絕新連接”狀態時呼叫(見 MultiplayerPeer.refuse_new_connections)。
void _set_target_peer(peer: int) virtual required 🔗
設定 MultiplayerPeer 所使用的目標對等體時呼叫(見 MultiplayerPeer.set_target_peer())。
void _set_transfer_channel(channel: int) virtual required 🔗
設定 MultiplayerPeer 所使用的通道時呼叫(見 MultiplayerPeer.transfer_channel)。
void _set_transfer_mode(mode: TransferMode) virtual required 🔗
設定 MultiplayerPeer 所使用的傳輸模式時呼叫(見 MultiplayerPeer.transfer_mode)。