这个问题是关于three.js。我想将一个网格放在另一个网格内,然后能够移动放在另一个网格内的网格。使用JSONLoader加载网格。一个是世界,另一个是代表用户的模型本身。我该怎么做呢?我可以毫无困难地加载两个网格,但我无法将用户模型放在世界模型中。然后,我需要执行碰撞检测,以确保用户不会穿过世界墙和物体。有人建议使用jiblibjs作为部分内容,但该库未在1年内更新。还建议使用ammo.js进行碰撞检测。然而,这仍然没有解决将一个网格放置在另一个网格中然后移动它的问题。网格中各种表面的碰撞检测必须等到我能够做到这一点。
答案 0 :(得分:0)
我认为用户模型本身和世界都处于同一规模。您可以Object3D添加()函数来嵌套对象,但要注意您导出的层次结构。例如,world对象可能包含空对象(没有几何)等等。添加不会是一个具有挑战性的部分,碰撞检测会。
如果你的世界有些平坦(地板是平的,你需要检查墙壁上的碰撞,你应该查找碰撞地图。基本上你会使用一个ortographic顶视图呈现为例如,单色图像,其中一种颜色代表检查碰撞的区域,另一种颜色代表不可碰撞的区域。
如果世界有一个更复杂的外观你可能想要看collision meshes:你将有一个简化/真正低的复制世界,你不会渲染,但用于检查碰撞,它应该更快,而不是检查复杂网格的每个多边形的碰撞。
当然,你也有像jiglib / ammo / etc这样的僵尸体库。但即使是那些你应该考虑使用非渲染的低多边形网格进行碰撞。
HTH