我一直用它来查找相机视线范围内的所有物体。
var raycaster;
raycaster.set( camera.getWorldPosition(), camera.getWorldDirection() );
var intersects = raycaster.intersectObjects(scene.children);
它可以工作,但我在控制台中看到这些错误。
THREE.Object3D: .getWorldPosition() target is now required
THREE.Camera: .getWorldDirection() target is now required
我尝试为此目的创建一个向量。
var rayvector = new THREE.Vector3();
raycaster.set(camera.getWorldPosition(rayvector), camera.getWorldDirection(rayvector));
警告现在已经消失,但 raycaster.intersectObjects(scene.children) 现在返回一个空数组。
最佳答案
感谢 bai 帮助我解决这个问题。 :)
我的问题是我对位置和方向使用相同的向量。当我使用两个单独的向量时,它起作用了。
var cameraPostion = new THREE.Vector3();
var cameraDirection = new THREE.Vector3();
camera.getWorldPosition(cameraPostion);
camera.getWorldDirection(cameraDirection);
raycaster.set( cameraPostion, cameraDirection );
关于三.js ".getWorldPosition() target is now required"错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63338784/