我正在开发用户在运行时(一直)生成网格的游戏,因此网格有很多顶点,同时有一个 GameObject - 玩家需要在它位于生成的区域时触发事件运行时网格。
游戏中的相机是 3D 的,但生成的网格是平面的。在我的附图中,我在顶 View 中显示了它,以更好地展示它的外观。
现在我每隔几秒就更新一次 Mesh Collider,但是在生成的网格有越来越多的顶点后它非常慢。
我相信这是一种非常简单的碰撞方法,所以也许有任何其他方法可以检测到这种情况,而不是附加到动态生成的网格的网格碰撞器?
更新 #1
我知道 Mesh Collider 很慢,不应该在运行时更新。我也知道应该使用像 box collider 这样的原语的想法。
但是在这种情况下,当这个平面网格每秒更新一次(并且它会增长)时,将有数千个盒子碰撞器,并且每秒都需要添加新的。这种方法也行不通。
更新#2
我的第二个想法是找到离玩家最近的三角形并为它们创建碰撞器(盒子碰撞器应该是最快的)。但我真的不知道从哪里开始,甚至不知道从哪里开始?有人吗?
最佳答案
如果网格碰撞器适用于小部分而不是全长,则生成多个网格碰撞器,当玩家绘制更长的路径时,每 X 个多边形或 X 条路径断开一个新的碰撞器。
关于c# - 在运行时更新网格对撞机的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598053/