插件介绍

这篇介绍以及整个文档适用于与EasyAR Sense 4.3或更高版本一同发布的EasyAR Sense Unity Plugin。

对于 3.1 和 4.2之间的版本,请阅读 EasyAR Sense Unity Plugin 4.2 的文档。 老版本应阅读与EasyAR Sense文档在一起的说明, EasyAR Sense 1.0EasyAR Sense 2.0

EasyAR Sense Unity Plugin是一个建立在EasyAR Sense C# API之上的非常薄的封装,用于在Unity中暴露EasyAR Sense的功能。建议阅读 EasyAR Sense 文档 来理解EasyAR Sense是如何工作的。

用法

EasyAR Sense Unity Plugin 需要在 Unity 2019.4 或更高版本中使用。从4.3开始,我们终结了对Unity 5, Unity 2017, Unity 2018 的支持。

插件使用 Unity's package 组织文件,通过 tarball 文件分发, 可以通过Unity的 Package Manager window使用本地tarball文件安装插件

../_images/image_s0_1.png

在弹出的对话框中选择 com.easyar.sense-*.tgz 文件。

注意:在导入后, tgz 文件不能被删除或移动到另一个位置,因此通常需要在导入前将这个文件放在合适的地方。如果你希望与他人共享工程,可以将文件放在工程目录内,如果有使用版本管理,也需要加入。

版本划分

EasyAR Sense Unity Plugin 只能与同版本的EasyAR Sense一起使用,因此插件使用与EasyAR Sense相同的版本规则。

注意: EasyAR 不使用Unity所要求的 semantic versioning。主要区别是,minor版本号的变化也可能会引入不兼容的变化,虽然并不总是如此。

深入EasyAR Sense Unity插件

EasyAR Sense

插件的发布包内包含了EasyAR Sense的库文件,因此在使用插件的时候不需要再使用独立的EasyAR Sense。

插件中的EasyAR Sense库文件总是与同版本的EasyAR Sense的文件相同。如果你在尝试让插件运行在不同版本的EasyAR Sense上,必须保证csapi与库文件版本一致。

Scripts

插件设计为一个EasyAR Sense的薄封装,因此大多数脚本都是EasyAR Sense组件在3D场景中的控制器,在Unity环境中提供一些扩展能力。它可以辅助组织和连接EasyAR Sense的组件。

插件尽可能多的使用了Unity本身的功能,比如使用OnEnable/OnDisable来控制start/stop。大多数EasyAR Sense功能都可以不需要写脚本直接工作。插件并不封装EasyAR Sense的所有功能,EasyAR Sense的所有功能都由C# API直接暴露到Unity环境,并可以从MonoBehaviour中访问。

插件在ARAssembly中实现了一种对所有EasyAR Sense组件的典型的组装策略,同时在ARSession控制数据流。但这并不是EasyAR Sense的所有能力。通过EasyAR Sense API的强大灵活性,你可以重写这两个脚本从而实现自定义的AR工作流。

这个插件是开源的。代码中有所有公有类型和成员的中英文文档。你可以自由修改脚本以扩展渲染管线支持或创建自定义工作流。

你可以直接使用这个插件来快速创建AR体验,也可以参考插件代码来更加灵活和自定义的使用EasyAR Sense接口和功能,或是创建属于自己的Unity插件。

Editors

插件提供了一些编辑器功能以辅助开发,包括

  • 运行前 Inspector上可配置的脚本输入参数

  • 运行时控制,比如CenterMode 和 HorizontalFlipMode

  • license key和云服务配置的菜单项

  • image target的gizmo

  • 生成image target data的工具

Prefabs

Prefabs 可以辅助快速创建AR场景。如果你不熟悉EasyAR Sense,通常使用prefab会是很好的开始。但如果你已经可以在场景中手动安排脚本,那这些prefab并不是必须的。

Prefabs分为两种类型:

  • Primitive,在大多数情况下是空节点加上EasyAR Sense的一个组件,在构建自定义AR场景的时候很有用。

  • Composite,是primitives的组合,用于提供通常的使用场景,对不熟悉组装系统的新手来说非常有用。

Samples

插件的发布包含了展示不同EasyAR Sense功能以及不同算法组合工作的样例。

样例随插件包一起分发。可以使用 Unity的 Package Manager window 将样例导入工程中。参考 样例使用说明 获取详细信息。

插件的样例有一个启动器,你可以从启动器中打开大部分样例。如果要使用这个启动器,必须在Unity的build settings中添加启动器以及所有被其引用的场景。

插件的样例展示API如何使用以及EasyAR Sense如何工作,其代码逻辑是非常直接的。你可以基于样例构建自己的应用,或是复制部分样例代码到自己的工程中。但需要注意的是,样例并不是插件,所有样例的代码都不会保证在任何情况下可以不做修改而直接重用。

EasyAR Sense 及其Unity插件包含丰富的API。虽然样例中展示了重要的功能和使用,还是有很多API调用与功能使用情况未覆盖。如果样例工程不能满足项目需求,可以尝试先查看插件中MonoBehaviours的接口以及对应的EasyAR Sense组件功能。

从样例入手,它们会帮你理解EasyAR Sense及其 Unity Plugin 是如何工作的。