简单说一下思路:
- 首先你得判定当前物体是否有子物体
- 没有的话就直接设置层级
- 有的话就再回到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;
}
}
如果还是不能理解,建议先去了解一下树!