public static void RetireAllChildren(this Transform transform, GameManager gameManager) { List <GameObject> list = (List <GameObject>)Pool.GetList <GameObject>(); IEnumerator enumerator1 = transform.GetEnumerator(); try { while (enumerator1.MoveNext()) { Transform current = (Transform)enumerator1.Current; if (!((Component)current).CompareTag("persist")) { list.Add(((Component)current).get_gameObject()); } } } finally { (enumerator1 as IDisposable)?.Dispose(); } using (List <GameObject> .Enumerator enumerator2 = list.GetEnumerator()) { while (enumerator2.MoveNext()) { GameObject current = enumerator2.Current; gameManager.Retire(current); } } // ISSUE: cast to a reference type Pool.FreeList <GameObject>((List <M0>&) ref list); }
public static void DestroyAllChildren(this Transform transform, bool immediate = false) { List <GameObject> list = Pool.GetList <GameObject>(); foreach (Transform transforms in transform) { if (transforms.CompareTag("persist")) { continue; } list.Add(transforms.gameObject); } if (!immediate) { foreach (GameObject gameObject in list) { GameManager.Destroy(gameObject, 0f); } } else { foreach (GameObject gameObject1 in list) { GameManager.DestroyImmediate(gameObject1, false); } } Pool.FreeList <GameObject>(ref list); }
public static T GetComponentInChildrenIncludeDisabled <T>(this Transform transform) where T : Component { T t; List <T> list = Pool.GetList <T>(); transform.GetComponentsInChildren <T>(true, list); t = (list.Count > 0 ? list[0] : default(T)); Pool.FreeList <T>(ref list); return(t); }
public static void RetireAllChildren(this Transform transform, GameManager gameManager) { List <GameObject> list = Pool.GetList <GameObject>(); foreach (Transform transforms in transform) { if (transforms.CompareTag("persist")) { continue; } list.Add(transforms.gameObject); } foreach (GameObject gameObject in list) { gameManager.Retire(gameObject); } Pool.FreeList <GameObject>(ref list); }
public static void DestroyAllChildren(this Transform transform, bool immediate = false) { List <GameObject> list = (List <GameObject>)Pool.GetList <GameObject>(); IEnumerator enumerator1 = transform.GetEnumerator(); try { while (enumerator1.MoveNext()) { Transform current = (Transform)enumerator1.Current; if (!((Component)current).CompareTag("persist")) { list.Add(((Component)current).get_gameObject()); } } } finally { (enumerator1 as IDisposable)?.Dispose(); } if (immediate) { using (List <GameObject> .Enumerator enumerator2 = list.GetEnumerator()) { while (enumerator2.MoveNext()) { GameManager.DestroyImmediate(enumerator2.Current, false); } } } else { using (List <GameObject> .Enumerator enumerator2 = list.GetEnumerator()) { while (enumerator2.MoveNext()) { GameManager.Destroy(enumerator2.Current, 0.0f); } } } // ISSUE: cast to a reference type Pool.FreeList <GameObject>((List <M0>&) ref list); }