我正在使用 Irrlicht 编写一个类似最终幻想的游戏引擎,具有 2D 背景和 3D 模型。 为了计算与背景中物体的碰撞,我使用了一个不可见的网格,如下所示:
我试过使用这段代码,但是当玩家到达网格边缘时它会掉下来:
TriangleSelector sel = device.SceneManager.CreateTriangleSelector(Program.field.currentScene.walkmeshLoaded, null);
CollisionResponseSceneNodeAnimator coll = device.SceneManager.CreateCollisionResponseAnimator(sel, playerNode);
playerNode.AddAnimator(coll);
coll.Drop();
sel.Drop();
最佳答案
我还没有使用过你正在使用的系统,但已经两天了,所以我想我会在黑暗中试一试。如果我没看错的话,听起来您正在使用预定义的系统和其中的网格。当玩家对象到达网格边缘时,它会脱离网格,对吗?
这听起来像是您正在使用的引擎具有某种引力,如果有的话,该网格位于底层之上。将网格想象成一座桥梁;如果你走下边缘,你就会掉下来。您可能想要做的是沿着网格边缘设置墙壁以防止玩家从桥上掉下来,或者如果引擎允许,则在网格上设置碰撞以防止玩家越过边缘。后者会是一个更好的主意,因为我假设您会希望敌人和 NPC 遵循这些相同的路径,而墙壁只是更多的碰撞检测(并且可能会阻碍诸如飞行敌人之类的东西)。
我知道这不是一个确切的答案,但我希望能从中得到一些想法。也许我离题太远了,但根据所提供的信息,我认为这是正在发生的事情。
关于c# - 与不可见网格的 Irrlich 碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16131815/