Table of Contents

Mega 추적 대상 추가

이 문서는 Mega 추적 대상을 추가하고 구성하는 방법을 설명합니다.

시작하기 전에

참고

아래 내용과 도구는 EasyAR Mega로 Unity 애플리케이션을 개발하는 과정에만 적용됩니다.

미니 프로그램을 개발 중이라면 Unity Editor를 사용해 주석 만들기 및 업로드(미니 프로그램 개발)를 참고하세요.

Unity 애플리케이션을 개발하지 않지만 Mega 매핑 결과를 보고 싶다면, Mega 사용 가이드의 3D 실세계 메쉬 미리보기를 참고하세요.

Unity 애플리케이션을 개발하지 않지만 시뮬레이션 실행으로 위치 효과를 확인하고 싶다면, Mega 사용 가이드의 시뮬레이션 실행 효과 미리보기를 참고하세요.

이 문서의 내용은 프로젝트에 다음 Unity 패키지가 이미 가져와져 있어야 합니다.

  • com.easyar.sense

Mega의 추적 대상

Mega의 추적 대상은 MegaBlockController 컴포넌트를 포함한 빈 오브젝트이며, Unity에서 하나의 block을 나타냅니다.

alt text

참고

com.easyar.mega 패키지를 가져오지 않으면 block의 편집기 기능은 사용할 수 없지만, 런타임의 추적 효과와 기능에는 영향을 주지 않습니다.

설정에서 Mega 기능을 올바르게 활성화하지 않았다면 사용할 수 없습니다.

alt text

추적 대상 만들기

Hierarchy 뷰의 빈 공간을 우클릭한 뒤, 메뉴 EasyAR Sense > Mega > Target : Mega Block을 통해 Mega 추적 대상을 만들 수 있습니다.

alt text

스크립트에서는 ARSessionFactory.CreateController를 사용해 만들 수 있습니다.

ARSessionFactory.CreateController<MegaBlockController>();

추적 대상 설정

target 데이터 원본 설정

추적 대상은 원본이 올바르게 설정되어야만 인식되고 추적될 수 있습니다.

Hierarchy 뷰에서 block 노드를 선택한 뒤 block의 ID와 Name을 입력할 수 있습니다.

스크립트에서는 컴포넌트 MonoBehaviour.Start() 전에 Source를 변경해 block의 원본을 설정할 수 있습니다.

block.Source = new MegaBlockController.BlockInfoSourceData(id, name);

여기서

  • block id는 block의 고유 식별자이며, 반드시 입력해야 합니다.
  • block name은 block의 이름이며, 필요에 따라 자유롭게 입력할 수 있습니다. 일반적으로는 식별을 쉽게 하기 위해 block의 실제 이름을 입력하는 것이 좋습니다.

block id와 name은 EasyAR 개발 센터의 해당 위치 라이브러리에서 확인할 수 있습니다.

위치 라이브러리에 block 데이터가 없다면 필요한 Block을 위치 라이브러리에 추가한 뒤 클라우드 위치 라이브러리 유효성을 다시 확인하세요.

target이 사용할 tracker 설정

추적 대상은 설정된 tracker에 의해 불러와지고, 올바른 위치로 배치된 뒤 추적됩니다.

Hierarchy 뷰에서 block 노드를 선택한 뒤 session의 Mega Tracker를 선택할 수 있습니다.

스크립트에서는 Tracker를 변경해 block의 tracker를 설정할 수 있습니다.

block.Tracker = megaTracker;

Tracker는 런타임 중 언제든지 수정할 수 있으며, 불러오기/해제는 session 실행 중에 발생합니다. Trackernull로 설정하면 해당 target은 이전에 설정된 tracker에서 해제됩니다. block 로드는 가상 과정이므로 실패하지 않습니다.

참고

target이 추적되려면 몇 가지 핵심 조건이 있습니다.

  1. MegaBlockController.Source의 id가 MonoBehaviour.Start() 전에 올바르게 설정되어야 합니다.
  2. 해당 Source의 id에 대응하는 block이 위치 라이브러리에 존재해야 합니다.
  3. MegaBlockController.Tracker가 올바른 위치 라이브러리를 사용하도록 설정되어야 합니다.

추적 대상의 수명 주기

일반적인 추적 대상의 수명 주기는 다음과 같습니다.

flowchart LR
  sstart((session 시작))
  sstop([session 중지])
  
  start("Target.Start")
  load("불러오기")
  tracking[["지속 추적"]]

  sstart --> load --> tracking --> sstop
  start -. "Target.Tracker = tracker" .-> load 

흐름은 대략 다음 단계로 나눌 수 있습니다.

  • 불러오기: 추적 대상이 설정된 tracker에 의해 불러와집니다. 이는 target 자체의 Start()와 session 시작 이후에 발생합니다.
  • 추적 과정: 추적 대상이 위치되면 tracker는 해당 대상의 위치와 상태를 계속 추적하며, 다른 대상이 위치될 때까지 이어집니다.
  • 해제: 추적 대상이 tracker에서 해제되고, tracker는 더 이상 해당 대상을 추적하지 않습니다. 이는 session이 중지되거나 target이 tracker를 사용하지 않도록 설정될 때 발생합니다.

다음 단계

관련 주제