私はこれに数日間苦労していて、最終的にあきらめてあなたに尋ねることにしました。単純なオブジェクト検出を試みていますが、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);
何か案は?