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.

MultiplayerPeerExtension

繼承: MultiplayerPeer < PacketPeer < RefCounted < Object

可以通過 GDExtension 繼承,從而實作自訂多人 API 網路層的類。

說明

該類旨在被一個 GDExtension 外掛程式繼承,以實作多人遊戲 API(例如 WebRTC)的自定義網路層。下面的所有方法都必須被實作,才能實作一個有效的自訂多人遊戲實作。另請參閱 MultiplayerAPI

方法

void

_close() virtual required

void

_disconnect_peer(peer: int, force: bool) virtual required

int

_get_available_packet_count() virtual required const

ConnectionStatus

_get_connection_status() virtual required const

int

_get_max_packet_size() virtual required const

Error

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

int

_get_packet_channel() virtual required const

TransferMode

_get_packet_mode() virtual required const

int

_get_packet_peer() virtual required const

PackedByteArray

_get_packet_script() virtual

int

_get_transfer_channel() virtual required const

TransferMode

_get_transfer_mode() virtual required const

int

_get_unique_id() virtual required const

bool

_is_refusing_new_connections() virtual const

bool

_is_server() virtual required const

bool

_is_server_relay_supported() virtual const

void

_poll() virtual required

Error

_put_packet(buffer: const uint8_t*, buffer_size: int) virtual

Error

_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())。取值必須在 12147483647 之間。


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)。