Я пытаюсь сделать кубическую сетку всегда расположенной перед камерой 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?