5 using System.Collections.Generic;
23 protected List<GameObject> SyncSpawnObjectListInternal =
new List<GameObject>(0);
25 public bool IsSpawningObjects {
get;
protected set; }
27 public List<GameObject> SyncSpawnObjectList {
get {
return SyncSpawnObjectListInternal; } }
33 if (NetworkManager.IsConnected)
39 NetworkManager.SharingManagerConnected += Connected;
43 protected virtual void Connected(
object sender = null, EventArgs e = null)
45 if (SyncSource != null)
47 IsSpawningObjects =
true;
48 UnRegisterToDataModel();
50 for (var i = 0; i < SyncSpawnObjectListInternal.Count; i++)
52 Destroy(SyncSpawnObjectListInternal[i]);
55 SyncSpawnObjectListInternal.Clear();
59 RegisterToDataModel();
61 if (IsSpawningObjects)
64 IsSpawningObjects =
false;
71 protected abstract void SetDataModelSource();
76 private void RegisterToDataModel()
82 private void UnRegisterToDataModel()
88 private void OnObjectAdded(T addedObject)
90 InstantiateFromNetwork(addedObject);
93 private void OnObjectRemoved(T removedObject)
95 RemoveFromNetwork(removedObject);
98 private void ReSpawnObjects()
102 for (var i = 0; i < objs.Length; i++)
104 InstantiateFromNetwork(objs[i]);
112 public abstract void Delete(T objectToDelete);
118 protected abstract void InstantiateFromNetwork(T addedObject);
124 protected abstract void RemoveFromNetwork(T removedObject);