c# - 如何检查y轴上最高物体的最高点
问题描述
我仍在使用 Unity 制作关于塔楼的游戏,现在我遇到了困扰我大约一周的问题。
失败的游戏机制是有一条线以一定的速度上升,当它超过塔时,游戏应该结束。我想知道有没有办法检查最高物体的最高点(因为旋转物体和不规则堆叠的物体)?
解决方案
有几种方法可以实现这一点:
1)你可以从高处向天空发射一束光线。找到所有的 hit.point 位置,然后遍历这些点并存储最高的建筑物。
2) 另一个是添加的建筑物的每个块 - 将其保留为空建筑物游戏对象的子项。然后你需要做的就是看看哪个建筑游戏对象有最多的孩子,你知道它是最高的。这假设所有块在 Y 中的大小都相同,然后您可以使用highestChildCount * blockSizeY 轻松计算高度
3)另一种方法是使用向上行进的线中的点。从该点向左右射出一条射线。如果它击中建筑物,则游戏继续。如果它没有击中任何东西,游戏就结束了。这是最简单的,因为它不需要计算任何高度,并且您的建筑物可以按照您喜欢的任何方式建造,只要它们上有碰撞器以供射线击中。<--- 这可能是我听到你问的最好的方法。
推荐阅读
- javascript - 如何将 Bigtable HBase API 返回字节数组转换为 nodeJS 中的整数或浮点数?
- swift - 使用 UIViewPropertyAnimator 沿曲线路径驱动动画?
- javascript - 如何使用代理应用陷阱?
- python - 对于每个重复的数据,SQLite3 将 Count 递增 1
- c# - Response.BinaryWrite() 导致文件损坏
- r - R 和 Stata 在处理未识别的分类变量方面的差异
- shell - Apache Webserver 中的动态 Vhost
- spring-boot - Ehcache jsr107:默认值不适用于以编程方式创建的缓存
- django - Django-如何在管理面板表单中找到验证错误?
- java - 强制在 JPA @Entity 类中包含字段