Я пытаюсь сделать кубик мной sh, чтобы он всегда располагался перед камерой XR.
Независимо от того, как я перемещаю камеру телефона, куб должен появляться прямо перед камерой, показывая только одну сторону куба.
Во-первых, я добавил куб себе sh в сцена в начале:
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?