2017-05-29 124 views
0

我正在使用aframe-teleport-controls,我想知道追蹤用戶位置的最佳方式是什麼。跟蹤Aframe中傳送位置的最佳方式是什麼?

我一直在尋找,我發現了兩種方法來做到這一點。

1 - 我使用幾乎是用戶位置的遠程端口控制器的位置。

var teleportControls = el.closest('a-scene').querySelector('[teleport-controls]'); 
var worldPos = new THREE.Vector3(); 
worldPos.setFromMatrixPosition(teleportControls.object3D.matrixWorld); 
console.log(worldPos); 

2 - 我在場景中定義了一個a-camera元素,並使用他的位置。

var teleportControls = el.closest('a-scene').querySelector('a-camera'); 
var worldPos = new THREE.Vector3(); 
worldPos.setFromMatrixPosition(teleportControls.object3D.matrixWorld); 
console.log(worldPos); 

我不確定這是好的做法,我怎麼能聽到用戶改變他的位置?

感謝您閱讀本文。

回答

1

當用戶傳送(在source here中找到)時,控制器元素(不是相機)將發出teleport事件。檢測這些事件的最簡單方法是在事件冒泡時監聽場景元素。

sceneEl.addEventListener('teleport', function (e) { 
    console.log(e.detail.oldPosition, e.detail.newPosition); 
}); 
相關問題