앱에서 Instant Placement API 또는 영구 레이캐스트를 사용하는 방법을 알아보세요.
기본 요건
계속 진행하기 전에 기본 AR 개념과 ARCore 세션 구성 방법을 이해해야 합니다.
개념 이름
AR Foundation과 Unity용 ARCore SDK 간에 특정 개념과 메서드의 이름이 다를 수 있습니다. 아래 표에 이러한 내용이 정리되어 있으니 참고하시기 바랍니다.
기본 요건
이 가이드에서는 Unity를 이미 설치하고 구성했다고 가정합니다. 설치되어 있지 않다면 AR Foundation용 ARCore 확장 프로그램 시작하기를 참고하여 설치 및 설정 단계를 확인하세요.
ARRaycastManager
으로 새 세션 구성
인스턴트 배치 (영구 레이캐스트)는 AR 기초 패키지와 함께 즉시 사용할 수 있습니다. 다음 단계에 따라 장면을 설정합니다.
AR Foundation 4.x
사전 정의된 게임 객체 AR Session Origin 및 AR Session를 추가합니다.
AR Raycast Manager 구성요소를 AR Session Origin 게임 객체에 추가합니다.
Raycast Prefab이 null이 아니면 ARRaycastManager
는 prefab을 인스턴스화하고 ARRaycast
의 포즈와 포즈를 자동으로 동기화합니다.
AR Foundation 5.x
사전 정의된 게임 객체 XR Origin 및 AR Session를 추가합니다.
AR Raycast Manager 구성요소를 XR Origin 게임 객체에 추가합니다.
Raycast Prefab이 null이 아니면 ARRaycastManager
는 prefab을 인스턴스화하고 ARRaycast
의 포즈와 포즈를 자동으로 동기화합니다.
객체 배치
새 ARCore 세션에서 ARRaycastManager.AddRaycast(Vector2, float)
를 사용하여 히트 테스트를 실행합니다.
public ARRaycastManager RaycastManager; // set from the Editor Inspector.
void Update()
{
Touch touch;
if (Input.touchCount < 1 || (touch = Input.GetTouch(0)).phase != TouchPhase.Began)
{
return;
}
if (EventSystem.current.IsPointerOverGameObject(touch.fingerId))
{
return;
}
ARRaycast raycast = RaycastManager.AddRaycast(touch.position, _estimateDistance);
if (raycast != null)
{
// You can instantiate a 3D object here if you haven’t set Raycast Prefab in the scene.
…
}
}
ARRaycast 추적 상태 모니터링
ARCore의 3D 포즈가 정확한 경우 ARRaycast.trackingState
는 Tracking
입니다.
그렇지 않으면 Limited
로 시작하고 ARCore가 정확한 3D 포즈를 취하면 Tracking
로 전환됩니다. 추적 상태가 Tracking
가 되면 Limited
로 되돌아가지 않습니다.