2017-08-04 19 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