reckfellENGINE

SceneMultiplayer

Высокоуровневый сетевой контекст иерархии Entity.

На этой странице
class SceneMultiplayerReckfellSharpНаследует MultiplayerApi

Обрабатывает RPC и настроенную репликацию относительно сетевого корня. RootPath задаёт пространство относительных путей; одинаковый код/настройки должны указывать на соответствующие сущности у участников.

AllowObjectDecoding не следует включать ради удобства произвольных внешних данных. Доступность peer, проверка пользователя, игровые права, последовательность и лимиты запросов — разные задачи. Отложите изменение API-таблицы дерева из сетевых событий до подходящей фазы главного потока.

Практическое руководство.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

SceneMultiplayerКонструктор
# SceneMultiplayer
C#
public SceneMultiplayer();

Свойства8

AllowObjectDecodingСвойство
# AllowObjectDecoding
C#
public bool AllowObjectDecoding { get; set; }

Разрешение декодирования объектов. Оставляйте false для простого внешнего протокола; это не универсальная сериализация безопасных сетевых идентичностей.

AuthCallbackСвойство
# AuthCallback
C#
public Callable AuthCallback { get; set; }

Обратный вызов, выполняемый при получении данных аутентификации, отправленных через SceneMultiplayer.SendAuth. Если Callable пуст (по умолчанию), одноранговые узлы будут автоматически приняты, как только они подключатся.

AuthTimeoutСвойство
# AuthTimeout
C#
public double AuthTimeout { get; set; }

Если установлено значение больше 0.0, максимальная продолжительность в секундах, в течение которой одноранговые узлы могут оставаться в состоянии аутентификации, после чего аутентификация автоматически провалится. См. сигналы SceneMultiplayer.PeerAuthenticating и SceneMultiplayer.PeerAuthenticationFailed.

MaxDeltaPacketSizeСвойство
# MaxDeltaPacketSize
C#
public int MaxDeltaPacketSize { get; set; }

Максимальный размер каждого дельта-пакета. Более высокие значения увеличивают вероятность получения полных обновлений в одном кадре, но также и вероятность перегрузки сети (более высокая задержка, отключения). См. MultiplayerSynchronizer.

MaxSyncPacketSizeСвойство
# MaxSyncPacketSize
C#
public int MaxSyncPacketSize { get; set; }

Максимальный размер каждого пакета синхронизации. Более высокие значения увеличивают вероятность получения полных обновлений в одном кадре, но также и вероятность потери пакетов. См. MultiplayerSynchronizer.

RefuseNewConnectionsСвойство
# RefuseNewConnections
C#
public bool RefuseNewConnections { get; set; }

Если true, MultiplayerApi.MultiplayerPeer MultiplayerAPI отклоняет новые входящие соединения.

RootPathСвойство
# RootPath
C#
public EntityPath RootPath { get; set; }

Сетевой корень для относительных путей Entity. Соответствующие RPC-объекты должны совпадать относительно своих корней у участников.

ServerRelayСвойство
# ServerRelay
C#
public bool ServerRelay { get; set; }

Управляет ретрансляцией между клиентами через сервер. В лобби руководства задан false для протокола клиент ↔ сервер. При true в проверенной сборке наблюдался нативный сбой во время одновременного отключения клиентов; исправность режима этим примером не подтверждена.

Методы24

Clearvoid
# Clear
C#
public void Clear();

Очищает текущее состояние сети SceneMultiplayer (вызывать эту функцию следует только в том случае, если вы точно знаете, что делаете).

CompleteAuthError
# CompleteAuth
C#
public Error CompleteAuth(int id);

Отметить этап аутентификации как завершенный для удалённого сверчка, идентифицированного id. . . . . MultiplayerApi.PeerConnected После того как удаленная сторона также завершит аутентификацию, будет подаваться сигнал. Если перед завершением аутентификации в связи с вопросом о сети отключается партнер, то: SceneMultiplayer.AuthTimeout Срок действия или ручное вызов SceneMultiplayer.DisconnectPeer, SceneMultiplayer.PeerAuthenticationFailed вместо сигнала MultiplayerApi.PeerDisconnected.

Параметры
ИмяТипПо умолчанию
idint—
Возвращает Error
DisconnectPeervoid
# DisconnectPeer
C#
public void DisconnectPeer(int id);

Отключает одноранговый узел, идентифицированный id, удаляя его из списка подключенных одноранговых узлов и закрывая базовое соединение с ним.

Параметры
ИмяТипПо умолчанию
idint—
GetAuthCallbackCallable
# GetAuthCallback
C#
public Callable GetAuthCallback();
Возвращает Callable
GetAuthTimeoutdouble
# GetAuthTimeout
C#
public double GetAuthTimeout();
Возвращает double
GetAuthenticatingPeersint[]
# GetAuthenticatingPeers
C#
public int[] GetAuthenticatingPeers();

Возвращает идентификаторы участников, которые в данный момент пытаются пройти аутентификацию с помощью этого MultiplayerApi.

Возвращает int[]
GetMaxDeltaPacketSizeint
# GetMaxDeltaPacketSize
C#
public int GetMaxDeltaPacketSize();
Возвращает int
GetMaxSyncPacketSizeint
# GetMaxSyncPacketSize
C#
public int GetMaxSyncPacketSize();
Возвращает int
GetRootPathEntityPath
# GetRootPath
C#
public EntityPath GetRootPath();
Возвращает EntityPath
IsObjectDecodingAllowedbool
# IsObjectDecodingAllowed
C#
public bool IsObjectDecodingAllowed();
Возвращает bool
IsRefusingNewConnectionsbool
# IsRefusingNewConnections
C#
public bool IsRefusingNewConnections();
Возвращает bool
IsServerRelayEnabledbool
# IsServerRelayEnabled
C#
public bool IsServerRelayEnabled();
Возвращает bool
SendAuth2 перегрузки
# SendAuth · 1/2
C#
public Error SendAuth(int id, byte[] data);

Отправляет указанные data удаленному пиру, идентифицированному id, как часть сообщения аутентификации. Это может использоваться для аутентификации пиров и управления тем, когда выдается MultiplayerApi.PeerConnected (и удаленный пир принимается как один из подключенных пиров).

Параметры
ИмяТипПо умолчанию
idint—
databyte[]—
Возвращает Error
# SendAuth · 2/2
C#
public Error SendAuth(int id, ReadOnlySpan<byte> data);

Отправляет указанные data удаленному пиру, идентифицированному id, как часть сообщения аутентификации. Это может использоваться для аутентификации пиров и управления тем, когда выдается MultiplayerApi.PeerConnected (и удаленный пир принимается как один из подключенных пиров).

Параметры
ИмяТипПо умолчанию
idint—
dataReadOnlySpan<byte>—
Возвращает Error
SendBytes2 перегрузки
# SendBytes · 1/2
C#
public Error SendBytes(byte[] bytes, int id = 0, MultiplayerPeer.TransferModeEnum mode = MultiplayerPeer.TransferModeEnum.Reliable, int channel = 0);

Отправляет заданные необработанные bytes определенному пиру, идентифицированному id (см. MultiplayerPeer.SetTargetPeer). Идентификатор по умолчанию — 0, т.е. транслируется всем пирам.

Параметры
ИмяТипПо умолчанию
bytesbyte[]—
idint0
modeMultiplayerPeer.TransferModeEnumMultiplayerPeer.TransferModeEnum.Reliable
channelint0
Возвращает Error
# SendBytes · 2/2
C#
public Error SendBytes(ReadOnlySpan<byte> bytes, int id, MultiplayerPeer.TransferModeEnum mode, int channel);

Отправляет заданные необработанные bytes определенному пиру, идентифицированному id (см. MultiplayerPeer.SetTargetPeer). Идентификатор по умолчанию — 0, т.е. транслируется всем пирам.

Параметры
ИмяТипПо умолчанию
bytesReadOnlySpan<byte>—
idint—
modeMultiplayerPeer.TransferModeEnum—
channelint—
Возвращает Error
SetAllowObjectDecodingvoid
# SetAllowObjectDecoding
C#
public void SetAllowObjectDecoding(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetAuthCallbackvoid
# SetAuthCallback
C#
public void SetAuthCallback(Callable callback);
Параметры
ИмяТипПо умолчанию
callbackCallable—
SetAuthTimeoutvoid
# SetAuthTimeout
C#
public void SetAuthTimeout(double timeout);
Параметры
ИмяТипПо умолчанию
timeoutdouble—
SetMaxDeltaPacketSizevoid
# SetMaxDeltaPacketSize
C#
public void SetMaxDeltaPacketSize(int size);
Параметры
ИмяТипПо умолчанию
sizeint—
SetMaxSyncPacketSizevoid
# SetMaxSyncPacketSize
C#
public void SetMaxSyncPacketSize(int size);
Параметры
ИмяТипПо умолчанию
sizeint—
SetRefuseNewConnectionsvoid
# SetRefuseNewConnections
C#
public void SetRefuseNewConnections(bool refuse);
Параметры
ИмяТипПо умолчанию
refusebool—
SetRootPathvoid
# SetRootPath
C#
public void SetRootPath(EntityPath path);
Параметры
ИмяТипПо умолчанию
pathEntityPath—
SetServerRelayEnabledvoid
# SetServerRelayEnabled
C#
public void SetServerRelayEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—

Сигналы и события3

PeerAuthenticatingСобытие
# PeerAuthenticating
C#
public event SceneMultiplayer.PeerAuthenticatingEventHandler PeerAuthenticating;

Выдается, когда MultiplayerApi.MultiplayerPeer этого MultiplayerAPI подключается к новому одноранговому узлу и установлен допустимый SceneMultiplayer.AuthCallback. В этом случае MultiplayerApi.PeerConnected не будет выдан, пока не будет вызван SceneMultiplayer.CompleteAuth с заданным одноранговым узлом id. В этом состоянии одноранговый узел не будет включен в список, возвращаемый MultiplayerApi.GetPeers (но в тот, который возвращается SceneMultiplayer.GetAuthenticatingPeers), и будут отправлены или получены только данные аутентификации. См. SceneMultiplayer.SendAuth для отправки данных аутентификации.

Параметры обработчика
ИмяТипПо умолчанию
idlong—
PeerAuthenticationFailedСобытие
# PeerAuthenticationFailed
C#
public event SceneMultiplayer.PeerAuthenticationFailedEventHandler PeerAuthenticationFailed;

Выдается, когда MultiplayerApi.MultiplayerPeer этого MultiplayerAPI отключается от однорангового узла, для которого аутентификация еще не завершена. См. SceneMultiplayer.PeerAuthenticating.

Параметры обработчика
ИмяТипПо умолчанию
idlong—
PeerPacketСобытие
# PeerPacket
C#
public event SceneMultiplayer.PeerPacketEventHandler PeerPacket;

Вызывается, когда MultiplayerApi.MultiplayerPeer этого MultiplayerAPI получает packet с пользовательскими данными (см. SceneMultiplayer.SendBytes). ID — это идентификатор однорангового узла, отправившего пакет.

Параметры обработчика
ИмяТипПо умолчанию
idlong—
packetbyte[]—
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.