Seguimiento de códigos QR
Antes de empezar aquí, se recomienda echar un vistazo a nuestro artículo de información general de seguimiento de código QR que contiene información general, una tabla de soporte técnico de dispositivos y procedimientos recomendados.
Detección de códigos QR
Adición de la funcionalidad de cámara web
Deberá agregar la funcionalidad webcam
al manifiesto para detectar códigos QR. Esta funcionalidad es necesaria, ya que los datos de los códigos detectados en el entorno del usuario pueden contener información confidencial.
El permiso se puede solicitar llamando a QRCodeWatcher.RequestAccessAsync()
:
C #:
await QRCodeWatcher.RequestAccessAsync();
Se debe solicitar el permiso antes de construir un objeto QRCodeWatcher.
Aunque la detección de código QR requiere la webcam
capacidad, la detección se produce mediante las cámaras de seguimiento del dispositivo. Esto proporciona un FOV de detección más amplio y una mejor duración de la batería en comparación con la detección con la cámara foto/vídeo (PV) del dispositivo.
Puede usar la API de detección de código QR en Unity sin importar MRTK mediante la instalación del paquete NuGet mediante NuGet para Unity. Si desea hacerse una idea de cómo funciona, descargue la aplicación de Unity de ejemplo. La aplicación de ejemplo tiene ejemplos para mostrar un cuadrado holográfico sobre códigos QR y datos asociados, como GUID, tamaño físico, marca de tiempo y datos descodificados.
Uso de OpenXR
Al usar el complemento OpenXR, tome el SpatialGraphNodeId
de la API QR y use la Microsoft.MixedReality.OpenXR.SpatialGraphNode
API para localizar el código QR.
Como referencia, tenemos un proyecto de ejemplo de seguimiento QR en GitHub con una explicación de uso más detallada para la SpatialGraphNode
API.
Obtención del sistema de coordenadas para un código QR
Cada código QR detectado expone un sistema de coordenadas espaciales alineado con el código QR en la esquina superior izquierda del cuadrado de detección rápida en la parte superior izquierda:
Cuando se convierte en coordenadas de Unity, el eje Z señala el papel y se deja a la izquierda.