2017-08-04 22 views
0

当我在原点放置一个模块时,它离我的传感器很远。我希望向前移动1米(1-in方向)。此外,我正在使用跟踪摄像头位置的组件,因此我不能将所有内容都包裹在<a-entity>中,并将其向前移动。我怎样才能改变原点的位置?Shift A-Frame Origin

组件:

AFRAME.registerComponent('info-panel', { 
    tick: function() { 
    var el = this.el; 
    var camera = document.querySelector('a-camera'); 
    var cpos = camera.getAttribute('position'); 
    var x = cpos.x; 
    var z = cpos.z; 
    var angle; 
    if (z === 0) { 
     if (x === 0) { 
     angle = 0; 
     } else if (x > 0) { 
     angle = 90; 
     } else { 
     angle = -90; 
     } 
    } else { 
     angle = (z > 0 ? 0 : 180); 
     angle += 180/Math.PI * Math.atan(x/z); 
    } 
    el.setAttribute('rotation', {x: 0, y: angle, z: 0}); 
    } 
}); 

场景:

<a-scene> 
    <a-camera></a-camera> 
    <a-panel info-panel></a-panel> 
</a-scene> 

回答

0

我不知道是否有这样的功能,
我会<a-entity>
包装之外的所有相机,使您可以定位'除了相机之外的所有'。

1

或者您可以使用包装实体来定位相机。

How do a place the camera first position

<a-entity position="0 0 5"> 
    <a-camera></a-camera> 
</a-entity> 
+0

这是更简单,然后我的选择,虽然我不喜欢包裹相机的任何实体,当我需要相机或cameraWrapper,(如重新定位到另一个区域例如),我倾向于进入人们在vive中四处走动时产生的意外偏移。重新定位整个场景与相机时,是否有明显的性能下降? –

+0

它确实会引起更多思考(例如,使用'camera.userHeight'),但它应该是可行的。拥有一个“摄像机装置”来保持摄像机和控制器以便它们一起移动,这是最佳实践。如果你做了像传送一样的东西,你只需要改变包装的位置。你看到什么抵消? – ngokevin