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),勾选;如图
方法2、找到你保存VS项目的文件夹,打开你项目名称的文件夹找到Package.appxmanifest文件,单独用vs打开此文件,在Capabilities文件夹下添加如下代码 <DeviceCapability Name="gazeInput"/>
然后运行,即可在hololens真机中体验眼动跟踪功能了。