private void SceneWasLoaded(UnityEngine.SceneManagement.Scene scene, UnityEngine.SceneManagement.LoadSceneMode mode) { if (ReturnToCacheOnLevelLoad) { SpawningPool.RecycleActiveObjects(); } }
private void Awake() { if (awake) { return; } else if (instance == null) { awake = true; instance = this; DontDestroyOnLoad(this); if (Prefabs != null) { foreach (var prefab in Prefabs) { SpawningPool.AddPrefab(prefab.Key, prefab.Prefab); } } UnityEngine.SceneManagement.SceneManager.sceneLoaded += (scene, mode) => { SpawningPool.RecycleActiveObjects(); }; } else { Object.Destroy(gameObject); } }
private void Cleanup() { SpawningPool.RecycleActiveObjects(); foreach (GameObject obj in regular) { GameObject.Destroy(obj); } regular.Clear(); // note- to send just one object back to the cache, call SpawningPool.ReturnToCache. This is an extension method for GameObject. }