MultiplayerSynchronizer
Синхронизирует свойства многопользовательского центра с удаленными узлами.
Синхронизирует свойства многопользовательского центра с удаленными узлами.
По умолчанию 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Конструктор
public MultiplayerSynchronizer();Свойства6
DeltaIntervalСвойство
public double DeltaInterval { get; set; }Time интервал между дельта синхронизациями. Используется при репликации SceneReplicationConfig.ReplicationMode.OnChange. В случае установки 0.0 (по умолчанию), дельта синхронизация происходит каждый сетевой процесс.
PublicVisibilityСвойство
public bool PublicVisibility { get; set; }Должна ли синхронизация быть видимой для всех одноранговых узлов по умолчанию. Смотрите MultiplayerSynchronizer.SetVisibilityFor и MultiplayerSynchronizer.AddVisibilityFilter для способов настройки детальных параметров видимости.
ReplicationConfigСвойство
public SceneReplicationConfig ReplicationConfig { get; set; }Resource , в котором содержатся характеристики синхронизации.
ReplicationIntervalСвойство
public double ReplicationInterval { get; set; }Time интервал между синхронизациями. Используется при воспроизведении в SceneReplicationConfig.ReplicationMode.Always. В случае установки 0.0 (по умолчанию), синхронизация происходит во всех сетевых рамках процесса.
RootPathСвойство
public EntityPath RootPath { get; set; }Entity траектория воспроизведения свойств относительно.
Если MultiplayerSynchronizer.RootPath был вырожден а MultiplayerSpawner, узел будет также размножаться и разрушаться на основе этих вариантов синхронизации видимости.
VisibilityUpdateModeСвойство
public MultiplayerSynchronizer.VisibilityUpdateModeEnum VisibilityUpdateMode { get; set; }Указывает, когда обновляются фильтры видимости.
Методы17
AddVisibilityFiltervoid
public void AddVisibilityFilter(Callable filter);Добавляет фильтр видимости пиров для этого синхронизатора.
filter должен принимать идентификатор пиров [int] и возвращать [bool].
| Имя | Тип | По умолчанию |
|---|---|---|
filter | Callable | — |
GetDeltaIntervaldouble
public double GetDeltaInterval();doubleGetReplicationConfigSceneReplicationConfig
public SceneReplicationConfig GetReplicationConfig();SceneReplicationConfigGetReplicationIntervaldouble
public double GetReplicationInterval();doubleGetRootPathEntityPath
public EntityPath GetRootPath();EntityPathGetVisibilityForbool
public bool GetVisibilityFor(int peer);Запрашивает текущую видимость для однорангового узла peer.
| Имя | Тип | По умолчанию |
|---|---|---|
peer | int | — |
boolGetVisibilityUpdateModeMultiplayerSynchronizer.VisibilityUpdateModeEnum
public MultiplayerSynchronizer.VisibilityUpdateModeEnum GetVisibilityUpdateMode();MultiplayerSynchronizer.VisibilityUpdateModeEnumIsVisibilityPublicbool
public bool IsVisibilityPublic();boolRemoveVisibilityFiltervoid
public void RemoveVisibilityFilter(Callable filter);Удаляет фильтр видимости одноранговых узлов из этого синхронизатора.
| Имя | Тип | По умолчанию |
|---|---|---|
filter | Callable | — |
SetDeltaIntervalvoid
public void SetDeltaInterval(double milliseconds);| Имя | Тип | По умолчанию |
|---|---|---|
milliseconds | double | — |
SetReplicationConfigvoid
public void SetReplicationConfig(SceneReplicationConfig config);| Имя | Тип | По умолчанию |
|---|---|---|
config | SceneReplicationConfig | — |
SetReplicationIntervalvoid
public void SetReplicationInterval(double milliseconds);| Имя | Тип | По умолчанию |
|---|---|---|
milliseconds | double | — |
SetRootPathvoid
public void SetRootPath(EntityPath path);| Имя | Тип | По умолчанию |
|---|---|---|
path | EntityPath | — |
SetVisibilityForvoid
public void SetVisibilityFor(int peer, bool visible);Устанавливает видимость peer на visible. Если peer равен 0, вместо этого будет обновлено значение MultiplayerSynchronizer.PublicVisibility.
| Имя | Тип | По умолчанию |
|---|---|---|
peer | int | — |
visible | bool | — |
SetVisibilityPublicvoid
public void SetVisibilityPublic(bool visible);| Имя | Тип | По умолчанию |
|---|---|---|
visible | bool | — |
SetVisibilityUpdateModevoid
public void SetVisibilityUpdateMode(MultiplayerSynchronizer.VisibilityUpdateModeEnum mode);| Имя | Тип | По умолчанию |
|---|---|---|
mode | MultiplayerSynchronizer.VisibilityUpdateModeEnum | — |
UpdateVisibilityvoid
public void UpdateVisibility(int forPeer = 0);Обновляет видимость for_peer в соответствии с фильтрами видимости. Если for_peer равен 0 (по умолчанию), обновляются видимости всех пиров.
| Имя | Тип | По умолчанию |
|---|---|---|
forPeer | int | 0 |
Сигналы и события3
DeltaSynchronizedСобытие
public event Action DeltaSynchronized;Вызывается, когда синхронизатор получает новое состояние дельта-синхронизации после обновления свойств.
SynchronizedСобытие
public event Action Synchronized;Выдается, когда синхронизатор получает новое состояние синхронизации после обновления свойств.
VisibilityChangedСобытие
public event MultiplayerSynchronizer.VisibilityChangedEventHandler VisibilityChanged;Выдается при обновлении видимости for_peer. См. MultiplayerSynchronizer.UpdateVisibility.
| Имя | Тип | По умолчанию |
|---|---|---|
forPeer | long | — |
MultiplayerSynchronizer.VisibilityUpdateModeEnum
| Значение | Описание |
|---|---|
Idle = 0 | Фильтры видимости обновляются во время кадров процесса (см. |
None = 2 | Фильтры видимости не обновляются автоматически и должны обновляться вручную путем вызова |
Physics = 1 | Фильтры видимости обновляются во время физических кадров (см. |