2016-08-15 3 views
0

Ich habe folgende Komponente, die ich an alle Kameras in der Szene anschließe und Aktionen für jeden Prüfpunkt registriere, die Benutzer mit dieser Kamera eingeben können. Momentan funktioniert es, indem die Kameraposition relativ zum Startpunkt der Kamera überprüft wird, aber wie kann ich die Position der Kamera weltweit erreichen und sicherstellen, dass es sich um eine aktive Kamera handelt? Da scheint es, dass inaktive Kameras weiterhin Ereignisse aussenden, wenn einige Physik ihren Standort ändern.Wie kann ich die Kameraposition hören?

AFRAME.registerComponent('user-checkpoints', { 
    init: function() { 
    var self = this; 
    this.el.addEventListener('componentchanged', isOnCheckPoint); 
    // Is user in checkpoint 
    function isOnCheckPoint (evt) { 
     // We don't want such precision what event emits 
     if (evt.detail.name !== 'position' || (
     (evt.detail.oldData.x).toFixed(1) === (evt.detail.newData.x).toFixed(1) && 
     (evt.detail.oldData.y).toFixed(1) === (evt.detail.newData.y).toFixed(1) && 
     (evt.detail.oldData.z).toFixed(1) === (evt.detail.newData.z).toFixed(1)) 
    ) { return; } 

    // Position has changed enough to check it 
    self.LookForCheckPoint(evt.detail.newData.x, evt.detail.newData.y, evt.detail.newData.z); 
    } 
    }, 
    LookForCheckPoint: function (x, y, z) { 
    // All the chekpoints are checked here 
    console.log('x:' + x + ' y:' + y + ' z:' + z); 
    } 
}); 

EDIT: ich How to listen to camera's world position in A-Frame? Antwort für meine Frage aus anderen Thread bekam

Antwort

0

Sie können überprüfen, ob die Kamera, indem Sie aktiv ist:

el.getAttribute('camera').active === true

Verwandte Themen