【发布时间】:2017-11-16 01:03:10
【问题描述】:
目标是“扩展”给定模型,以便用户可以单独查看每个部分,以便用户可以单独与每个对象进行交互(无需担心他们实际操作的是哪个对象)。
那么,如何动态地线性分离一个游戏对象的子对象呢?
因此,在示例中,有一个空游戏对象,它是 3 个对象的父对象:立方体、球体和胶囊。由于对象当前已组合,因此用户无法看到所有子对象。
在“扩展”示例中,我通过沿同一轴(在本例中为 x)手动拖动每个子代,并在同一轴上将它们线性分开。如何动态地做到这一点?
首先要计算一个游戏对象的子对象数量,然后在父对象上运行一个循环,根据被移动的子对象移动每个子对象的距离。例如:child_1 沿 x 轴移动 3 个单位,child_2 移动 6 个单位,child_3 移动 9 个单位,等等。
这是解决此问题的最佳方法吗?第一直觉说这在所有情况下都不起作用,具体取决于对象占用的大小。一个子对象可能比另一个大很多倍。如果是这种情况,不是通过单位而是通过将每个子对象移动到彼此的碰撞边界之外来分隔对象会更好吗?
【问题讨论】:
-
您可以通过检查
Collider.bounds来确定每个对象的大致高度。有了这些信息,确定您需要将对象移动到何处以使它们不再重叠应该很容易。 -
@Serlite 是的,collider.bounds 正是我所需要的。谢谢!
-
很高兴您能够根据该提示自行推断出解决方案!这是最好的学习方式。
标签: unity3d