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; } }
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); } }
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()); }
Player() { ExtraData = new SyncedBag(m_syncDictionary); }