示例#1
0
 static public void ChangeLayer(GameObject go, LayerMaskType layer)
 {
     foreach (Transform trans in go.GetComponentsInChildren <Transform>())
     {
         trans.gameObject.layer = LayerMask.NameToLayer(layer.ToString());
     }
 }
示例#2
0
        public static bool CompareLayer(int ly, LayerMaskType flag)
        {
            int layer = LayerMask.NameToLayer(flag.ToString());

            if (ly == layer)
            {
                return(true);
            }
            return(false);
        }
示例#3
0
        static public Transform[] FindAllTransformByLayer(LayerMaskType layer)
        {
            List <Transform> list = new List <Transform>();

            Transform[] transList = GameObject.FindObjectsOfType(typeof(Transform)) as Transform[];
            int         layerr    = LayerMask.NameToLayer(layer.ToString());

            foreach (Transform trans in transList)
            {
                if (trans.gameObject.layer == layerr)
                {
                    list.Add(trans);
                }
            }
            return(list.ToArray());
        }
示例#4
0
        public static int GetRaycastLayer(params LayerMaskType[] flags)
        {
            if (flags == null || flags.Length == 0)
            {
                return(0);
            }
            int layer = 0;

            for (int i = 0; i < flags.Length; i++)
            {
                LayerMaskType mask = flags[i];
                int           temp = LayerMask.NameToLayer(mask.ToString());
                layer += 1 << temp;
            }
            return(layer);
        }
示例#5
0
        static public Transform[] FindChildrenByLayer(Transform parent, LayerMaskType layer)
        {
            List <Transform> list = new List <Transform>();

            if (parent != null)
            {
                int layerr = LayerMask.NameToLayer(layer.ToString());

                for (int i = 0; i < parent.childCount; i++)
                {
                    Transform trans = parent.GetChild(i);
                    if (trans.gameObject.layer == layerr)
                    {
                        list.Add(trans);
                    }
                }
            }
            return(list.ToArray());
        }
示例#6
0
        static public Transform FindChildByLayer(Transform parent, LayerMaskType layer)
        {
            if (parent == null)
            {
                return(null);
            }

            int layerr = LayerMask.NameToLayer(layer.ToString());

            for (int i = 0; i < parent.childCount; i++)
            {
                Transform trans = parent.GetChild(i);
                if (trans.gameObject.layer == layerr)
                {
                    return(trans);
                }
            }
            return(null);
        }
示例#7
0
        public static int GetRaycastLayer(LayerMaskType flag)
        {
            int layer = LayerMask.NameToLayer(flag.ToString());

            return(1 << layer);
        }