当我在原点放置一个模块时,它离我的传感器很远。我希望向前移动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>
这是更简单,然后我的选择,虽然我不喜欢包裹相机的任何实体,当我需要相机或cameraWrapper,(如重新定位到另一个区域例如),我倾向于进入人们在vive中四处走动时产生的意外偏移。重新定位整个场景与相机时,是否有明显的性能下降? –
它确实会引起更多思考(例如,使用'camera.userHeight'),但它应该是可行的。拥有一个“摄像机装置”来保持摄像机和控制器以便它们一起移动,这是最佳实践。如果你做了像传送一样的东西,你只需要改变包装的位置。你看到什么抵消? – ngokevin