/// <summary> /// Removes the instance of the game event manager if the instance being destroyed is the the same as the singleton. /// </summary> /// <param name="aInstance"></param> private static void DestroyInstance(GameEventManager aInstance) { if(s_Instance == aInstance) { s_Instance = null; } }
/// <summary> /// Sets the instance of the game event manager to the instance given. /// </summary> /// <param name="aInstance">The instance to make singleton</param> /// <returns></returns> private static bool SetInstance(GameEventManager aInstance) { if (s_Instance != null && s_Instance != aInstance) { return false; } s_Instance = aInstance; return true; }
/// <summary> /// Creates an instance of the GameEventManager if it was missing. /// </summary> private static void CreateInstance() { if (Game.isClosing) { return; } GameObject persistant = GameObject.Find(Game.PERSISTANT_GAME_OBJECT_NAME); if(persistant == null) { persistant = new GameObject(Game.PERSISTANT_GAME_OBJECT_NAME); persistant.transform.position = Vector3.zero; persistant.transform.rotation = Quaternion.identity; } s_Instance = persistant.GetComponent<GameEventManager>(); if(s_Instance == null) { s_Instance = persistant.AddComponent<GameEventManager>(); } }