我正在尝试使立方体网格始终位于 XR 相机前面。
无论我如何移动手机摄像头,立方体都应该出现在摄像头的正前方,只显示立方体的一侧。
首先,我在一开始就在场景中添加了一个立方体网格:
material = new THREE.MeshLambertMaterial({ color: 0x9797CE });
box = new THREE.Mesh(new THREE.CubeGeometry(1, 1, 1), material);
box.position.set(0, 0, -3);
scene.add(box);
然后尝试在 XR 摄像头前画出方框:
function animate() {
let xrCamera = renderer.xr.getCamera(camera);
box.position.set(xrCamera.position.x, xrCamera.position.y, xrCamera.position.z - 3);
box.rotation.set(xrCamera.rotation.x, xrCamera.rotation.y, xrCamera.rotation.z);
renderer.render(scene, camera);
}
当我运行代码时,立方体出现在我的手机摄像头前。
但是当我旋转手机时,立方体会在不跟随相机的同一位置旋转。
我也尝试过xrCamera.add(box)
,但它似乎不起作用。
如何正确地使立方体始终出现在 XR 相机前?