Appearance
如何使用 Tracking 2D 功能
TIP
本章节将指导开发者通过 SDK 搭建一个 Tracking 2D 的 demo;
TIP
SDK 2.6.0 升级为 2.7.0 之后,对‘Tracking2DManager’预设体进行了修改,移除了其中 CopyStreamingAssets 组件,因其功能并非 SDK 必备组件,因此 Android 对 Asset 资源的访问限制,需要开发者进行关注,如 2.6.0 直接升级 2.7.0,或者直接使用 2.7.0 从零使用 2D 跟踪功能的时候,参考本文的步骤 7 和步骤 8
- 导入 SDK 资源包
- 删除场景中的 MainCamera
- 为场景添加 6Dof 能力:Heirarchy 视图中右键空白处,依次选择:XRAbilities - SpatialTracking,将在场景中自动创建 CameraRig
- 基于 AROS 开发的应用还需要为场景添加 AROS 系统交互能力:Heirarchy 视图中右键空白处,依次选择:XRAbilities - Additional... - SystemManager,将在场景中自动创建 SystemManager
- 创建 Tracking 2D Manager:Heirarchy 视图中右键空白处,依次选择:XRAbilities - Tracking2D,将在场景中自动创建 Tracking 2D Manager
- 导入 2D Marker 算法配置工具
Step1: Step2: Step3: https://gitlab.com/InsightAR/ezxrcore/ezxrtools.git
生成算法配置
- 打开 Tool
TIP
支持配置多个识别图,每次识别只会成功识别最优的一个结果
- 编辑 2D Marker 信息
说明:图片长边尺寸为图片打印后的实际物理尺寸,请填写正确以保证识别效果;
- 修改 texture 类型
TIP
此项配置若不设置,可能会导致识别图自动被裁切等操作,最终影响识别效果
- 导出算法配置包(选择创建一个新目录,以防清空原目录资源)
备注:
- 资源包可以放在设备存储中其他可访问的位置,不一定要放置在 Unity StreamingAssets 中,保证初始化 Tracking2DManager 初始化传入的路径正确且资源无误也是可以的。
- 本文档的示例是将算法配置资源放在 StreamingAssets(Unity StreamingAssets 是存放资源的目录,对应 Android 应用的 assets 目录,资源的访问需要借助 Android AssetManager 进行解压),SDK 也提供了 CopyStreamingAssets.cs,用于最简单的资源解压到应用私有目录的功能,如 SDK Sample Tracking2D 中,CopyStreamingAssets 完成复制工作后,会由 OnCopyCompleted 回调通知(下图)
- 另外 SDK 在导入工程的时候,会自动从“Assets/.../Demos/Tracking2D/xxxx”复制到“Assets/StreamingAssets/Tracking2D/xxxx”,因此开发者使用自己的资源时,应当创建新的目录,以避免被 SDK Sample 的资源覆盖
- 如果使用 CopyStreamingAssets,需要指定需要复制的资源的相对路径:目标资源在 StreamingAssets 目录中的相对路径
- 补充 Tracking 2d Manager 初始化传配置包路径
备注:
- 初始化 Tracking2DManager 之后才可以进行图片的检测和跟踪,如上图,SDK Sample 中是在资源解压复制完成后进行初始化,并传入 2D 算法的资源路径
- 如果开发者自定义资源的放置位置,可以不经 CopyStreamingAssets 的回调直接初始化 Tracking2DManager,确保传入的路径正确,且资源正确即可
- 编译此场景到设备,运行后即可进行定位观察