首页 > 解决方案 > 如何检查y轴上最高物体的最高点

问题描述

我仍在使用 Unity 制作关于塔楼的游戏,现在我遇到了困扰我大约一周的问题。

失败的游戏机制是有一条线以一定的速度上升,当它超过塔时,游戏应该结束。我想知道有没有办法检查最高物体的最高点(因为旋转物体和不规则堆叠的物体)?

标签: c#unity3d

解决方案


有几种方法可以实现这一点:

1)你可以从高处向天空发射一束光线。找到所有的 hit.point 位置,然后遍历这些点并存储最高的建筑物。

2) 另一个是添加的建筑物的每个块 - 将其保留为空建筑物游戏对象的子项。然后你需要做的就是看看哪个建筑游戏对象有最多的孩子,你知道它是最高的。这假设所有块在 Y 中的大小都相同,然后您可以使用highestChildCount * blockSizeY 轻松计算高度

3)另一种方法是使用向上行进的线中的点。从该点向左右射出一条射线。如果它击中建筑物,则游戏继续。如果它没有击中任何东西,游戏就结束了。这是最简单的,因为它不需要计算任何高度,并且您的建筑物可以按照您喜欢的任何方式建造,只要它们上有碰撞器以供射线击中。<--- 这可能是我听到你问的最好的方法。


推荐阅读