MultiplayerPeer
Абстрактный класс для специализированных PacketPeer-ов, используемых MultiplayerAPI.
Абстрактный класс для специализированных PacketPeer-ов, используемых MultiplayerApi.
Регулирует связь с одним или несколькими удаленными коллегами, выступающими в качестве сервера или клиента, и присваивает каждому из них уникальные идентификационные данные. MultiplayerApi.
Примечание: :: MultiplayerApi протокол - это деталь реализации, и он не предназначен для использования серверами, не относящимися к Reckfell. Он может измениться без уведомления.
Примечание: При экспорте в Андроид убедитесь, что вы можете INTERNET В противном случае любая связь будет заблокирована Android.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства3
RefuseNewConnectionsСвойство
public bool RefuseNewConnections { get; set; }Если true, этот MultiplayerPeer отклоняет новые подключения.
TransferChannelСвойство
public int TransferChannel { get; set; }Канал, используемый для отправки пакетов. Многие сетевые API, такие как ENet и WebRTC, позволяют создавать несколько независимых каналов, которые ведут себя, в некотором роде, как отдельные соединения. Это означает, что надежные данные будут блокировать только доставку других пакетов по этому каналу, а упорядочивание будет осуществляться только в отношении канала, по которому отправляется пакет. Использование разных каналов для отправки различных и независимых обновлений состояния является распространенным способом оптимизации использования сети и уменьшения задержки в динамичных играх.
Примечание: Канал по умолчанию (0) фактически работает как 3 отдельных канала (по одному для каждого MultiplayerPeer.TransferModeEnum), так что MultiplayerPeer.TransferModeEnum.Reliable и MultiplayerPeer.TransferModeEnum.UnreliableOrdered по умолчанию не взаимодействуют друг с другом. Обратитесь к документации конкретного сетевого API (например, ENet или WebRTC), чтобы узнать, как правильно настроить каналы.
TransferModeСвойство
public MultiplayerPeer.TransferModeEnum TransferMode { get; set; }Способ отправки пакетов целевому пиру. См. метод MultiplayerPeer.SetTargetPeer.
Методы17
Closevoid
public void Close();Немедленно закрыть многопользовательский пир, вернувшись в состояние MultiplayerPeer.ConnectionStatus.Disconnected. Подключенные пиры будут отключены без передачи MultiplayerPeer.PeerDisconnected.
DisconnectPeervoid
public void DisconnectPeer(int peer, bool force = false);Отключает указанный peer от этого хоста. Если force равен true, то сигнал MultiplayerPeer.PeerDisconnected не будет отправлен для этого пира.
| Имя | Тип | По умолчанию |
|---|---|---|
peer | int | — |
force | bool | false |
GenerateUniqueIduint
public uint GenerateUniqueId();Возвращает случайно сгенерированное целое число, которое можно использовать в качестве уникального идентификатора сети.
uintGetConnectionStatusMultiplayerPeer.ConnectionStatus
public MultiplayerPeer.ConnectionStatus GetConnectionStatus();Возвращает текущее состояние соединения.
MultiplayerPeer.ConnectionStatusGetPacketChannelint
public int GetPacketChannel();Возвращает канал, по которому был получен следующий доступный пакет. См. PacketPeer.GetAvailablePacketCount.
intGetPacketModeMultiplayerPeer.TransferModeEnum
public MultiplayerPeer.TransferModeEnum GetPacketMode();Возвращает режим передачи, который удаленный узел использовал для отправки следующего доступного пакета. См. PacketPeer.GetAvailablePacketCount.
MultiplayerPeer.TransferModeEnumGetPacketPeerint
public int GetPacketPeer();Возвращает идентификатор MultiplayerPeer, отправившего следующий доступный пакет. См. PacketPeer.GetAvailablePacketCount.
intGetTransferChannelint
public int GetTransferChannel();intGetTransferModeMultiplayerPeer.TransferModeEnum
public MultiplayerPeer.TransferModeEnum GetTransferMode();MultiplayerPeer.TransferModeEnumGetUniqueIdint
public int GetUniqueId();Возвращает идентификатор этого MultiplayerPeer.
intIsRefusingNewConnectionsbool
public bool IsRefusingNewConnections();boolIsServerRelaySupportedbool
public bool IsServerRelaySupported();Возвращает true, если сервер может действовать как ретранслятор в текущей конфигурации. То есть, если более высокий уровень MultiplayerApi должен уведомлять подключенных клиентов о других пирах и реализовывать протокол ретрансляции, чтобы разрешить связь между ними.
boolPollvoid
public void Poll();Ожидает до 1 секунды для получения нового сетевого события.
SetRefuseNewConnectionsvoid
public void SetRefuseNewConnections(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetTargetPeervoid
public void SetTargetPeer(int id);Устанавливает пир, которому будут отправляться пакеты.
id может быть одним из: MultiplayerPeer.TargetPeerBroadcast для отправки всем подключенным пирам, MultiplayerPeer.TargetPeerServer для отправки пиру, выступающему в качестве сервера, допустимый идентификатор пира для отправки этому конкретному пиру, отрицательный идентификатор пира для отправки всем пирам, кроме этого. По умолчанию целевой пир — MultiplayerPeer.TargetPeerBroadcast.
| Имя | Тип | По умолчанию |
|---|---|---|
id | int | — |
SetTransferChannelvoid
public void SetTransferChannel(int channel);| Имя | Тип | По умолчанию |
|---|---|---|
channel | int | — |
SetTransferModevoid
public void SetTransferMode(MultiplayerPeer.TransferModeEnum mode);| Имя | Тип | По умолчанию |
|---|---|---|
mode | MultiplayerPeer.TransferModeEnum | — |
Сигналы и события2
PeerConnectedСобытие
public event MultiplayerPeer.PeerConnectedEventHandler PeerConnected;Выдается при подключении удаленного однорангового узла.
| Имя | Тип | По умолчанию |
|---|---|---|
id | long | — |
PeerDisconnectedСобытие
public event MultiplayerPeer.PeerDisconnectedEventHandler PeerDisconnected;Выдается при отключении удаленного однорангового узла.
| Имя | Тип | По умолчанию |
|---|---|---|
id | long | — |
Поля и константы2
TargetPeerBroadcastПоле
public const long TargetPeerBroadcast = 0;Пакеты отправляются всем подключенным одноранговым узлам.
TargetPeerServerПоле
public const long TargetPeerServer = 1;Пакеты отправляются удаленному узлу, выступающему в роли сервера.
MultiplayerPeer.ConnectionStatus
| Значение | Описание |
|---|---|
Connected = 2 | Этот MultiplayerPeer подключен. |
Connecting = 1 | В данный момент MultiplayerPeer подключается к серверу. |
Disconnected = 0 | MultiplayerPeer отключен. |
MultiplayerPeer.TransferModeEnum
| Значение | Описание |
|---|---|
Reliable = 2 | Пакеты должны быть получены, и должны быть предприняты попытки повторной отправки, пока пакеты не будут подтверждены. Пакеты должны быть получены в том порядке, в котором они были отправлены. Самый надежный режим передачи, но потенциально самый медленный из-за накладных расходов. Используйте для критических данных, которые должны быть переданы и получены в определенном порядке, например, срабатывание способности или сообщение в чате. Тщательно обдумайте, действительно ли информация является критически важной, и используйте ее экономно. |
Unreliable = 0 | Пакеты не подтверждаются, повторной отправки потерянных пакетов не производится. Пакеты могут прибывать в любом порядке. Потенциально быстрее, чем Перевод_MODE_ НЕЗАВИСИМЫЙ |
UnreliableOrdered = 1 | Пакеты не подтверждаются, повторные попытки отправки потерянных пакетов не предпринимаются. Пакеты принимаются в том порядке, в котором они были отправлены. Потенциально быстрее, чем |