개발/Unity
유니티 AR - QR 코드, 바코드 인식하기 (Vuforia QR Code, Barcode Scanner)
피로물든딸기
2023. 6. 25. 20:01
반응형
참고
- https://library.vuforia.com/objects/barcode-scanner/barcode-scanner-in-unity
뷰포리아의 Barcode 오브젝트를 이용해 QR 코드를 인식해보자.
바코드 오브젝트에서 Advanced를 클릭하면 적용가능한 Type이 보인다.
여기서는 기본 설정대로 놔둔다.
이제 아래 API 문서를 참고하여 스크립트를 추가해보자.
https://library.vuforia.com/objects/barcode-scanner/barcode-scanner-in-unity
BarcodeOutlineBehaviour는 Vuforia에서 제공하는 바코드 아웃라인을 위한 스크립트다.
기본적으로 스크립트를 추가하면 Material과 두께를 설정할 수 있다.
게임을 실행하고 카메라로 QR 코드를 찾아보자.
인식가능한 QR 코드 주변에 Outline이 생기는 것을 알 수 있다.
이제 BarcodeCollider.cs를 추가하자.
인식한 바코드의 주소를 Update에서 로그를 찍도록 하였다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
public class BarcodeCollider : MonoBehaviour
{
BarcodeBehaviour mBarcodeBehaviour;
MeshCollider mMeshCollider;
void Start()
{
mBarcodeBehaviour = GetComponent<BarcodeBehaviour>();
if (mBarcodeBehaviour != null)
{
mBarcodeBehaviour.OnBarcodeOutlineChanged += OnBarcodeOutlineChanged;
}
}
void OnBarcodeOutlineChanged(Vector3[] vertices)
{
UpdateMeshCollider(vertices);
}
void UpdateMeshCollider(Vector3[] vertices)
{
if (!mMeshCollider)
{
mMeshCollider = gameObject.AddComponent<MeshCollider>();
mMeshCollider.cookingOptions = MeshColliderCookingOptions.None;
}
Mesh mesh = new Mesh();
mesh.vertices = vertices;
mesh.triangles = new int[] { 0, 1, 2, 0, 2, 3 }; // Creates 2 triangles
mMeshCollider.sharedMesh = mesh;
}
private void Update()
{
if (mBarcodeBehaviour != null && mBarcodeBehaviour.InstanceData != null)
{
Debug.Log(mBarcodeBehaviour.InstanceData.Text);
}
}
}
게임을 실행하고 QR 코드를 인식하면 해당 QR 코드의 URL이 콘솔에 나오게 된다.
Unity Plus:
Unity Pro:
Unity 프리미엄 학습:
반응형