Table of Contents

Target 상태 가져오기

Session 실행 중 target은 tracking 및 lost와 같은 상태 변화를 겪습니다. 다음 내용을 통해 target 상태 정보를 가져오고 사용하는 방법과 found 및 lost events를 사용하여 content 표시를 제어하는 방법을 알아봅니다.

시작하기 전에

  • ARSession introduction을 통해 session의 기본 개념, 구성 및 workflow를 이해합니다.
  • Target을 통해 target의 기본 개념, 상태 및 lifecycle을 이해합니다.

Target이 tracking되는지 판단

TargetController.IsTracked property를 사용하여 target이 tracking되는지 판단할 수 있습니다.

Target의 found 및 lost events 사용

TargetController.TargetFoundTargetController.TargetLost events를 사용하여 target이 tracking되거나 lost되는 상황을 처리할 수 있습니다.

예를 들어, 다음 코드는 target이 tracking될 때 비디오를 재생하고 target이 lost될 때 video playback을 일시 중지하는 과정을 보여 줍니다.

target.TargetFound += () =>
{
    if (player && player.gameObject.activeInHierarchy)
    {
        player.Play();
    }
};
target.TargetLost += () =>
{
    if (player && player.gameObject.activeInHierarchy)
    {
        player.Pause();
    }
};
주의

target을 수동으로 unload하지 않은 경우 session이 중지될 때 TargetController.TargetLost가 호출될 수 있습니다. session을 수동으로 중지하지 않은 경우 session의 OnDestroy 과정에서 호출될 수 있습니다. Unity의 OnDestroy 실행 순서는 보장되지 않으므로, event에서 사용하는 객체는 OnDestroy 중 이미 파괴된 객체에 접근하지 않도록 유효성을 검사해야 합니다.

다음 단계

  • active control policy는 target 아래 객체의 default show and hide policy와 필요에 따라 조정하는 방법을 소개합니다.