HoloLens教程二-空间扫描、手势交互、物体碰撞案例

大家好,今天给大家带来一个HoloLens开发教程,涉及到空间扫描、手势点击交互、物体碰撞等效果实现和开发案例。

下面是这个案例实际Demo演示:

 

好了,闲话不说!我们开始。

这个实例首先也需要大家事先导入HoloLens ToolKits资源包。大家打开Unity->新建一个3d项目(这里命名为holonewworld)->将你下载好的HoloLens ToolKits中Asset文件夹下的文件拖入到asset中,如下图所示:

导入HoloToolKits

接下来,我们分两个主要部分讲解这个案例的:场景建模、空间扫描、视线标识效果、编辑发射场景动作脚本(支持语音、手势):

1 场景建模

新建一个Scene后,将系统自动生成的Main Camera删除,从HoloLens ToolKits中找到Main Camera替代(将这个拖入Hierachy):

maincamera

 

这里Main Camera的区别不再赘述,大家可以看之前的教程一。

接下来,新建一个场景Objects的容器,右键点击Hierarchy->Create Empty->修改名字为Container->设置Postion为Y -0.5 Z 2 (HoloLens中,你就看到这个容器在你前2米下方0.5位置,这样观看效果较好)

1Container设置

再右键新建一个Plane:

 

QQ图片20161113152336

 

设置Plane的属性为:

2 plane设置

 

在Asset中新建一个Material文件夹,用来保存材料,在这个文件夹下右键新建一个Material,颜色选择绿色:

3 Material

 

新建好材料后,命名为Green,用鼠标将Green拖动至之前新建好的Plane。这样在Plane的Inspector目录下就多出一个材料:

QQ截图20161113153305

然后新建一个Cube,在Hierarchy中右键新建一个Cube,属性设置如下图,同时增加Component Rigidbody,方法很简单,点击Add Component搜索Rigidbody,这样Cube就被赋予了刚体的属性:

4 cube 设置

 

然后我们复制Cube 两个,分别随意移动位置(在Plane上方即可),效果如下图:

QQ截图20161113154735

这样目录结构为:5 复制Cube

 

此时,点击Play,可以看到如下效果:

 

6 play

 

2 视线标识效果,可以将你的视线位置用红色方块标识出来。新建一个Cube,设置属性如下,新增红色材料:

 

 

7 创建 Cursor 物体

 

 

如何将实现位置标识效果加入,需要第三步脚本编辑。

3 脚本编辑。这里的脚本将实现三个主要功能:视线标识、手势控制和声音控制:

首先在Project中新建一个文件夹:Scripts,新建CannonBehavior的C#文件,双击后启动Visual Studio编辑器。根据如下代码(如需源码或者问题请加入HoloLens开发者专属群 418092645):

QQ截图20161113160522

 

其中void Update中:

void Updated()
{
if (GazeCursor == null) return;

var raycastHits = Physics.RaycastAll(transform.position, transform.forward);
var firstHit = raycastHits.OrderBy(r => r.distance).FirstOrDefault();

GazeCursor.transform.position = firstHit.point;
GazeCursor.transform.forward = firstHit.normal;
}

实现将你的视线落点在接触的第一个物体上标识出来的效果。保存之后,回到Unity中,将CannonBehavior脚本文件用鼠标拖动到Main Camera上,这时其Components位置新增一个Gaze Cursor,对应的是在脚本中声明的Public GameObject GazeCursor。如下图,将其模型定位第二部建立的视线落点效果:

 

8 设置 cursor

 

接下来,在Scripts文件夹中,新建SpeechHandler来实现声音控制。代码如下:

QQ截图20161113160531

 

这段代码很容易理解。

4 空间扫描

右键Hierachy新建一个Empty,在其中Add Component:

QQ截图20161113161609

 

这两个脚本均在HoloLens ToolKits可以找到,添加后,根据上图设定属性。其中Sphere Radius表示多远的位置可以扫描;Time Between Updates表示,多久扫描空间一次。Rendering Material可以用Wireframe,或者选择第一个选项Occulusion则为透明。

这样点击生成Build这个项目,方法在教程一中有说过,选择windows。这里注意勾选上Microphone:

2211

 

这样在真机上即可看到案例效果啦!

如需源码或者问题请加入HoloLens开发者专属群 418092645

未经允许不得转载:混合现实开发者 » HoloLens教程二-空间扫描、手势交互、物体碰撞案例

赞 (1)
分享到:更多 ()