三.js ".getWorldPosition() target is now required"错误消息

标签 three.js

我一直用它来查找相机视线范围内的所有物体。

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/

相关文章:

javascript - 从 A-Frame 或 JS 更新 Collada (.dae ) 文件代码

三.js : Very first setup. ..?

javascript - 在运行时更改 Three.js Material 纹理会引发错误

javascript - THREE.js 对象不会旋转

c++ - 最接近three.js的完整原生库是什么?

three.js - 使用 OrbitControls 限制相机方位角

javascript - WebGL 中的结束 <li> 标签

three.js - ThreeJS 上的球体冒名顶替者

javascript - 如何获取构建 3D 对象的三 Angular 形数组?

javascript - 在将网格体添加到 Three.js 中的场景之前,如何设置网格体的位置