Unity MARS 入门
本指南讲述如何使用 Unity MARS 创建简单的 AR 应用程序,并介绍了该包特有的一些术语(如需查看完整术语表,请参阅术语表)。此示例应用程序查找一个最小面积为 30x30cm 的表面,并在这个表面上放置一个球体。
本指南假定您以前没有使用 Unity MARS 的经验,并且不需要您编写任何代码。
安装
可以通过 Package Manager 安装 Unity MARS。
对于设备构建(Android、iOS、Magic Leap、Hololens),您需要额外的包:com.unity.mars-ar-foundation-providers
。此包依赖于 com.unity.xr.arfoundation@2.1.8
,并会在默认情况下将该版本包含在您的项目中。您还需要至少一个其他 XR 插件包,具体取决于目标平台。有关包版本和项目配置的建议,请参阅 MARS AR Foundation Providers 包中的文档。
Unity MARS 还包括对 Post Processing
的可选支持,有助于改进 Editor 中模拟的渲染。
有关 Unity MARS 中的图形支持的更多信息,请参阅图形页面。
安装 Unity MARS 时,内容示例将自动导入到 Assets 文件夹中。这些包括我们的内置模拟环境、模板和示例内容。强烈建议您在使用 Unity MARS 时将这些文件保留在项目中,并在版本控制中对它们进行跟踪。您可以使用 Package Manager UI 将示例重新导入或更新为包版本。
MARS 示例包中包含另一组更高级的模板(包括游戏模板和培训模板)以及其他可选资源。可从 Package Manager 窗口中安装它们。
创建您的应用程序
Unity MARS UI 概览
在开始之前,请花一点时间来了解 Unity MARS UI。Unity MARS 会在 Unity 的 Window 和 GameObject 菜单下添加自己的子菜单。此外,还会在 Project 视图的 Create 菜单中引入几个新的菜单项。
Unity MARS 工作流程中的两个主要界面区域是 Simulation 和 Device View 以及 MARS Panel。最好是在使用 Unity MARS 时将这两个视图保持打开状态。在创建应用程序时将使用到这两个视图。
如果这些视图中的任何一个视图没有打开,可从 Unity 的主菜单 Window > MARS > MARS Panel 或 Window > MARS > Device view 中打开相应的视图。
设置 Unity MARS Device View 和 Simulation View
为了充分利用 Unity MARS,请将 Device View 和 Simulation View 结合使用,将这两个视图并排或上下排列。Device View 模拟了在物理世界中四处移动的设备的视图。Simulation View 显示了执行 Unity MARS 应用程序的整个场景。
要同时打开 Simulation View 和 Device View,请从 Unity 主菜单(Window > MARS > MARS Panel 或 Window > MARS > Device view)中打开其中一个视图。然后,单击三点按钮以打开另一个视图。
最后,拖动窗口以使两者彼此相邻。
设置您的第一个代理
代理是场景中的一个游戏对象,代表一个现实世界中的对象,可让您的应用程序检测到并用作锚点,例如桌子、面部或猫。Unity MARS 将代理用于占位目的,在此处可以锚定内容,并在满足一组条件时在现实世界中显示这些内容。
单击 MARS Panel 中的 Proxy Object 按钮可创建新的代理。新的代理在场景中显示为菱形辅助图标。
有关代理和其他 Unity MARS 对象的更多信息,请参阅 Unity MARS 概念页面。
将内容附加到代理
将一个球体添加为您创建的代理游戏对象的子游戏对象。代理的子游戏对象将显示于代理在环境中检测到的位置。在开始时和失配时,子游戏对象被停用且不显示。Unity MARS 在找到匹配项时便会激活并显示子游戏对象。
添加平面大小条件
现在已经有了一个基本的代理游戏对象来锚定内容,接下来需要描述代理游戏对象代表什么样的现实世界对象。为此需要添加一些条件。
一个条件是定义现实世界对象单个属性(例如大小或颜色)的组件。条件在 UI 中没有典型的 Inspector;实际上,应该在 Entity Inspector 中处理条件。每个条件都包含一个特征和一个方法,这个方法用于评估该特征的值类型的单个实例与您指定的值匹配的程度。条件可以看成是为了 Unity MARS 匹配并放置代理而需要在环境中满足的规则。通常,为了构建现实世界对象的复杂定义,需要将多个条件附加到代理。条件应从一般到具体;例如,首先添加一个平面条件,然后定义该条件要匹配的大小和方向。
请向代理添加平面大小条件。这样可以确保仅在 Unity MARS 找到特定大小的表面时才显示代理。要添加此条件,请在 Proxy Inspector 中单击 Add MARS Component 按钮,然后选择 Condition > Plane Size。
这样就会向代理附加一个平面大小条件。需要配置这个条件,使检测到的表面大小至少为 30x30cm。为此,请禁用 Maximum Size 属性,并将 X 和 Y 的 Minimum Size 属性设置为 0.3。这样可确保所添加的球体适合于该表面。
在模拟环境中测试您的应用程序
在实际设备上测试内容之前,可以使用 Simulation View 进行迭代,并确保代理行为正常。
从 Unity 的主菜单 (Window > MARS > Simulation View) 中打开 Simulation View。Simulation View 可以演示代理游戏对象如何与虚拟环境中的模拟表面匹配。如需了解更多信息,请参阅 Simulation View 文档。
构建应用程序
现在已经在 Simulation View 中完成了所有设置和测试,接下来是将项目构建到 AR 设备的时候了。您需要将项目编译到选定的构建目标。此过程取决于应用程序的目标平台,并且 Window > MARS > Build Settings Check 将提供可能需要的受支持的包版本。如需了解更多信息,请参阅 Unity 的构建设置 (Build settings) 文档。
当应用程序运行时,如果 Unity MARS 发现一个大小至少为 30x30cm 的表面,它将在这个表面上放置一个球体。
其他功能
本教程仅讲述关于使用 Unity MARS 的基础知识。要进一步了解其他 Unity MARS 功能以及每个功能的方法和过程,请参阅以下指南:
如需了解更多高级主题,请参阅: