Skip to content
Snippets Groups Projects
GameObjectExtensions.cs 968 B
Newer Older
  • Learn to ignore specific revisions
  • using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public static class GameObjectExtensions
    {
        public static void UpdateTagActive(this GameObject root, string tag, bool enable)
        {
            for (int i = 0; i < root.transform.childCount; i++)
            {
                GameObject child = root.transform.GetChild(i).gameObject;
    
    Marco Zimmer's avatar
    Marco Zimmer committed
                if (child.CompareTag(tag))
    
                    child.SetActive(enable);
                else
                    UpdateTagActive(child, tag, enable);
            }
        }
    
        public static void DestroyAllChildren(this GameObject root)
        {
            for (int i = 0; i < root.transform.childCount; i++)
                GameObject.Destroy(root.transform.GetChild(i).gameObject);
        }
    
    
    Marco Zimmer's avatar
    Marco Zimmer committed
        public static GameObject GetNthChild(this GameObject root, IEnumerable<int> pos)
    
    Marco Zimmer's avatar
    Marco Zimmer committed
        {
            GameObject ret = root;
            foreach (var i in pos)
                ret = ret.transform.GetChild(i).gameObject;
    
            return ret;
        }