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.TargetFound 및 TargetController.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와 필요에 따라 조정하는 방법을 소개합니다.