public class ObjectPooler : MonoBehaviour { #region Burada Pool oluşturuyorum ama ne yaptığımı sadece Allah biliyor Vector3 ariAcisi; public GameObject Kralice; [System.Serializable] public class Pool { public string tag; public GameObject objem; public int genislik; public GameObject Kralice; } #region Singleton public static ObjectPooler Instance; private void Awake() { Instance = this; } #endregion public List pools; public Dictionary> poolDictionary; void Start() { poolDictionary = new Dictionary>(); foreach (Pool pool in pools) { Queue objectPool = new Queue(); for (int i = 0; i < pool.genislik; i++) { GameObject obj = Instantiate(pool.objem); obj.SetActive(false); objectPool.Enqueue(obj); } poolDictionary.Add(pool.tag, objectPool); } } public GameObject SpawnFromPool (string tag, Vector3 position, Quaternion rotation) { if (!poolDictionary.ContainsKey(tag)) { Debug.LogWarning("Pool with tag " + tag + " dpwsn't excist."); return null; } GameObject objectToSpawn = poolDictionary[tag].Dequeue(); objectToSpawn.SetActive(false); objectToSpawn.transform.position = Kralice.transform.position + new Vector3(Random.Range(-5.0f, 5.0f), 0, Random.Range(-5.0f, 5.0f)); objectToSpawn.transform.rotation = Quaternion.Euler (0, 90, 0); //= rotation; poolDictionary[tag].Enqueue(objectToSpawn); return objectToSpawn; } #endregion