reckfellENGINE

MultiplayerSynchronizer

Синхронизирует свойства многопользовательского центра с удаленными узлами.

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

Синхронизирует свойства многопользовательского центра с удаленными узлами.

По умолчанию MultiplayerSynchronizer синхронизирует настроенные свойства со всеми одноранговыми узлами. Видимость может обрабатываться напрямую с помощью MultiplayerSynchronizer.SetVisibilityFor или по мере необходимости с помощью MultiplayerSynchronizer.AddVisibilityFilter и MultiplayerSynchronizer.UpdateVisibility. MultiplayerSpawner-ы будут обрабатывать узлы в соответствии с видимостью синхронизаторов, пока узел в MultiplayerSynchronizer.RootPath был создан одним из них. Внутренне MultiplayerSynchronizer использует MultiplayerApi.ObjectConfigurationAdd для уведомления о начале синхронизации, передавая Entity в MultiplayerSynchronizer.RootPath как object и себя как configuration, и использует MultiplayerApi.ObjectConfigurationRemove для уведомления о завершении синхронизации аналогичным образом. Примечание: Синхронизация не поддерживается для свойств типа ReckfellObject, таких как Resource. Свойства, которые являются уникальными для каждого однорангового узла, такие как идентификаторы экземпляров ReckfellObject (см. ReckfellObject.GetInstanceId) или Rid, также не будут работать при синхронизации.

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

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

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

Свойства6

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

Time интервал между дельта синхронизациями. Используется при репликации SceneReplicationConfig.ReplicationMode.OnChange. В случае установки 0.0 (по умолчанию), дельта синхронизация происходит каждый сетевой процесс.

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

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

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

Resource , в котором содержатся характеристики синхронизации.

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

Time интервал между синхронизациями. Используется при воспроизведении в SceneReplicationConfig.ReplicationMode.Always. В случае установки 0.0 (по умолчанию), синхронизация происходит во всех сетевых рамках процесса.

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

Entity траектория воспроизведения свойств относительно. Если MultiplayerSynchronizer.RootPath был вырожден а MultiplayerSpawner, узел будет также размножаться и разрушаться на основе этих вариантов синхронизации видимости.

VisibilityUpdateModeСвойство
# VisibilityUpdateMode
C#
public MultiplayerSynchronizer.VisibilityUpdateModeEnum VisibilityUpdateMode { get; set; }

Указывает, когда обновляются фильтры видимости.

Методы17

AddVisibilityFiltervoid
# AddVisibilityFilter
C#
public void AddVisibilityFilter(Callable filter);

Добавляет фильтр видимости пиров для этого синхронизатора. filter должен принимать идентификатор пиров [int] и возвращать [bool].

Параметры
ИмяТипПо умолчанию
filterCallable—
GetDeltaIntervaldouble
# GetDeltaInterval
C#
public double GetDeltaInterval();
Возвращает double
GetReplicationConfigSceneReplicationConfig
# GetReplicationConfig
C#
public SceneReplicationConfig GetReplicationConfig();
Возвращает SceneReplicationConfig
GetReplicationIntervaldouble
# GetReplicationInterval
C#
public double GetReplicationInterval();
Возвращает double
GetRootPathEntityPath
# GetRootPath
C#
public EntityPath GetRootPath();
Возвращает EntityPath
GetVisibilityForbool
# GetVisibilityFor
C#
public bool GetVisibilityFor(int peer);

Запрашивает текущую видимость для однорангового узла peer.

Параметры
ИмяТипПо умолчанию
peerint—
Возвращает bool
GetVisibilityUpdateModeMultiplayerSynchronizer.VisibilityUpdateModeEnum
# GetVisibilityUpdateMode
C#
public MultiplayerSynchronizer.VisibilityUpdateModeEnum GetVisibilityUpdateMode();
Возвращает MultiplayerSynchronizer.VisibilityUpdateModeEnum
IsVisibilityPublicbool
# IsVisibilityPublic
C#
public bool IsVisibilityPublic();
Возвращает bool
RemoveVisibilityFiltervoid
# RemoveVisibilityFilter
C#
public void RemoveVisibilityFilter(Callable filter);

Удаляет фильтр видимости одноранговых узлов из этого синхронизатора.

Параметры
ИмяТипПо умолчанию
filterCallable—
SetDeltaIntervalvoid
# SetDeltaInterval
C#
public void SetDeltaInterval(double milliseconds);
Параметры
ИмяТипПо умолчанию
millisecondsdouble—
SetReplicationConfigvoid
# SetReplicationConfig
C#
public void SetReplicationConfig(SceneReplicationConfig config);
Параметры
ИмяТипПо умолчанию
configSceneReplicationConfig—
SetReplicationIntervalvoid
# SetReplicationInterval
C#
public void SetReplicationInterval(double milliseconds);
Параметры
ИмяТипПо умолчанию
millisecondsdouble—
SetRootPathvoid
# SetRootPath
C#
public void SetRootPath(EntityPath path);
Параметры
ИмяТипПо умолчанию
pathEntityPath—
SetVisibilityForvoid
# SetVisibilityFor
C#
public void SetVisibilityFor(int peer, bool visible);

Устанавливает видимость peer на visible. Если peer равен 0, вместо этого будет обновлено значение MultiplayerSynchronizer.PublicVisibility.

Параметры
ИмяТипПо умолчанию
peerint—
visiblebool—
SetVisibilityPublicvoid
# SetVisibilityPublic
C#
public void SetVisibilityPublic(bool visible);
Параметры
ИмяТипПо умолчанию
visiblebool—
SetVisibilityUpdateModevoid
# SetVisibilityUpdateMode
C#
public void SetVisibilityUpdateMode(MultiplayerSynchronizer.VisibilityUpdateModeEnum mode);
Параметры
ИмяТипПо умолчанию
modeMultiplayerSynchronizer.VisibilityUpdateModeEnum—
UpdateVisibilityvoid
# UpdateVisibility
C#
public void UpdateVisibility(int forPeer = 0);

Обновляет видимость for_peer в соответствии с фильтрами видимости. Если for_peer равен 0 (по умолчанию), обновляются видимости всех пиров.

Параметры
ИмяТипПо умолчанию
forPeerint0

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

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

Вызывается, когда синхронизатор получает новое состояние дельта-синхронизации после обновления свойств.

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

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

VisibilityChangedСобытие
# VisibilityChanged
C#
public event MultiplayerSynchronizer.VisibilityChangedEventHandler VisibilityChanged;

Выдается при обновлении видимости for_peer. См. MultiplayerSynchronizer.UpdateVisibility.

Параметры обработчика
ИмяТипПо умолчанию
forPeerlong—

MultiplayerSynchronizer.VisibilityUpdateModeEnum

ЗначениеОписание
Idle = 0

Фильтры видимости обновляются во время кадров процесса (см. Entity.NotificationInternalProcess).

None = 2

Фильтры видимости не обновляются автоматически и должны обновляться вручную путем вызова MultiplayerSynchronizer.UpdateVisibility.

Physics = 1

Фильтры видимости обновляются во время физических кадров (см. Entity.NotificationInternalPhysicsProcess).

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

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

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

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