图像标记
本指南介绍关于在应用程序中跟踪图像标记的概念和工作流程。本指南展示了如何创建标记库以及如何向代理上的标记条件添加设置,还包括一个真实示例。 阅读本指南后,您应该会学习到必要的知识,可以将图像标记整合到 Unity MARS 应用程序中。
标记跟踪
标记提供一种有用的方法,可以在场景中锚定某个位置以进行 AR 内容的本地化。 Unity MARS 使用当前通过 AR Foundation 公开的标记跟踪功能,从而允许创建内容来检测标记并将这个标记与姿态对齐。
创建标记库
要开始进行图像标记跟踪,首先需要一个标记(或图像)集合,必须将这些标记保存到库中。 MARS 会话游戏对象使用此库来检测在设备穿越的现实环境中出现的任何指定标记。
要创建库,请在 Editor 中选择 Project 中的一个文件夹,然后右键单击该文件夹以打开资源创建菜单。从该菜单,选择 Create > MARS > Marker Library。
这样会在选定的项目文件夹中创建一个库资源。 在资源的 Inspector 窗口中,可为要添加到库中的每个图像添加条目。 每个条目都需要引用导入的图像(Editor 将该图像视为纹理)以及该图像在现实世界中应有的物理大小。(可选)也可以添加标记名称。
以下截屏显示了一个具有 3 个条目的示例:
使用标记库
创建标记库后,可以在 Unity MARS 应用程序中开始使用该标记库。 为此,请在场景中选择 MARS 会话游戏对象并查看其 Inspector。 该组件具有一个 Marker Library 条目。可以将上面创建的标记库的引用拖到这个条目中,使其成为该会话的激活标记库。
标记条件
就像 Unity MARS 中的所有其他内容一样,您需要使标记可用于查询系统。 为此,您需要创建一个 MarkerCondition,并将其附加到代理。 此代理包含在满足此条件时在标记位置要创建的内容。 在此 MarkerCondition 中,可以选择要将哪个图像标记链接到所创建的代理(包含添加的标记条件)。
可以看到,要将图像标记设置为所选代理,必须向代理添加 MarkerCondition,然后单击从添加到 MARS 会话 (MARS Session) 游戏对象的标记库加载的可用图像之一。
此示例将一朵花用作该代理的图像标记。
从 MarkerCondition 选择图像时,您会看到有关所选图像标记的一些信息,例如它所属的纹理资源、可用于区分标记的标签,以及您想要使该标记与现实世界相匹配的物理大小。
Unity MARS 提供一组预设大小来匹配您的标记,但是如果需要,您也可以使用自定义大小。
将图像标记可视化
选择图像标记后,您可以立即在 Scene 视图中看到它,并将其物理大小与已附加到其中的 3D 对象进行比较。
注意:如果您有一个海报大小的图像标记,和一个例如像是立方体图元 (1m x 1m x 1m),则在运行该应用程序时可能看不到所附的游戏对象,因为您可能位于其内部。 在设计您的体验时,请始终记住游戏对象相对于现实世界的物理大小。
模拟图像标记
Unity MARS 可以在人工合成环境中模拟图像标记。通过模拟图像标记,您可以评估标记在不同现实情况下的行为方式,并在开发使用图像标记的 Unity MARS 应用程序时缩短迭代时间。
向环境添加人工合成标记
要将人工合成标记添加到当前打开的环境中,请单击 MARS Panel 上的 Synthetic Image Marker 按钮。
单击此按钮后,Unity MARS 在__环境层级视图 (Environment Hierarchy) 下创建__人工合成图像标记 (Synthetic Image Marker) 游戏对象。此游戏对象用作占位目的,用于匹配用户创建的图像标记。
操控人工合成图像标记
在环境中放置人工合成标记后,您可以像其他任何游戏对象一样移动和旋转该标记。 人工合成图像标记的设置方式与普通图像标记相同:选择该标记,然后从当前加载的库中选择要使用的图像。
要保存环境,请更改环境或重新加载模拟的环境。Unity MARS 将显示一个弹出窗口,询问您是否要保存当前的更改。
还可以保存对模拟环境的更改;为此,请在链接的环境预制件上应用预制件覆盖,操作方式与所有其他预制件实例相同。
注意:__如果您无法在环境中修改游戏对象,请确保将模拟设置设定为 __Environment 激活。
整合到一起
以下截屏显示了上面的示例场景,该场景位于已检测到此激活标记库中某个图像的位置。