ARFoundation으로 ARCore 사용하기 - 이미지 트래킹
이미지를 찾아 이미지 위에 객체를 띄우는 작업을 해보겠습니다.
AR Tracked Image Manager를 사용하면 쉽게 가능합니다.
ARSessionOrigin 객체에 AR Tracked Image Manager를 컴퍼넌트로 등록합니다.
그리고 파일창(Project창)에 우클릭 -> Create -> XR -> ReferenceImageLibrary를 생성합니다.
Add Image를 클릭 후 원하는 이미지를 등록합니다.
빌드 후 모바일에서 테스트를 해보면 잘 나옵니다.
그러면, 이미지 트래킹 할때 생성되는 이벤트를 사용해 보도록 하겠습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;
public class TrackedImageHandler : MonoBehaviour
{
public ARTrackedImageManager arTrackedImageManager;
// Start is called before the first frame update
void Start()
{
arTrackedImageManager.trackedImagesChanged += ArTrackedImageManager_trackedImagesChanged;
}
private void ArTrackedImageManager_trackedImagesChanged(ARTrackedImagesChangedEventArgs obj)
{
List<ARTrackedImage> addedImages = obj.added;
List<ARTrackedImage> removedImages = obj.removed;
foreach (ARTrackedImage image in addedImages)
{
if (image.referenceImage.name == "sample_qr")
{
image.GetComponent<Renderer>().material.color = Color.red;
}
if (image.trackingState != TrackingState.None)
{
image.GetComponent<Renderer>().enabled = true;
}
else
{
image.GetComponent<Renderer>().enabled = false;
}
}
}
}
스트립트를 생성한 후 ARSessionOrigin 객체에 등록해 줍니다.
ARTrackedImageManager를 드래그해서 등록해 주면 됩니다.
빌드 후 테스트 해 봅시다.
'Unity > ARCore' 카테고리의 다른 글
ARFoundation으로 ARCore 사용하기 - ARPlaneManagerEvent (0) | 2020.10.28 |
---|---|
ARFoundation으로 ARCore 사용하기 - 객체를 중심으로 세상을 이동 (0) | 2020.10.27 |
ARFoundation으로 ARCore 사용하기 - 세션 상태 (0) | 2020.10.27 |
ARFoundation으로 ARCore 사용하기 - PointCloud, Plane Manager (0) | 2020.10.27 |
ARFoundation으로 ARCore 사용하기 - 바닥면에 객체 생성 (0) | 2020.10.27 |