AR 기초용 인스턴트 게재위치 개발자 가이드

사용 방법을 알아보세요. Instant Placement API 또는 영구 레이캐스트를 사용할 수 있습니다.

기본 요건

기본 AR 개념을 이해합니다. ARCore 세션을 구성하는 방법을 알아보세요.

개념 이름

AR Foundation과 Unity용 ARCore SDK 아래 표에서 쉽게 참조할 수 있습니다.

AR 기초 Unity용 ARCore SDK
지속 레이캐스트 순간 게재위치
ARRaycastManager.AddRaycast(Vector2, float) Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
ARRaycast TrackableHit
(동등하지 않음) InstantPlacementPoint
ARRaycast.trackingState InstantPlacementPointTrackingMethod

기본 요건

이 가이드에서는 Unity를 이미 설치하고 구성했다고 가정합니다. 그렇지 않은 경우 AR Foundation용 ARCore 확장 프로그램 시작하기 참조하세요.

ARRaycastManager로 새 세션 구성

AR을 통해 즉시 게재위치 (영구 레이캐스트)를 사용할 수 있음 Foundation 패키지 다음 단계에 따라 장면을 설정합니다.

AR Foundation 4.x

  1. 사전 정의된 게임 객체 AR Session Origin를 추가합니다. AR Session입니다.

  2. AR Raycast Manager 구성요소를 AR Session Origin 게임 객체입니다.

Raycast Prefab이 null이 아닌 경우 ARRaycastManager 는 prefab을 인스턴스화하고 자동으로 해당 포즈를 ARRaycast

AR Foundation 5.x

  1. 사전 정의된 게임 객체 XR Origin를 추가합니다. AR Session입니다.

  2. 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.trackingStateTracking이 됩니다. 그렇지 않으면 Limited로 시작합니다. ARCore가 정확한 3D 포즈를 갖추면 Tracking로 전환됩니다. 추적 상태가 Tracking가 되면 이전 버전으로 되돌아가지 않음 Limited