我正在寻找在单独的网络工作者中执行冲突检测的方法。我假设.intersectObject是raycaster的函数。但是,看来不是吗?
在这种情况下如何检查相交的物体?
// Helicopter Collision Detection Web Worker
self.addEventListener("message", function(e){
const data = JSON.parse(e.data);
if (data.rayCasters !== undefined) {
for (let i = 0; i < data.collidableMeshList.length; i++) {
for (let n = 0; n < data.rayCasters.length; n++) {
console.log(data.rayCasters[n]);
// data.collidableMeshList[i].updateMatrixWorld()
const collisionResults = data.rayCasters[n].ray.intersectObjects( data.collidableMeshList[i], true )
// if ( collisionResults.length > 0 && collisionResults[0].distance < directionVector.length() ) {
if ( collisionResults.length > 0 ) {
console.log("Collision");
self.postMessage(true);
} else {
self.postMessage(false);
}
}
}
}
}, false);
我收到的错误:
helicopter-worker.js:12 Uncaught TypeError: data.rayCasters[n].ray.intersectObjects is not a function