Unity中同时修改物体及其所有子物体层级

简单说一下思路:

  1. 首先你得判定当前物体是否有子物体
  2. 没有的话就直接设置层级
  3. 有的话就再回到1,继续判断子物体下是否还有子物体

接下来结合代码再好好理解一下

	private void ChangeLayer(Transform transform,int layer)
    {
    
    
        if (transform.childCount>0)//如果子物体存在
        {
    
    
            for (int i = 0; i < transform.childCount; i++)//遍历子物体是否还有子物体
            {
    
    
                ChangeLayer(transform.GetChild(i), layer);//这里是只将最后一个无子物体的对象设置层级
            }
            transform.gameObject.layer = layer;//将存在的子物体遍历结束后需要把当前子物体节点进行层级设置
        }
        else					//无子物体
        {
    
    
            transform.gameObject.layer = layer;
        }
    }

如果还是不能理解,建议先去了解一下树!

猜你喜欢

转载自blog.csdn.net/weixin_44870508/article/details/121970020