static void ResetManagers() { foreach (BaseObject _manager in VOLATILE_LIST) { if (_manager == null) { continue; } TYPE_DICT.Remove(_manager.GetType()); //VOLATILE_LIST.Remove(_manager); BaseObject.ThrowObject(_manager, eThrowEventType.E_THROW_EVENT_TYPE_MANAGER_RESET); GameObject _container = _manager.SelfObject; GameObject.Destroy(_manager); if (_container != null) { GameObject.Destroy(_container); } } VOLATILE_LIST.Clear(); foreach (BaseObject _manager in STABLE_LIST) { BaseObject.ThrowObject(_manager, eThrowEventType.E_THROW_EVENT_TYPE_MANAGER_RESET); } }
public static bool DeleteManager(Type _Managertype) { if (Instance == null) { return(false); } if (TYPE_DICT.ContainsKey(_Managertype) == false) { return(false); } BaseObject _curObject = TYPE_DICT[_Managertype]; TYPE_DICT.Remove(_Managertype); if (VOLATILE_LIST.Contains(_curObject)) { VOLATILE_LIST.Remove(_curObject); return(true); } if (STABLE_LIST.Contains(_curObject)) { STABLE_LIST.Remove(_curObject); return(true); } Debug.LogError("whole list has manager but no other has"); return(false); }