/// <summary> /// Sets the instance of the ItemDatabase to the instance given. /// </summary> /// <param name="aInstance">The instance to make singleton</param> /// <returns></returns> private static bool SetInstance(ItemDatabase aInstance) { if (s_Instance != null && s_Instance != aInstance) { return false; } s_Instance = aInstance; return true; }
/// <summary> /// Creates an instance of the ItemDatabase 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<ItemDatabase>(); if (s_Instance == null) { s_Instance = persistant.AddComponent<ItemDatabase>(); } }
/// <summary> /// Removes the instance of the ItemDatabase if the instance being destroyed is the the same as the singleton. /// </summary> /// <param name="aInstance"></param> private static void DestroyInstance(ItemDatabase aInstance) { if (s_Instance == aInstance) { s_Instance = null; } }