コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }