【发布时间】:2022-01-21 00:07:51
【问题描述】:
我目前有多个对象,每个对象都像这样随机前进
model.lookAt(position_x, 0, position_z);
setInterval(function(){
model.translateZ(0.015);
}, 10);
我需要每个对象在向前移动时避免相互碰撞。我发现这个解决方案建议使用边界框进行碰撞检测,但它似乎只适用于两个对象之间的碰撞:
How to detect collision between two objects in JavaScript with Three.js?
是否可以有多个对象,每个对象都有自己的碰撞检测?
谢谢!
【问题讨论】:
-
您应该为此使用物理引擎。查看 Cannon.JS 或 Oimo.JS
-
但是当我只需要简单的碰撞检测时,使用物理引擎是相当繁重的。
-
如果您想要更简单的解决方案并且不需要 3D 碰撞,您可以使用 2d 物理引擎。如果您想使用
Box3和isIntersectionBox保留您的解决方案,您唯一需要做的就是创建一个循环。您将所有对象保存在一个数组中,并在每一帧中检查所有对象是否与其中一个对象发生碰撞
标签: javascript three.js