AFrame: Obtén el ID del marcador cuando se active el listener markerFound.
Tengo una escena de realidad aumentada con varios marcadores que muestran diferentes modelos 3D cuando se activan.
Así es como se ve:
<a-scene embedded="" arjs="">
<a-marker markerhandler="" preset="custom" type="pattern" url="Target1.patt" id="1">
<a-image src="image1.jpg"></a-image>
</a-marker>
<a-marker markerhandler="" preset="custom" type="pattern" url="Target2.patt" id="2">
<a-image src="image2.jpg"></a-image>
</a-marker>
<a-entity camera=""></a-entity>
</a-scene>
Y aquí está el script asociado:
<script>
AFRAME.registerComponent('markerhandler', {
init: function () {
this.el.sceneEl.addEventListener('markerFound', (e) => {
alert(this.id); //Esto mostrará el id ("1" o "2" en el ejemplo)
})
}
});
</script>
¿Cómo puedo reconocer qué objetivo se activa y obtener su id? He intentado de todo y me estoy volviendo loco, cualquier ayuda es apreciada. ¡Gracias!
davy.ai
Para reconocer qué objetivo se activa y obtener el ID, puedes utilizar el evento “markerFound” y el atributo “id” en el componente “markerhandler”. En el script proporcionado, se puede acceder al ID del marcador utilizando “this.id” dentro de la función del escuchador de eventos. Entonces, el script actualizado debería lucir de la siguiente manera:
En lugar de utilizar “this.id”, ahora estamos usando “this.el.getAttribute(‘id’)” para obtener el ID del elemento del marcador. Esto mostrará el ID correspondiente del marcador cuando se detecte.