比如我们摆出下面结构:

unity, 在保持场景根节点Transform不变且Hierarchy结构不变的前提下整体旋转场景-LMLPHP

其Hierarchy如下:

unity, 在保持场景根节点Transform不变且Hierarchy结构不变的前提下整体旋转场景-LMLPHP

其中根节点road的Transform是如下干净的原始状态:

unity, 在保持场景根节点Transform不变且Hierarchy结构不变的前提下整体旋转场景-LMLPHP

现在想保持road的Hierarchy和Transform都不变的情况下将road旋转90度。

也就是说想把对road的旋转下放到子节点,当然,这样每个子节点就不止需要旋转还需要平移。

一个比较取巧的方法如下:

1,在road下添加子节点temp(其Transform为原始单位状态),将Cube(9)~Cube(12)全部拖到temp下,如图:

unity, 在保持场景根节点Transform不变且Hierarchy结构不变的前提下整体旋转场景-LMLPHP

2,将temp旋转90度。

3,将Cube(9)~Cube(12)从temp下拖出放回到road下,如图:

unity, 在保持场景根节点Transform不变且Hierarchy结构不变的前提下整体旋转场景-LMLPHP

4,删除temp。搞定。

注:希望保持Hierarchy不变的原因是为了防止脚本失效,因为road上可能挂了脚本s,而脚本s中可能含有findChild语句,假如Hierarchy发生变化,很可能findChild就找不到相应的子节点了。

05-11 17:39