Table of Contents

Mega 추적 대상 추가

이 문서에서는 Mega의 추적 대상을 추가하고 구성하는 방법을 소개합니다.

시작하기 전에

참고

다음 내용 및 도구는 EasyAR Mega를 사용하여 Unity 애플리케이션을 개발하는 과정에만 적용됩니다.

소프트웨어를 개발 중인 경우 Unity 에디터를 사용하여 주석 생성 및 업로드(소프트웨어 개발)를 참조하세요.

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 뷰에서 블록 노드를 선택한 후 블록의 ID와 이름을 입력할 수 있습니다.

스크립트에서는 MonoBehaviour.Start() 전에 Source를 수정하여 블록의 소스를 설정할 수 있습니다.

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

여기서

  • 블록 ID는 블록의 고유 식별자이며 필수 입력 사항입니다.
  • 블록 이름은 블록의 이름으로 필요에 따라 임의로 입력할 수 있으며, 일반적으로 식별을 위해 블록의 실제 이름을 입력하는 것이 좋습니다.

블록 ID와 이름은 EasyAR 개발 센터의 해당 위치 라이브러리에서 가져올 수 있습니다.

위치 라이브러리에 블록 데이터가 없는 경우 위치 라이브러리에 필요한 블록 추가를 하고 클라우드 위치 라이브러리 유효성 검사를 다시 확인해야 합니다.

Target 사용을 위한 트래커 구성

추적 대상은 구성된 추적기에 의해 로드되고 정확하게 위치가 확인된 후 추적됩니다.

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

스크립트에서는 Tracker를 수정하여 block의 추적기를 설정할 수 있습니다.

block.Tracker = megaTracker;

Tracker는 런타임에 언제든지 수정할 수 있으며, 로드/언로드는 세션 실행 중에 발생합니다. Trackernull로 설정하면 해당 target은 이전에 설정된 추적기에서 언로드됩니다. 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 

흐름은 대략 다음과 같은 단계로 나뉩니다.

  • 로드: 추적 대상이 구성된 추적기로 로드됩니다. 이는 target 자체의 Start() 및 session 시작 후에 발생합니다.
  • 추적 과정: 추적 대상이 찾아지면 추적기는 다른 목표가 찾아질 때까지 대상의 위치와 상태를 지속적으로 추적합니다.
  • 언로드: 추적 대상이 추적기에서 언로드되며, 추적기는 더 이상 대상을 추적하지 않습니다. 이는 session이 중지되거나 target이 추적기를 사용하지 않도록 설정된 후에 발생합니다.

후속 단계

관련 주제