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