ENetMultiplayerPeer
Транспорт многопользовательской игры поверх ENet/UDP.
Создаёт серверное или клиентское соединение ENet и подключается к MultiplayerApi. CreateClient начинает подключение; завершение определяется состоянием/сигналами API. Серверный peer имеет ID 1, клиентские ID временные и не заменяют аккаунты.
Режим передачи и каналы выбираются под тип данных. Reliable не является долговременным подтверждением результата после разрыва. ENet не добавляет автоматически авторизацию, шифрование, NAT traversal или правила серверной игры.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
ENetMultiplayerPeerКонструктор
public ENetMultiplayerPeer();Свойства1
HostСвойство
public ENetConnection Host { get; }Базовый ENetConnection создается после ENetMultiplayerPeer.CreateClient и ENetMultiplayerPeer.CreateServer.
Методы7
AddMeshPeerError
public Error AddMeshPeer(int peerId, ENetConnection host);Добавьте новый удаленный узел с указанным peer_id, подключенный к указанному ENetMultiplayerPeer.Host.
Примечание: ENetMultiplayerPeer.Host должен иметь ровно одного узла в состоянии ENetPacketPeer.PeerState.Connected.
| Имя | Тип | По умолчанию |
|---|---|---|
peerId | int | — |
host | ENetConnection | — |
ErrorCreateClientError
public Error CreateClient(string address, int port, int channelCount = 0, int inBandwidth = 0, int outBandwidth = 0, int localPort = 0);Начинает подключение к ENet-серверу. Error.Ok не означает ConnectedToServer. Согласуйте количество пользовательских каналов и обрабатывайте неудачу/разрыв.
| Имя | Тип | По умолчанию |
|---|---|---|
address | string | — |
port | int | — |
channelCount | int | 0 |
inBandwidth | int | 0 |
outBandwidth | int | 0 |
localPort | int | 0 |
ErrorCreateMeshError
public Error CreateMesh(int uniqueId);Инициализируйте этот MultiplayerPeer в режиме сетки. Предоставленный unique_id будет использоваться как уникальный идентификатор локальной одноранговой сети после назначения в качестве MultiplayerApi.MultiplayerPeer. В конфигурации сетки вам нужно будет вручную настроить каждый новый одноранговый узел с помощью ENetConnection перед вызовом ENetMultiplayerPeer.AddMeshPeer. Хотя этот метод более продвинут, он позволяет лучше контролировать процесс подключения (например, при работе с Проскок NAT) и лучше распределять сетевую нагрузку (которая в противном случае была бы более обременительной для сервера).
| Имя | Тип | По умолчанию |
|---|---|---|
uniqueId | int | — |
ErrorCreateServerError
public Error CreateServer(int port, int maxClients = 32, int maxChannels = 0, int inBandwidth = 0, int outBandwidth = 0);Создаёт ENet-сервер на UDP-порту. Адрес привязки задайте до вызова. Порт 0 позволяет ОС выбрать свободный порт; предел клиентов не является авторизацией.
| Имя | Тип | По умолчанию |
|---|---|---|
port | int | — |
maxClients | int | 32 |
maxChannels | int | 0 |
inBandwidth | int | 0 |
outBandwidth | int | 0 |
ErrorGetHostENetConnection
public ENetConnection GetHost();ENetConnectionGetPeerENetPacketPeer
public ENetPacketPeer GetPeer(int id);Возвращает ENetPacketPeer, связанный с указанным id.
| Имя | Тип | По умолчанию |
|---|---|---|
id | int | — |
ENetPacketPeerSetBindIPvoid
public void SetBindIP(string iP);Задаёт локальный адрес привязки до создания соединения. 127.0.0.1 доступен только с той же машины; для внешнего размещения нужен отдельный выбор интерфейса/маршрута.
| Имя | Тип | По умолчанию |
|---|---|---|
iP | string | — |