我现在为此苦苦挣扎了几天,最后我放弃了,决定问你。我正在尝试进行简单的对象检测,并且由于 inetersectScene 已被非递归的 intersectObjects 替换,因此我正在创建一个新数组,其中存储了我想要与之交互的所有对象。我正在尝试使用纯网格和object3d,但它对它们都不起作用。然后我将我的数组传递给 intersectObjects 函数,但返回的数组始终为空。
这是一些代码:
// Translate page coords to element coords
var offset = $(this.renderer.domElement).offset();
var eltx = pagex - offset.left;
var elty = pagey - offset.top;
// Translate client coords into viewport x,y
var vpx = (eltx / this.container.offsetWidth) * 2 - 1;
var vpy = -(elty / this.container.offsetHeight) * 2 + 1;
var vector = new THREE.Vector3(vpx, vpy, 0.5);
this.projector.unprojectVector(vector, this.camera);
var ray = new THREE.Ray(this.camera.position,
vector.subSelf(this.camera.position).normalize());
//console.log(ray);
var intersects = ray.intersectObjects(this.intersectedList);
console.log(intersects.length);
有任何想法吗?