public static int GetFrequencyModulo(this SyncFrequency freq)
        {
            switch (freq)
            {
            case SyncFrequency.Instant:
                return(0);

            case SyncFrequency.VeryShort:
                return(1);

            case SyncFrequency.Short:
                return(2);

            case SyncFrequency.Medium:
                return(4);

            case SyncFrequency.Long:
                return(10);

            case SyncFrequency.VeryLong:
                return(20);

            default:
                return(20);
            }
        }
        public void RegisterVar(SyncableVariable var, SyncFrequency frequency, Action <SyncableVariable, NetworkWriter> registerMethod, Action <SyncableVariable, NetworkReader> syncMethod, Func <NetworkWriter, int> byteSizeMethod, bool ignoreAuthority)
        {
            if (_varIgnoresAuthority.ContainsKey(var))
            {
                _varIgnoresAuthority.Remove(var);
            }
            if (_methods.ContainsKey(var))
            {
                _methods.Remove(var);
            }
            if (_varSizesMethods.ContainsKey(var))
            {
                _varSizesMethods.Remove(var);
            }

            _varIgnoresAuthority[var] = ignoreAuthority;
            _methods.Add(var, new NetworkSyncableVarMethods(var, registerMethod, syncMethod));

            _frequenciesMasks[(int)frequency] |= var;

            if (byteSizeMethod == null)
            {
                BakeVarSize(var, registerMethod);
            }
            else
            {
                _varSizesMethods.Add(var, byteSizeMethod);
            }
        }
        public static float GetFrequencyPeriod(this SyncFrequency freq)
        {
            switch (freq)
            {
            case SyncFrequency.Instant:
                return(0f);

            case SyncFrequency.VeryShort:
                return(0.05f);

            case SyncFrequency.Short:
                return(0.1f);

            case SyncFrequency.Medium:
                return(0.2f);

            case SyncFrequency.Long:
                return(0.5f);

            case SyncFrequency.VeryLong:
                return(1f);

            default:
                return(1f);
            }
        }
 public LfsBackupSyncTarget(string name, string description, string targetPath, SyncFrequency frequency, bool isEnabled, bool isAssetsSyncEnabled)
 {
     Id                  = Guid.NewGuid();
     Name                = name;
     Description         = description;
     TargetPath          = targetPath;
     Frequency           = frequency;
     IsEnabled           = isEnabled;
     IsAssetsSyncEnabled = isAssetsSyncEnabled;
 }
Пример #5
0
        public void RegisterGameObjectSyncVar(GameObject go, SyncableVariable var, SyncFrequency frequency, Action <SyncableVariable, NetworkWriter> registerMethod, Action <SyncableVariable, NetworkReader> syncMethod, Func <NetworkWriter, int> byteSizeMethod, bool ignoreAuthority)
        {
            IDestroyableNetworkSyncableGameObject destroyableGameObject = go.GetComponent <IDestroyableNetworkSyncableGameObject>();

            if (destroyableGameObject == null)
            {
                Debug.LogError("GameObject must have a IDestroyableNetworkSyncableGameObject component."); return;
            }

            if (_gameObjectSyncInfos.ContainsKey(go) == false)
            {
                _gameObjectSyncInfos.Add(go, new NetworkSyncableGameobjectInfos(go));
            }

            _gameObjectSyncInfos[go].RegisterVar(var, frequency, registerMethod, syncMethod, byteSizeMethod, ignoreAuthority);
            destroyableGameObject.OnGameObjectDestroyed.SafeSubscribe(OnSyncableGameObjectDestroyed);
        }
Пример #6
0
 public void RegisterGameObjectSyncVar(GameObject go, SyncableVariable var, SyncFrequency frequency, Action <SyncableVariable, NetworkWriter> registerMethod, Action <SyncableVariable, NetworkReader> syncMethod, bool ignoreAuthority) => RegisterGameObjectSyncVar(go, var, frequency, registerMethod, syncMethod, null, ignoreAuthority);
 public void RegisterVar(SyncableVariable var, SyncFrequency frequency, Action <SyncableVariable, NetworkWriter> registerMethod, Action <SyncableVariable, NetworkReader> syncMethod) => RegisterVar(var, frequency, registerMethod, syncMethod, null, false);
Пример #8
0
 public BackupSyncTestTarget(Guid id, string name, string description, string targetPath, SyncFrequency frequency, bool isEnabled, bool isAssetsSyncEnabled) : base(id, name, description, targetPath, frequency, isEnabled, isAssetsSyncEnabled)
 {
 }