public IEnumerator CRInit() { this.lastYieldTime = System.DateTime.UtcNow; foreach (Poolable poolable in this.poolableTypes) { GameObject newPoolerGO = new GameObject(); newPoolerGO.SetLayerRecursively(PoolManager.I.gameObject.layer); newPoolerGO.name = poolable.prefab.name; newPoolerGO.transform.parent = this.transform; newPoolerGO.transform.localPosition = Vector3.zero; Pooler pooler = newPoolerGO.AddComponent <Pooler>(); yield return(StartCoroutine(pooler.InitializeWithYield(poolable))); this.keyToPooler[poolable.key] = pooler; this.prefabToPooler[poolable.prefab] = pooler; } this.Finished = true; }