6

在一个场景中,我尝试在运行时更改我的相机位置。DOM 属性发生变化,但相机没有移动。

我错过了什么?

我的js代码: document.querySelector('#myCameraPosition').setAttribute('position', '0 0 0');

我的场景:

    <a-entity id="myCameraPosition" position="0 0 50">
        <a-entity id="myCamera" camera look-controls keyboard-controls>
        </a-entity>
    </a-entity>
4

5 回答 5

8

在相机周围创建一个包装实体:

<a-entity id='cameraWrapper' position="0 0 0">
  <a-camera></a-camera>
</a-entity>

然后改变包装器的位置:

document.querySelector("#cameraWrapper").object3D.position.set(1, 1, 1);
于 2016-08-15T18:59:31.400 回答
2

必须将“look-controls”设置为 false 以进行 javascript 旋转控制,否则将无法正常工作:

function resetView(el){
  el.setAttribute('look-controls','false');
  el.setAttribute('rotation',{x:0,y:0,z:0});
  el.setAttribute('look-controls','true');
}
于 2017-01-17T10:08:37.033 回答
1

在下面的示例中,我可以更改相机实体父级的位置,它可以按预期工作:

https://aframe.io/examples/showcase/helloworld/

是否有任何 openearthview 或加速组件写入相机实体父级的位置?他们可能会改写它的立场。

于 2016-04-17T14:59:03.027 回答
1
document.getElementById('myCameraPosition').setAttribute('position', {x:0, y:0, z:0});

或者

document.querySelector('#myCameraPosition').setAttribute('position', {x:0, y:0, z:0});
于 2018-07-19T18:53:26.330 回答
0

当涉及到位置时,您可以直接更改相机位置(与需要包装实体的旋转不同)。所以

document.getElementById('myCameraPosition').setAttribute('position', {x:0, y:0, z:0});

应该管用

于 2018-10-24T09:01:25.503 回答