如何用Unity创建一个的简单的hololens unity开发3D程序

一、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之前需要准备以下环境(以下为我准备的环境)
2、(有真机可以不用模拟器)
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菜单
以下是此项目的结构和内容? Input 目录&& & ? GazeManager.cs 用于快速集成凝视射线特性;&& & ? GestureManager.cs 用于快速集成手势识别特性;&& & ? KeywordManager.cs 用于快速集成语音命令特性;&& & ? CursorManager.cs 用于快速集成可视化凝视组件。&? Sharing 目录&& & ? Sharing Prefab 组件用于快速集成场景共享特性。&& & ? SpatialMapping 目录&& & ? SurfacePlane Prefab 组件用于描述和渲染真实世界表面;&& & ? SpatialMapping Prefab 组件用于快速集成空间映射特性;&& & ? RemoteMapping Prefab 组件用于快速集成远程空间映射信息导入特性;&? SpatialSound 目录&& & ? UAudioManager.cs 用于快速集成空间声音特性。&? Utilities 目录&& & ? Billboard.cs 用于实现跟随用户视线特性;&& & ? Tagalong.cs 用于实现跟随用户移动特性;&& & ? Main Camera Prefab组件用于快速集成 HoloLens 标准主摄像机。
四、构建场景
1、新建空白场景后,我们需要删除原有的 Main Camera 对象,同时从 HoloToolkit/Utilities/Prefabs 目录中拖拽一个 Main Camera Prefab 组件到场景中,这样就集成了满足 HoloLens 需求的基本。主摄像机。对于 HoloLens,将主摄像机渲染背景设为纯色,颜色设为 RGBA(0,0,0,0)。因为任何纯黑的颜色将会被 HoloLens 渲染为透明,以达到不遮挡现实世界的目的。此外,HoloLens 建议摄像机视角近距离为 0.85,这个距离最符合真实人眼的体验。同时主摄像机位置必须重置为世界零点,即 xyz(0,0,0),任何全息图像将会以此为原点在周边世界中绘制出来。
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 UnityE
using System.C
public class HoloTest : MonoBehaviour {
// Use this for initialization
void Start () {
// Update is called once per frame
void Update () {
public void OnSelect()
//随机变换物体颜色
gameObject.GetComponent&MeshRenderer&().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 颜色。
五、编译项目
1、为了满足HoloLens的需求,我们需要在 Player Settings 里面开启Virtual Reality Support,并在下拉列表中选中Windows Holographic,只有这样 HoloLens 才会将此应用渲染为3D应用,这一点十分关键。
2、同时从工具栏 Edit-&Project Settings-&Quality 选项卡中,将 UWP 平台默认画质设为Fastest。这是为了降低性能开销,官方推荐帧率为 60fps。&
3、Build Settings 视图中选择目标平台为 Windows Store,SDK 为 Universal 10,其他设置为如图所示,把Unity C# Projects勾上方便调试,点击 Build 按钮开始编译 UWP 项目。&
六、部署调试应用
使用 Visual Studio 打开编译后的 UWP 项目,在 Debug&(方便调试)选项上设置为x86(Hololens的系统类型,非计算机的)。&连接 HoloLens 到 PC,完成 Build 和 Deploy 后,我们在 HoloLens 中打开此应用。实际效果如图 所示。当我使用手势点击 Cube 时,它会随机变化颜色;而当我说出语音命令"test"时,Cube 仍会正常的变换颜色。
七、开发总结
使用 Unity 引擎开发 HoloLens 应用是非常容易的事情,大部分流程与开发 UWP 项目并无不同。但仍有不少需要注意的雷区和特殊要求,以下就是部分要注意的部分:&1. Main Camera 一定要按照官方要求配置,背景纯色且 RGBA 值为(0,0,0,0),这样才能避免遮挡现实内容;&2. Gaze 凝视特性需要我们使用 Raycast 来实现,注意处理射线未命中目标情形,默认凝视最远距离为 15 米,若是未击中物体,使用时可能会出现空引用异常;&3. 手势识别、拍照和语音命令等均需使用 Windows 特有 API,空间映射和场景匹配需要使用 HoloLens 特有 API;&4. 其他很多细节上的体验,例如可视化凝视组件、目标区域可视化指引组件,使用他们来给用户提示,可以帮助用户理解应用操作方法,提高使用体验。&
阅读(...) 评论()[作品发布]Unity不仅仅只有游戏!_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:58,303贴子:
[作品发布]Unity不仅仅只有游戏!收藏
趁着半场休息,水一贴。我做的是一款兼具工具类和教育类属性的安卓应用(土建方向)。结构大师旨在帮助工程师在移动端进行结构分析,便捷流畅的交互输入大大缩短了过去建立结构受力模型的时间。我们的功能很强大,不仅有静力学的受力分析,还包含了动力学、影响线、几何组成分析。同时,也是一款教育类应用,因为我们独特的人工智能学算法可以输出结构力学领域所有手算方法的解题步骤,以供在校的师生作为教习时的辅助。附视频,大家看不懂就跳过吧——视频来自:
火星时代unity3d,争当游戏大触,月薪过万小意思,手绘技能,概念设计,商业应用一步到位,你与u3d游戏特效设计师只差一步,赶快点击吧!
Unity对我们的项目帮助巨大——像我们这种非科班出身的工科男,Unity易上手,且支持C#,网上资源还多,非常适合我们。而且,土木这一块,实在是落后整个时代太多。昨天在和一个教授深入探讨互相项目的过程中,我感觉他们依然还是采用了十多年前的、一直用熟了的技术,他们更加看重的是解决工程上的需求,但互联网时代产品为王重视细节的思想尚不具备。或者,可以这么简单的理解,我们不知道给产品赋予逼格。就拿设计院里面市场占有率最高的软件PKPM来说,整个系统的用户体验、界面操作、UI风格放到大众软件里面那简直就是见光死的节奏,但在土木,由于其在计算上中国建科院研制的权威,占有率依然超过95%。(不过,感觉韩国厂商Midas的同类产品在中国似乎开始逐渐蚕食他们。)Unity这个引擎在目前游戏界绝对属于烂大街的项目,但是即使是我们搞计算机仿真的老师,估计听过它的不会到5%。但在我看来,Unity用在土木的许多小项目中简直是利器啊!而且,对我们来说极为强大的三维能力,这个逼格。。。(当然,房地产展示很多都用Unity来做了,不过那是你们计算机系的活。)可能我这个人比较喜欢花哨,所以在这方面强调了一点。
我目前的累计用户是1500(上线差不多7天),宣传成本是100元(贴吧超级账号*2+微博会员账号+1个月VPN)。一开始在二十个贴吧发了宣传帖,新增用户数每天稳步增长;之后,当我在知乎上发表了一篇逼文并动用人脉进行朋友圈推广后后,下载量以及微博关注量开始井喷——知乎截图:然后,再说一下目前的苦恼,就是辛苦做了一年的产品,发现这个小众的工具类应用与当下盛行的互联网思维格格不入,所以也不指望能够找到风投迎娶白富美了(诶,一年前还是太年轻了,以为技术上前无古人就能够吊的飞起。。。)只希望它能够在土建领域成为类似Unity里NGUI一般的存在。一个人再继续独立开发(另一个忙保研,请假一年),实在有些忙不过来,因为之后毕业要工作了。然后,用户普遍反映的问题是界面UI不够专业。所以,请问你们常说的美术外包是怎么样的一个流程?并且,之后我主打的肯定是IOS以及海外市场(自我感觉,目前老外的同类产品功能以及操作上面和我还无法比拟)。海外的推广我又完全陌生。。。最后,感谢Unity3d吧的各位了,大家回答了我的很多问题,有技术上的,还有生活上的。并且看到吧里这么多为了梦想而奋斗的开发者们,我也备受鼓舞!与君共勉。
产品棒棒棒~声音更棒棒棒~
我觉得我一定要召唤一直支持我的
非常不错。ui再优化些,再结合行业定制就可以产品化啦~
好流鼻啊~~~~~~~~
我也在思考如何在屋宇工程方面应用unity,现在我们公司做事的效率太低了。而且我相信unity配合微软即将推到市场的hololens,非游戏方面的应用会非常广阔
看不懂怎么用的
顶!现在正在为了能搞懂u3d而学习c#
未来Unity3d面向虚拟心理现实
赞一个 Unity进入任何领域都是好样的。。支持人工智能算法
厉害厉害 但是专业性太强
我肯定是用不上的 纯支持一个吧
腻害!顶一个
楼主学u3d多久了?这个制作多长时间?
简直炫酷得不行!!!!!卧槽卧槽卧槽
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 unity3d hololens 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信