本章要点:
- 获取并使用 EasyAR 的 Licence Key
- 将3D模型直接投放到场景中
1. 获取并使用 EasyAR 的 Licence Key
本章主要介绍如何在 Unity 编辑器中使用 EasyAR SDK 。教程中的 Unity 编辑器为 Mac 版,版本是5.6。根据 EasyAR SDK 官方文档中的“平台需求 / Unity 兼容性”:“ EasyAR 支持 Unity4(4.6以上)和 Unity5 ”。
EasyAR SDK 官方文档中的“平台需求”:
http://www.easyar.cn/view/docs/Getting-Started/Platform-Requirements.html
如果你的 Unity 版本过低需要更新的话,可以选择 迅雷等下载工具 进行快速下载,Unity 官网提供了大多数版本的种子( torrent link ):
Unity download archive page
https://unity3d.com/cn/get-unity/download/archive
关于下载和安装 Unity 的详细介绍可以参考下面的官方文档:
Downloading and installing Unity
https://docs.unity3d.com/Manual/InstallingUnity.html
通过下面的链接可以下载最新的 EasyAR SDK :
http://www.easyar.cn/view/download.html
“Unity × EasyAR 实战教程”系列中使用的 EasyAR SDK 的版本是1.3.1。
1.1. 导入 EasyAR SDK
首先,我们需要新建一个 Unity 工程,这是一个3D的工程(点这里,查看如何判断应该使用2D还是3D)工程名:UnityChanAR(也可以使用其他命名)。在即将开始制作的应用中,我们将会使用一个功能非常强大而且完全免费(需要确认是否可以用于商业目的)的3D模型—— Unity-chan ,这个模型可以从 Asset Store 里下载并导入工程。
打开 Asset Store 的方法是:在 菜单栏 中选择 Window > Asset Store 。想要将 Asset Store 窗口最大化,可以点击窗口右上角的标志:
在 Asset Store 中搜索关键字 “unity-chan” 即可找到相关的模型:
书归正传,接下来导入 EasyAR SDK 。Mac 用户通过官网下载 EasyAR SDK ,解压后会得到一个 “EasyARSDK” 文件夹,再将该文件夹下的 unity / EasyAR.unitypackage 文件导入项目中即可。
关于导入资源( Asset )的详细说明可以参考下列文档:
- Importing from the Asset Store
https://docs.unity3d.com/Manual/AssetStore.html - Asset Packages
https://docs.unity3d.com/Manual/AssetPackages.html - Importing Assets
https://docs.unity3d.com/Manual/ImportingAssets.html
1.2. 申请并使用 Licence Key
接下来,我们需要对 EasyAR SDK 进行简单地配置。
首先是在 Unity 编辑器中进行的操作:
- 将 Assets / EasyAR / Prefabs 文件夹内的 EasyAR_Startup 拖拽到 Hierarchy 视图中
- 删除场景中自带的 Main Camera( EasyAR_Startup 中包含了一个具有 Camera 功能的子对象—— RenderCamera )
关于 Unity 编辑器的界面,可以参考以下文档,对各个部分做一个大概了解:
Learning the interface
https://docs.unity3d.com/Manual/LearningtheInterface.html
编辑器界面中的各个窗口和视图是可以任意进行重新布置的,上面截图中的界面跟默认的 Unity 界面不同。界面的个性化设置可以参考以下文档:
Customizing Your Workspace
https://docs.unity3d.com/Manual/CustomizingYourWorkspace.html
EasyAR_Startup 是一个预设( Prefab ),这是一种特殊的游戏对象( GameObject )。关于游戏对象和预设的说明可以参考一下文档:
-
GameObjects
https://docs.unity3d.com/Manual/GameObjects.html -
GameObject Class
https://docs.unity3d.com/Manual/class-GameObject.html - ** Prefabs**
https://docs.unity3d.com/Manual/Prefabs.html
然后,我们要在 EasyAR 的官网申请 Licence Key ,用来激活 EasyAR SDK 。
- 在官网注册后登陆自己的账号,选择“开发”界面
- 点击“创建应用”,不要忘记 BundleID / PackageName
- 点击“显示”,查看生成的 Licence Key
最后,我们回到 Unity 编辑器中,把申请好的 Licence Key 复制粘贴到下图的输入框里就行了:
官网也提供了相关文档,来说明如何配置 EasyAR SDK :
配置EasyAR Unity SDK
http://www.easyar.cn/view/docs/Getting-Started/Setting-up-EasyAR-Unity-SDK.html
2. 将3D模型直接投放到场景中
在上面的 配置EasyAR Unity SDK 这篇文档中提到了如何使用 ImageTarget ,关于这一部分内容,我们会在后面的教程里学习。在本章中,我们需要 EasyAR 在启动之后,直接把3D模型投放到场景里。
2.1. 将 unitychan 预设添加到场景中
下载并导入 Unity-chan 模型之后,在 Assets / UnityChan / Prefabs 文件夹下可以找到 unitychan 预设,然后,直接把这个预设添加到场景中即可。
接下来,我们切换到 Game 视图,然后将 unitychan 的 Transform 组件调整为下面的样子:(也可以调整为自己希望的大小和位置)
调整好之后,我们会在 Game 视图中看到:
关于 Scene 视图和 Game 视图的介绍可以参考以下文档。其中,在关于 Scene 视图的介绍中提到了一些非常实用的快捷键。
-
The Scene view
https://docs.unity3d.com/Manual/UsingTheSceneView.html -
The Game view
https://docs.unity3d.com/Manual/GameView.html
2.2. 测试并保存场景
测试的时候会自动启用电脑的前置摄像头。在屏幕右上角有两个按钮,点击后可以改变 unitychan 的动作:
好啦!测试完成以后,记得保存一下修改后的场景。我们可以在 Project 窗口中新建文件夹:Assets / UnityChanAR / Scenes / ,并保存场景:
2.3. 场景中的 UI
我们已经发现,Game 视图和实际运行的场景并不太一样:在实际运行的场景中出现了很多 UI ,这些 UI 就是 IMGUI ,关于 IMGUI 的介绍可以查看以下文档:
Immediate Mode GUI (IMGUI)
https://docs.unity3d.com/Manual/GUIScriptingGuide.html
在屏幕右上角出现的,用来切换 unitychan 动作的 UI 是由下列代码实现:(这段代码来自 IdleChanger 脚本)
void OnGUI () {
// 使用了函数 GUI.Box ()
// 参数一定义一个方框
// 参数二定义一个字符串,用于标题
GUI.Box(
new Rect(Screen.width - 110 , 10 ,100 ,90), // 参数一
"Change Motion" // 参数二
);
// 使用了函数 GUI.Button () ,当按钮被点击时,该函数返回值为 True
// 这样就可以执行 if 语句所包含的动作(调用 SetBool () 方法)
// 参数一定义了一个按钮的位置和大小
// 参数二定义了一个字符串,显示为按钮的名字
if(
GUI.Button(
new Rect(Screen.width - 100 , 40 ,80, 20), // 参数一
"Next" // 参数二
)
)
anim.SetBool ("Next", true);
// 这一段定义的是“Back”按钮
if(
GUI.Button(
new Rect(Screen.width - 100 , 70 ,80, 20),
"Back"
)
)
anim.SetBool ("Back", true);
}
我们也可以参考以下文档来对照上述的脚本:
IMGUI Basics
https://docs.unity3d.com/Manual/gui-Basics.html
除了 IMGUI 之外,Unity 还提供了另一种基于游戏对象的 UI 系统—— UGUI ,本教程中主要介绍 UGUI ,这是一种功能更加强大也更为常用的 UI 系统。
Unity × EasyAR 实战教程: