在第一篇文章,我写了如何配置环境。 那么这一篇是实战,我们将创建一个属于自己的全息影像应用,看完这篇文章,你就可以说你给微软开发过App了…… 开发环境:Unity5.6 , VS2015 Update3 , HoIoLens emulator 1.打开Unity,新建一个场景名叫myFirstHoIoLensApp,点击创建 2.首先打开File下的Build Setting,安装Windows Store 3.保存场景,命名为firstScene 将Main Camera的Position设置为(0,0,0),也就是起始点的意思。因为这个摄像机在我们的HoIoLens 中,就相当于我们眼睛位置,我们眼睛看到的东西其实就是他看到的东西。 修改Main Camera下的几个属性,我在图上标注出来了,我决定在后面不再介绍这些基础的属性了,没必要写。 之所以把背景变成黑色是因为电脑在渲染的时候无法渲染黑色,所以黑色的区域在实际项目中就会是透明的样式。 4.点击第二张图中的Player Setting,点击windows store 找到Other setting,勾选图中的按钮 点击Publishing Setting 在下面找到这个属性面板:勾选几个我们常用的功能,后面写其他文章时也会用到,剩下的功能可以花点时间再去研究: SpatialPerception:空间锚以及SurfaceObserver Microphone:听写识别,键盘识别等 InterentClient:小娜语音识别 5.因为我们的项目最终要导入到UWP平台,所以设置SDK,Build Type 因为HoIoLens性能不够强的原因,我们把我们的项目质量调成最低,点击Edit下的Project setting下的Quality,选中Fastest。 6.在场景中新建一个Cube,设置位置和角度: 挂一个脚本在cube身上,让它绕X轴和Y轴一直旋转:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cubeRotate : MonoBehaviour {

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
    transform.Rotate(new Vector3(1, 1, 0));
}

}

7.保存场景,打开build setting,设置如下,点击build。[

](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080611-300x175.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080611.png) 等build结束,可以看到生成了一个VS 文件,双击用vs2015打开[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080612-300x102.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080612.png) 8.按照我图上的配置来: [![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080613-300x127.jpg)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080613.jpg) 9.运行项目,第一次失败了[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080614-300x134.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080614.png) 查看问题描述,原来是方法过时了[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080615-300x60.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080611-300x175.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080611.png) 等build结束,可以看到生成了一个VS 文件,双击用vs2015打开[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080612-300x102.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080612.png) 8.按照我图上的配置来: [![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080613-300x127.jpg)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080613.jpg) 9.运行项目,第一次失败了[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080614-300x134.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080614.png) 查看问题描述,原来是方法过时了[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080615-300x60.png)
我又仔细看了看,用新语句替代了过时的函数:

ApplicationView.GetForCurrentView().TryEnterFullScreenMode();

[

](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080616-300x107.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080616.png)好了,再次运行,成功了 注意,如果你的GPU不太好的话,要等几分钟,只要没报错就一定能运行,等着就行。 在这里你可以和小娜对话,因为HoIoLens本质上就是一台win10电脑 [![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080617-300x161.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080617.png)打开我们的应用:[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080618-300x263.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080618.png)动态效果如下(模型好像一开始做大了,不过还行):[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080619-300x146.gif)
](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080616-300x107.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080616.png)好了,再次运行,成功了 注意,如果你的GPU不太好的话,要等几分钟,只要没报错就一定能运行,等着就行。 在这里你可以和小娜对话,因为HoIoLens本质上就是一台win10电脑 [![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080617-300x161.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080617.png)打开我们的应用:[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080618-300x263.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080618.png)动态效果如下(模型好像一开始做大了,不过还行):[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080619-300x146.gif)
10.模拟器的一些操作: W,A,S,D 模拟移动 上下左右键 跟模拟移动类似 enter 确认键 按住Alt键并且用鼠标右键可以拖动画面 windows键可以在任何场景中调出主面板 用了两个小时,终于写完了…… 希望我写的内容你能明白,后面准备写点语音识别的