MRTK(Mixed Reality Toolkit)
是微软为我们提供的混合现实开发工具包,旨在帮助我们加速开发混合现实应用程序。
基于 Unity 的 MRTK(MixedRealityToolkit-Unity) 提供了许多 API 来加速混合现实项目的开发,包括 HoloLens 和 IHMD。
项目的 GitHub 地址为:https://github.com/Microsoft/MixedRealityToolkit-Unity
在我写这篇文章时(2018-11-21)时,最新的 Relaese 版本为 Mixed Reality Toolkit 2018.9.0 (vNext Beta) ,仍然为 Beta 版,在配合 Unity 2018 2.x 使用的时候仍然会出现 BUG,因此我使用了HoloToolkit 2017.4.2.0 版本。
请下载 HoloToolkit-Unity
和 HoloToolkit-Unity-Examples
这两个 unitypackage 文件。
使用的先提条件和具体流程参考官方文档 GettingStarted,下面我简单叙述下:
Assets -> Import Package -> Custom Package…
,导入 HoloToolkit-Unity
导入过程中如果你的 Unity 大于 Unity 2017.4 LTS,会提示有些地方过期,选择自动升级GoAhead即可。
HoloToolkit-Unity-Examples 为官方提供的例子,在自己跟着文档学习的时候再导入。
Mixed Reality Toolkit
,再检查下 Project 面板的 Assets 目录下是否有 HoloToolkit
目录。如果都存在,至此安装完成。源码地址:https://github.com/jitwxs/blog_sample
下面开始 HelloWorld,这里演示一个 Hololens 开发笔记(1)——HelloWorld 中实现的立方体,并为其添加 Cursor 效果。
Mixed Reality Toolkit -> Configure -> Apply Mixed Reality Scene Settings
,即可一键切换,不再需要手动设置了。Assets -> HoloToolkit -> Input -> Prefabs
中添加MixedRealityCamera
预置体,并设置该相机:从 Assets -> HoloToolkit -> Input -> Prefabs
中添加 InputManager
预置体,从 Assets -> HoloToolkit -> Input -> Prefabs-> Cursor
中添加 CursorWithFeedback
预置体。Hierarchy 目录结构如下:
我使用了 CursorWithFeedback ,具有反馈功能,你也可以尝试使用 Cursor 目录下的其他 Cursor
InputManager
预置体,在右边的设置中,拖拽 CursorWithFeedback
预置体到 SimpleSinglePointerSelector
脚本的 Cursor 属性:MRTK 包下为我们提供了许多种 Camera ,它们的说明如下。
Unity camera that has been customized for Holographic development.
Camera capabale of rendering for HoloLens and occluded Windows Mixed Reality enabled devices.
MixedRealityCameraManager.cs exposes some defaults for occluded aka opaque displays Vs HoloLens. You can either use the defaults that have been set or customize them to match your application requirements.
For HoloLens:
For occluded aka opaque devices:
This prefab is used when you want to enable teleporting on mixed reality enabled occluded devices. In order to prevent the MainCamera position from being overwritten in the next update we use a parent GameObject.
Cursor 代表的就是我们的实现,它的位置就是我们所看的物体。MRTK 包中提供了以下几种 Cursor 的预制体,这几种的说明如下:
Name | Description |
---|---|
BasicCursor.prefab | Torus shaped basic cursor that follows the user’s gaze around. |
Cursor.prefab | Torus shaped CursorOnHolograms when user is gazing at holograms and point light CursorOffHolograms when user is gazing away from holograms. |
CursorWithFeedback.prefab | Torus shaped cursor that follows the user’s gaze and HandDetectedFeedback asset to give feedback to user when their hand is detected in the ready state. |
DefaultCursor.prefab | 3D animated cursor that follows the user’s gaze and uses the Unity animation system to handle its various states. This cursor imitates the HoloLens Shell cursor. |