reckfellENGINE

MultiplayerApi

Контекст сетевых участников, отправителя и RPC.

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

Объединяет MultiplayerPeer и высокоуровневые сетевые операции. EntityTree по умолчанию опрашивает API; отдельные ветви могут получить независимые API через SetMultiplayer. Один процесс и один API — разные понятия.

GetRemoteSenderId имеет смысл внутри текущего обработчика сетевого вызова; сохраняйте ID до отложенной работы. AnyPeer не является проверкой аккаунта. Согласуйте RPC-конфигурацию, относительные пути и авторитетное серверное состояние.

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

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

Свойства1

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

Объект peer для обработки системы RPC (эффективно включающей сетевое взаимодействие при установке). В зависимости от самого peer, MultiplayerAPI станет сетевым сервером (проверьте с помощью MultiplayerApi.IsServer) и установит сетевой режим корневого узла на authority, или он станет обычным клиентским peer. Все дочерние узлы настроены на наследование сетевого режима по умолчанию. Обработка событий, связанных с сетью (подключение, отключение, новые клиенты), выполняется путем подключения к сигналам MultiplayerAPI.

Методы14

CreateDefaultInterfaceMultiplayerApi
# CreateDefaultInterface
C#
public static MultiplayerApi CreateDefaultInterface();

Возвращает новый экземпляр MultiplayerAPI по умолчанию.

Возвращает MultiplayerApi
GetDefaultInterfaceStringName
# GetDefaultInterface
C#
public static StringName GetDefaultInterface();

Возвращает имя класса реализации MultiplayerAPI по умолчанию. Обычно это "SceneMultiplayer", когда доступен SceneMultiplayer. См. MultiplayerApi.SetDefaultInterface.

Возвращает StringName
GetMultiplayerPeerMultiplayerPeer
# GetMultiplayerPeer
C#
public MultiplayerPeer GetMultiplayerPeer();
Возвращает MultiplayerPeer
GetPeersint[]
# GetPeers
C#
public int[] GetPeers();

Возвращает идентификаторы всех подключенных одноранговых узлов этого MultiplayerAPI MultiplayerApi.MultiplayerPeer.

Возвращает int[]
GetRemoteSenderIdint
# GetRemoteSenderId
C#
public int GetRemoteSenderId();

ID отправителя в контексте текущего входящего сетевого вызова. Сохраните до отложенной работы; поле, переданное клиентом как playerId, не заменяет этот ID.

Возвращает int
GetUniqueIdint
# GetUniqueId
C#
public int GetUniqueId();

ID локального peer в текущей сессии. Сервер использует 1. Это не постоянный ID аккаунта, сохранения или игрового объекта.

Возвращает int
HasMultiplayerPeerbool
# HasMultiplayerPeer
C#
public bool HasMultiplayerPeer();

Возвращает true, если установлен MultiplayerApi.MultiplayerPeer.

Возвращает bool
IsServerbool
# IsServer
C#
public bool IsServer();

Возвращает true, если MultiplayerApi.MultiplayerPeer этого MultiplayerAPI действителен и находится в режиме сервера (прослушивает соединения).

Возвращает bool
ObjectConfigurationAddError
# ObjectConfigurationAdd
C#
public Error ObjectConfigurationAdd(ReckfellObject @object, Variant configuration);

Уведомляет MultiplayerAPI о новой configuration для данного object. Этот метод используется внутренне EntityTree для настройки корневого пути для этого MultiplayerAPI (передавая null и допустимый EntityPath как configuration). Этот метод может далее использоваться реализациями MultiplayerAPI для предоставления дополнительных функций, см. конкретную реализацию (например, SceneMultiplayer) для получения подробной информации о том, как они его используют. Примечание: Этот метод в основном актуален при расширении или переопределении поведения MultiplayerAPI через MultiplayerApiExtension.

Параметры
ИмяТипПо умолчанию
objectReckfellObject—
configurationVariant—
Возвращает Error
ObjectConfigurationRemoveError
# ObjectConfigurationRemove
C#
public Error ObjectConfigurationRemove(ReckfellObject @object, Variant configuration);

Уведомляет MultiplayerAPI об удалении configuration для данного object. Этот метод используется внутренне EntityTree для настройки корневого пути для этого MultiplayerAPI (передавая null и пустой EntityPath как configuration). Этот метод может быть дополнительно использован реализациями MultiplayerAPI для предоставления дополнительных функций, см. конкретную реализацию (например, SceneMultiplayer) для получения подробной информации о том, как они его используют. Примечание: Этот метод в основном актуален при расширении или переопределении поведения MultiplayerAPI через MultiplayerApiExtension.

Параметры
ИмяТипПо умолчанию
objectReckfellObject—
configurationVariant—
Возвращает Error
PollError
# Poll
C#
public Error Poll();

Продвигает сетевые события/API. Обычно опрос выполняет EntityTree; ручной режим должен согласовываться с MultiplayerPoll и жизненным циклом.

Возвращает Error
RpcError
# Rpc
C#
public Error Rpc(int peer, ReckfellObject @object, StringName method, Reckfell.Collections.Array arguments = null);

Посылает RPC к цели peer. Приведенная информация method будут призваны к дальнему object вместе с предусмотренными argumentsВ зависимости от степени осуществления и конфигурации ОЦР можно также называть РПК на местном уровне. Entity.Rpc и Entity.RpcConfig. Примечание: Предпочтение использовать Entity.Rpc, Entity.RpcIdили my_method.rpc(peer, arg1, arg2, ...) (в C#), поскольку они более быстры. MultiplayerApiExtension при расширении или замене возможностей мультиплеера.

Параметры
ИмяТипПо умолчанию
peerint—
objectReckfellObject—
methodStringName—
argumentsReckfell.Collections.Arraynull
Возвращает Error
SetDefaultInterfacevoid
# SetDefaultInterface
C#
public static void SetDefaultInterface(StringName interfaceName);

Устанавливает класс реализации MultiplayerAPI по умолчанию. Этот метод может использоваться модулями и расширениями для настройки того, какая реализация будет использоваться EntityTree при запуске движка.

Параметры
ИмяТипПо умолчанию
interfaceNameStringName—
SetMultiplayerPeervoid
# SetMultiplayerPeer
C#
public void SetMultiplayerPeer(MultiplayerPeer peer);
Параметры
ИмяТипПо умолчанию
peerMultiplayerPeer—

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

ConnectedToServerСобытие
# ConnectedToServer
C#
public event Action ConnectedToServer;

Сигнал успешного клиентского соединения на уровне API. Не доказывает авторизацию аккаунта, загрузку уровня или готовность всех игровых сущностей.

ConnectionFailedСобытие
# ConnectionFailed
C#
public event Action ConnectionFailed;

Выдается, когда MultiplayerApi.MultiplayerPeer этого MultiplayerAPI не может установить соединение с сервером. Выдается только на клиентах.

PeerConnectedСобытие
# PeerConnected
C#
public event MultiplayerApi.PeerConnectedEventHandler PeerConnected;

Выдается, когда MultiplayerApi.MultiplayerPeer этого MultiplayerAPI подключается к новому пиру. ID — это идентификатор пира нового пира. Клиенты получают уведомления, когда другие клиенты подключаются к тому же серверу. При подключении к серверу клиент также получает этот сигнал для сервера (с ID, равным 1).

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

Сообщает выход сетевого участника. Очистите связанные игровые данные; отправку итогового состояния и смену API выполняйте в согласованной фазе.

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

Выдается, когда MultiplayerApi.MultiplayerPeer этого MultiplayerAPI отключается от сервера. Выдается только на клиентах.

MultiplayerApi.RpcMode

ЗначениеОписание
AnyPeer = 1

Используется с Entity.RpcConfig для установки метода, который может быть вызван удаленно любым пиром. Аналогично аннотации @rpc("any_peer"). Вызовы принимаются от всех удаленных пиров, независимо от того, являются ли они авторитетом узла или нет.

Authority = 2

Используется с Entity.RpcConfig для установки метода, который будет вызываться удаленно только текущим многопользовательским полномочием (по умолчанию сервером). Аналогично аннотации @rpc("authority"). См. Entity.SetMultiplayerAuthority.

Disabled = 0

Используется с Entity.RpcConfig для отключения метода или свойства для всех вызовов RPC, делая его недоступным. По умолчанию для всех методов.

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

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

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

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