/// <summary>Destroy an object and return it to the pool scene /// </summary> public static void Destroy(GameObject gameObject) { PoolChecker poolChecker = gameObject.GetComponent <PoolChecker>(); if (poolChecker == null) { Debug.LogWarning("GameObject: " + gameObject + " isn't from a pool", gameObject); return; } gameObject.transform.SetParent(null); SceneManager.MoveGameObjectToScene(gameObject, poolScene); if (poolDictionary.ContainsKey(poolChecker.poolTag)) { Pool.PoolPrefab pool = poolDictionary[poolChecker.poolTag]; if (pool.undetermined) { gameObject.SetActive(false); pool.undeterminedPool.Remove(gameObject); } else { gameObject.SetActive(false); } } }
protected override void OnStart(string[] args) { poolChecker = new PoolChecker(); }