博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3d Hololens MR开发入门
阅读量:5276 次
发布时间:2019-06-14

本文共 2556 字,大约阅读时间需要 8 分钟。

一、Hololens概述

Hololens有以下特性
1、空间映射借助微软特殊定制的全息处理单元(HPU),HoloLens 实现了对周边环境的快速扫描和空间匹配。这保证了 HoloLens能够准确地在真实世界表面放置或展现全息图形内容,确保了核心的AR体验。
2、场景匹配HoloLens 设备能存储并识别环境信息,恢复和保持不同场景中的全息图像对象。当你离开当前房间再回来时,会发现原有放置的全息图像均会在正确的位置出现。
3、自然交互HoloLens 主要交互方式为凝视(Gaze)、语音(Voice Command)和手势(Gesture),这构成了 HoloLens的基本输入要素。同时传统的键盘鼠标等设备也被支持,自然的交互方式更贴近人类习惯,提高了交互效率。
4、 通用应用HoloLens 平台的操作系统为 Windows Holograpic,同样基于 Windows 10 定制。所以Windows 10 UWP 通用应用程序可以顺利地在 HoloLens 上运行。这不仅降低了研发和迁移成本,也让开发效率能够大幅提升。当然,说了很多 HoloLens 独特的特性和优点后,HoloLens 开发者版本也存在一些亟待解决的问题,包括视野较窄、凝视体验不佳、抗光线干扰弱和重量续航等问题。 但瑕不掩瑜,HoloLens 带来了真正的混合现实体验,拥有着强烈的冲击感,未来将大有作为。
二、开发环境搭建
开发Hololens之前需要准备以下环境(以下为我准备的环境)
1、
2、
3、
4、Windows 10 SDK (10.0.14393.33) VS中进行安装
更加详细的环境配置可参考
三、集成HoloToolkit-Unity项目
在创建了标准 Unity 项目之后,我们需要集成微软官方提供的 HoloToolkit-Unity 项目。HoloToolkit-Unity 项目是微软官方的开源项目,用于帮助开发者快速开发 HoloLens 应用,能够快速为项目集成基本输入、空间映射和场景匹配等特性。
关于该项目的详细介绍,可以参考微软的开源项目
集成步骤
1、下载HoloToolkit-Unity代码 
2、使用unity打开HoloToolkit工程,右击Assets,导出Package
3、在自己的工程中使用HoloToolkit-Unity package
新建自己的Unity工程,Assets -> Import Package -> Custom Package 选择刚才导出的HoloToolket-Unity package, 导入成功后,可以看到HoloToolkit菜单
四、构建场景
1、新建空白场景后,我们需要删除原有的 Main Camera 对象,同时从 HoloToolkit/Utilities/Prefabs 目录中拖拽一个 Main Camera Prefab 组件到场景中
2、点击“ Create Empty” 创建一个空游戏对象,并将其命名为 Input,为 Input 对象添加核心脚本组件,分别为 GazeManager.cs、 GestureManager.cs、 HandsManager.cs 和KeywordManager.cs。这样就集成了凝视、手势和语音命令三大核心特性。对于凝视射线、手势识别和语音命令功能,均建议使用单例来进行管理,这样可以避免功能混乱,方便管理。同时为凝视设置可视化的指针,可以提高用户的交互体验和效率。
3、从 HoloToolkit/Input/Prefabs/ 目录下拖拽 CursorWithFeedback Prefab 组件到场景中。这样当凝视在全息对象时,其表面会出现可视化凝视组件。 当用户手势被识别到时,会出现一个蓝色的手掌图像,能够贴心的告诉用户可以操作了。
4、创建一个Cube对象并创建一个新的C#脚本,命名为 HoloTest.cs。

using UnityEngine;using System.Collections; public class HoloTest : MonoBehaviour {  // Use this for initialization void Start () {  }  // Update is called once per frame void Update () {  }     public void OnSelect()    {        gameObject.GetComponent
().material.color = new            Color(Random.Range(0, 255) / 255f, Random.Range(0, 255) / 255f,            Random.Range(0, 255) / 255f);    }}

5、HoloTest.cs 脚本的功能为随机更换对象的材质颜色,遵循 GestureManager.cs 中预设的OnSelect消息名称进入 Input 组件检视选项卡,为 KeywordManager.cs 组件配置语音命令。语音命令触发时将会执行相应的组件行为。 本例中,当我说出“ test”时,触发Cube的 OnSelect 方法,来随机改变 Cube 颜色。

6、为了满足HoloLens的需求,我们需要在 Player Settings 里面开启Virtual Reality Support,并在下拉列表中选中Windows Holographic,只有这样 HoloLens 才会将此应用渲染为3D应用,这一点十分关键。
五、编译运行
1、生成vs工程
2、打开vs工程,打开microphone权限,设置在模拟器中运行
3、运行,如下为在Hololens模拟器上的运行效果
按空格键选中cube,或者说出指令”test”, 触发OnSelect事件,cube的颜色将随机发生变化

转载于:https://www.cnblogs.com/zhaohongtian/p/6802093.html

你可能感兴趣的文章
了解keycode
查看>>
自测题.
查看>>
实现 memcpy
查看>>
配置router列表
查看>>
HDU 1698——Just a Hook——————【线段树区间替换、区间求和】
查看>>
用Backbone.js创建一个联系人管理系统(一)
查看>>
Could not parse configuration: /hibernate.cfg.xml
查看>>
中文词频统计及词云制作
查看>>
3237: [Ahoi2013]连通图 线段树分治
查看>>
尚学堂Spring视频教程(二):Spring控制反转
查看>>
Python学习笔记之函数式编程
查看>>
PHP的反射机制
查看>>
Python面向对象
查看>>
js正則表達式--验证表单
查看>>
不信任的 .exe 怎么办,用 Windows 沙盒啊!
查看>>
【郭林专刊】JSP中JSTL提供的函数标签EL表达式操作字符串的方法
查看>>
【郭林专刊】10个步骤让你成为高效的Web开发者
查看>>
jQuery选中该复选框来实现/全部取消/未选定/获得的选定值
查看>>
Linux网络编程——连接和面向连接的协议之间没有区别
查看>>
strcpy_s与strcpy对照
查看>>