public PoolObject GetItem() { PoolObject item = null; if (inactive.Count == 0) { GameObject poolObject = (GameObject)Object.Instantiate(prefab, Vector3.zero, Quaternion.identity); item = poolObject.GetComponent <PoolObject>(); if (item == null) { Debug.LogError(poolObject.name + " : Not a poolable object!"); } item.Begin(this); } else { item = (PoolObject)inactive.Dequeue(); } active.Add(item); return(item); }