Table of Contents

Mega Go 추적 대상 추가

本文介绍了如何添加和配置 Mega Go 的跟踪目标。

시작하기 전에

참고

以下内容及工具仅适用于使用 EasyAR Mega Go 开发 Unity 应用的过程。需要插件版本 >= 4003.1。

Mega Go 는 소프트웨어 개발에 지원하지 않습니다.

本文内容需要工程中已经导入如下 Unity 包:

  • com.easyar.sense

Mega Go 의 추적 대상

Mega Go 의 추적 대상은 MegaGoBlockController 구성 요소가 포함된 빈 개체로, Unity 에서 block 을 나타냅니다.

alt text

참고

com.easyar.mega 包을 가져오지 않은 경우 block 의 편집기 기능을 사용할 수 없지만 런타임의 추적 효과와 기능에는 영향을 미치지 않습니다.

추적 대상 만들기

Hierarchy 보기에서 공간을 마우스 오른쪽 버튼으로 클릭하고 메뉴 EasyAR Sense > Mega > Target : Mega Go Block 을 통해 Mega 의 추적 대상을 만들 수 있습니다.

alt text

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

ARSessionFactory.CreateController<MegaGoBlockController>();

추적 대상 구성

target 을 사용하기 전에 데이터 원본과 추적기를 구성해야 합니다.

target 데이터 원본 구성

추적 대상은 원본이 올바르게 구성된 후에만 식별되고 추적될 수 있습니다.

Hierarchy 보기에서 block 노드를 선택한 다음 block 의 Path Type 및 Path 를 입력할 수 있습니다.

스크립트에서는 구성 요소 MonoBehaviour.Start() 전에 Source 를 수정하여 block 의 원본을 설정할 수 있습니다.

block.Source = new MegaGoBlockController.FileSourceData(PathType.Absolute, path);

여기서

  • PathType 은 emg 파일 경로의 유형으로, 절대 경로(Absolute) 또는 프로젝트의 StreamingAssets 경로(StreamingAssets)일 수 있습니다.
  • Path 는 emg 파일의 경로입니다. PathType 이 Absolute 인 경우 파일 시스템의 절대 경로이며, PathType 이 StreamingAssets 인 경우 프로젝트의 StreamingAssets 폴더 아래의 상대 경로입니다.

emg 파일은 EasyAR 개발 센터 Mega Go 페이지에서 다운로드해야 합니다.

emg 파일이 클 수 있으므로 앱 패키지 크기가 너무 큰 경우 테스트 단계에서만 StreamingAssets 경로를 사용하고 공식 릴리스 시 절대 경로를 사용하고 리소스 패키지 또는 기타 방법을 통해 emg 파일을 앱이 액세스할 수 있는 파일 시스템 경로에 배치하는 것이 좋습니다.

target 에서 사용할 추적기 구성

추적 대상은 구성된 추적기에 의해 로드되고 추적됩니다.

중요

Mega Go 의 추적기는 한 번에 하나의 block 만 추적할 수 있습니다. 여러 block 이 동일한 추적기에 구성된 경우 마지막으로 로드된 block 만 사용됩니다.

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

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

block.Tracker = megaGoTracker;

Tracker 는 런타임에 언제든지 수정할 수 있으며, 로드/언로드는 세션이 실행되는 동안 발생합니다. Trackernull 로 설정하면 이 target 은 이전에 설정된 추적기에서 언로드됩니다.

참고

target 이 추적되기 위해서는 다음과 같은 몇 가지 중요한 조건이 있습니다.

  1. 해당 Source 에 해당하는 block 이 사용 가능한 상태여야 합니다(공식 데이터는 항상 오프라인으로 사용 가능하며, 테스트 데이터는 서비스에 해당 데이터가 있는 경우에만 사용 가능합니다).
  2. MegaGoBlockController.Source 의 파일이 올바르게 로드되어야 합니다.
  3. 파일이 로드된 후 다른 block 에 해당하는 파일이 로드되지 않아야 합니다.

추적 대상의 수명 주기

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

flowchart LR
  sstart((session 启动))
  sstop([session 停止])
  
  start("Target.Start")
  load("加载")
  tracking[["持续跟踪"]]

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

프로세스는 크게 다음과 같은 단계로 나뉩니다.

  • 로드: 추적 대상이 구성된 추적기에 의해 로드됩니다. 이는 target 자체의 Start() 및 세션이 시작된 후에 발생합니다.
  • 추적 프로세스: 추적 대상이 위치가 확인된 후 추적기는 대상이 언로드되거나 다른 대상이 로드될 때까지 대상의 위치와 상태를 지속적으로 추적합니다.
  • 언로드: 추적 대상이 추적기에서 언로드되며 추적기는 더 이상 대상을 추적하지 않습니다. 이는 세션이 중지되거나 target 이 추적기를 사용하지 않도록 설정된 후에 발생합니다.

후속 조치

관련 주제