當我在原點放置一個模塊時,它離我的傳感器很遠。我希望向前移動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