Hololens Gaze 开发示例

开发Hololens应用是一件很酷的事情,广泛地说,开发AR也如此,你会感到你在设计未来,与未来对话。那么今天了我为大家分享在开发Hololens时如何实际运用到Gaze这一交互方式,在后面的教程也会分别带来手势,音频,语音这些交互方式的实例化应用。

ps:以下内容部分翻译自(https://mixed.reality.news/)并整理。

预览

https://v.qq.com/iframe/preview.html?vid=m0504gyudjp&width=500&height=375&auto=0

添加光源

完成本次案例需要你已经独立搭建Hololens + unity的开发环境,不懂得可以看看以前的文章---,

首先*载下**

HoloToolkit(https://github.com/microsoft/HoloToolkit-Unity)

HoloToolkit包含以下功能区域:

Input

Sharing

Spatial Mapping

Spatial Sound

Utilities

接着在HoloToolkit - > Input - > Prefabs文件夹中找到HoloLensCamera预制体的“Main Camera”。这个新相机是预先配置的,并附有便捷的“ManualGazeControl”脚本组件,可以让我们模拟Unity中的用户移动。

然后添加注视输入光标。要从HoloToolkit添加注视输入光标,我们需要遵循两个步骤

放置Gaze Manager脚本

将光标放在场景中

紧接着放置Gaze Manager脚本。如果Raycast拍摄全息图,则会将位置和法线设置为匹配交点。我们在场景中添加一个空的GameObject,并将其命名为“GameRoot”,如下图(Blocks为我们的一些交互模型,稍后会创建):

hololens开发实例,hololens使用说明

从HoloToolkit- >Input将GazeManager.cs脚本拖放到Hierarchy中的GameRoot对象中。

hololens开发实例,hololens使用说明

将光标放在场景中,光标是视觉指示的凝视。当我们的Raycast命中全息图时,我们需要显示这个光标来指示注视对象。

hololens开发实例,hololens使用说明

在HoloToolkit - > Prefabs - > Input将光标添加到对象层次结构中

hololens开发实例,hololens使用说明

hololens开发实例,hololens使用说明

hololens开发实例,hololens使用说明

游标管理器脚本来控制游标,CursorManager类使用Cursor GameObjects,并在击中全息图时显示适当的Cursor。这个命中由GazeManage Raycast计算。

hololens开发实例,hololens使用说明

创建3D模型

我们创建3个基础模型cube,sphere,Cylinder,然后对其参数进行一定的设置,可以参考如下:

•Cube - Position (0.5, 0, 1.5), Scale (0.1, 0.1, 0.025)

•Sphere - Position (0, 0, 1.5), Scale (0.1, 0.1, 0.1)

•Cylinder - Position (-0.5, 0, 1.5), Scale (0.1, 0.1, 0.1)

hololens开发实例,hololens使用说明

然后添加材质球

,改变其颜色。

hololens开发实例,hololens使用说明

hololens开发实例,hololens使用说明

实现交互

首先我们实现第一个功能,凝视sphere改变其颜色。我们创建一个脚本“OnFocusColorChanger”

hololens开发实例,hololens使用说明

ps:代码*载下**地址——

链接:https://pan.baidu.com/s/1o7EQorS

密码: d2re

然后将这段脚本挂到sphere上

hololens开发实例,hololens使用说明

运行测试:

hololens开发实例,hololens使用说明

hololens开发实例,hololens使用说明

接下来创建另一段新的脚本,实现Cylinder的大小形状改变,将其命名为“OnFocusScaler”

hololens开发实例,hololens使用说明

代码*载下**地址:

链接:https://pan.baidu.com/s/1hsCAPsK密码: jwh8

最后我们创建一个“OnFocusRotator”脚本实现cube的旋转。

hololens开发实例,hololens使用说明

代码*载下**地址:

链接:https://pan.baidu.com/s/1bpkuMtT密码: 2j6d

大家注意到三段脚本有个共同点,都运用到CountProgress这一线程,这是解决我们gaze某个物体后又过快gaze另一个物体时发生的一些意外或不好的体验,我们在CountProgress 中运用adeInTime和fadeOutTime来防止其发生。

好了,到这里我们就完成了这个demo,大家可以运行试试。

AR酱原创,转载务必注明

微信号AR酱(ARchan_TT)

AR酱官网:www.arjiang.com