Hololens开发学习笔记-Gaze眼动跟踪

简介

Gaze顾名思义——凝视。也可以说眼动跟踪,Hololens可以识别眼球注视的角度来发射出一条射线,来识别眼球所凝视到的物体,开启Gaze之后会有个小圆点,原点触碰到的物体会产生相应的事件。

配置

基础的设置就不赘述了。

配置Mixed Reality Toolkit,菜单栏Mixed Reality Toolkit>AddToSenceAnd..把mrtk配置文件添加到项目中;

1、配置眼动跟踪文件

Hierarchy中选择Mixed Reality Toolkit,在Inspectors中点击Copy&Custom;

继续在Inspector中,inspector>向下的左侧菜单Input>InputDatePorviders>WindowsMixedRealityEyeGazeDataProvide。Type设置为Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input,Platform设置为Windows Universal;

找到Clone,克隆当前配置文件,然后勾选Smooth Eye Tracking

2、添加模拟器支持(如果真机可忽略)

继续在Inspector中

选择Input>InputDateProviders>InputSimulationService,勾选上SimulateEyePosition;

至此眼动跟踪配置完成

为Cube添加眼动跟踪

在hierarchy中新建一个Cube;

选中cube,在inspector中点击AddComponent。搜索添加EyeTrackingTarger脚本;

在EyeTrackingTarger脚本中点击whileLookingAtTarget下面的加号添加一个事件,将cube拖入到响应事件中,后面选择MeshRender>Material material,然后拖入一个自定义的材质球;

在EyeTrackingTarger脚本中点击OnLookAway下面的加号添加一个事件,将cube拖入到响应事件中,后面选择MeshRender>Material material,然后拖入一个与上一步骤不同的自定义的材质球;

运行

基本的构建不在此赘述

file>buildSetting ,build项目

构建完成之后在VS中打开项目

重点来了!!!

直接从unity中构建出来的项目,在VS运动到Hololens中之后,眼动跟踪是不支持的,也无法找到眼动跟踪的光标,这个需要在VS中设置一下(此问题卡了我很久)。

VS中打开项目之后,解决方案资源管理器(SearchSolutionExplod...)>你的项目名称(UnityData和ilcpp)>Package.appxmanifest;

方法1、双击打开Package.appxmanifest文件,选择功能(Capabilities),找到“注视输入”(GazeInput),勾选;如图

Hololens开发学习笔记-Gaze眼动跟踪

方法2、找到你保存VS项目的文件夹,打开你项目名称的文件夹找到Package.appxmanifest文件,单独用vs打开此文件,在Capabilities文件夹下添加如下代码    <DeviceCapability Name="gazeInput"/>

Hololens开发学习笔记-Gaze眼动跟踪

然后运行,即可在hololens真机中体验眼动跟踪功能了。