private void Awake()
        {
            if (Instance != null)
            {
                Debug.LogError($"{nameof(SyncedServerData)} object already exists. There should only be 1.");
                Destroy(this.gameObject);
                return;
            }

            Instance = this;

            var oldData = Data;

            if (NetStatus.IsServer)
            {
                var newData = new SyncedBag(_syncDictionary);
                newData.SetData(oldData);
                newData.SetCallbacks(oldData);

                Data = newData;
            }
            else
            {
                var newData = new SyncedBag(_syncDictionary);
                newData.SetCallbacks(oldData);
                Data = newData;
            }
        }
Exemple #2
0
        public void SetData(SyncedBag other)
        {
            if (this == other)
            {
                return;
            }

            m_syncDictionary.Clear();
            foreach (var pair in other.m_syncDictionary)
            {
                m_syncDictionary.Add(pair.Key, pair.Value);
            }
        }
Exemple #3
0
        public void SetCallbacks(SyncedBag other)
        {
            if (this == other)
            {
                return;
            }

            m_callbacks.Clear();
            foreach (var callback in other.m_callbacks)
            {
                m_callbacks.Add(callback.Key, callback.Value);
            }
        }
 private void OnDisable()
 {
     // clear data for next server start
     Data = new SyncedBag(new SyncedBag.StringSyncDictionary());
 }
Exemple #5
0
 Player()
 {
     ExtraData = new SyncedBag(m_syncDictionary);
 }