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 节点后选择 session 中的 Mega Go Tracker

在脚本中,可以修改 Tracker 以设置 block 的跟踪器。

block.Tracker = megaGoTracker;

Tracker 可以在运行时随时修改,加载/卸载会在 session 运行时发生。如果设置 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() 及 session 启动之后。
  • 跟踪过程:跟踪目标被定位到之后,跟踪器会持续跟踪目标的位置和状态,直至目标被卸载或另一个目标被加载。
  • 卸载:跟踪目标被从跟踪器中卸载,跟踪器不再跟踪目标。这会发生在 session 停止或 target 被设置为不使用跟踪器之后。

后续步骤

相关主题