本篇将如何开发,如果您喜欢请收藏、点赞、打赏~

博主使用环境:Unity 2018.3.7、   Win 10 x64、 HTC vive Pro

demo下载:下载地址

1.新建Camera

2.ViveSR--Prefabs中拖入预制体SRanipal Eye Framework,默认设置即可

3.ViveSR--Prefabs中拖入预制体 Gaze Ray Sample,调整Length Of Ray的数值,取决于你相机到物体之间的距离

4.新建Canvas,Render Mode改为 World Space,指定相机

5.在画布上添加几个Button,在按钮上添加Box Collider、 Rigidbody组件,取消重力

6.新建Layer,将Button设置为新建的Layer

7.自己写个触发事件或者Debug测试

8.运行unity ,校准视角,注视button查看效果。

PS:事件触发利用的是Ray射线,这一部分很简单,自行了解相关知识即可。

相关代码已经在我上传的DEMO里有写,非常详细,还有我汉化的备注。就不一一贴出来了。

//========= Copyright 2018, HTC Corporation. All rights reserved. ===========
using System;
using System.Linq;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;namespace ViveSR.anipal.Eye
{public class SRanipal_EyeFocusSample : MonoBehaviour{public UnityEvent ThereEvent;public GameObject CanvasTime;public static FocusInfo FocusInfo;//焦点信息private readonly float MaxDistance = 100;//最大距离private readonly GazeIndex[] GazePriority = new GazeIndex[] { GazeIndex.COMBINE, GazeIndex.LEFT, GazeIndex.RIGHT };//注视 编号 1.结合2.左眼 3.右眼private static EyeData eyeData = new EyeData();//眼部 数据private bool eye_callback_registered = false;//眼睛回调函数是否被注销private void Start(){//如果没有启用anipal的Eye模块。报错停止if (!SRanipal_Eye_Framework.Instance.EnableEye){enabled = false;return;}}private void Update(){//检查是否启用anipal的Eye模块的状态是否处于工作状态或者支持状态 if (SRanipal_Eye_Framework.Status != SRanipal_Eye_Framework.FrameworkStatus.WORKING &&SRanipal_Eye_Framework.Status != SRanipal_Eye_Framework.FrameworkStatus.NOT_SUPPORT) return;//使用回调获取数据 并且 回调事件没有被注销if (SRanipal_Eye_Framework.Instance.EnableEyeDataCallback == true && eye_callback_registered == false){SRanipal_Eye.WrapperRegisterEyeDataCallback(Marshal.GetFunctionPointerForDelegate((SRanipal_Eye.CallbackBasic)EyeCallback));eye_callback_registered = true;}//注销事件else if (SRanipal_Eye_Framework.Instance.EnableEyeDataCallback == false && eye_callback_registered == true){SRanipal_Eye.WrapperUnRegisterEyeDataCallback(Marshal.GetFunctionPointerForDelegate((SRanipal_Eye.CallbackBasic)EyeCallback));eye_callback_registered = false;}//调用眼部事件foreach (GazeIndex index in GazePriority){Ray GazeRay;//发射射线//int dart_board_layer_id = LayerMask.NameToLayer("NoReflection");//获取眼部注视的物体层级序号bool eye_focus;//眼部注册 bool//请求回调事件(返回序号【结合 左  右】返回射线 集中点信息 )if (eye_callback_registered)//向所有触发器发射 射线eye_focus = SRanipal_Eye.Focus(index, out GazeRay, out FocusInfo, 0, MaxDistance, eyeData);//左右眼、返回射线、射线信息、角度、距离、眼部信息(帧率等)elseeye_focus = SRanipal_Eye.Focus(index, out GazeRay, out FocusInfo, 0, MaxDistance);//启用眼部追踪开关if (eye_focus){if (FocusInfo.collider.gameObject.tag == "CanvasUI"){addTime += Time.deltaTime;CanvasTime.SetActive(true);CanvasTime.transform.position = FocusInfo.collider.gameObject.transform.position;CanvasTime.GetComponent<Image>().fillAmount += Time.deltaTime / 3;if (addTime >= 3f){ThereEvent.Invoke();//执行事件addTime = 0f;CanvasTime.SetActive(false);CanvasTime.GetComponent<Image>().fillAmount = 0;}}else{addTime = 0f;CanvasTime.SetActive(false);CanvasTime.GetComponent<Image>().fillAmount = 0;}}}}float addTime = 0f;//倒计时private void Release(){if (eye_callback_registered == true){SRanipal_Eye.WrapperUnRegisterEyeDataCallback(Marshal.GetFunctionPointerForDelegate((SRanipal_Eye.CallbackBasic)EyeCallback));eye_callback_registered = false;}}private static void EyeCallback(ref EyeData eye_data){eyeData = eye_data;}}
}

下一篇我们 写 英伟达最新的VRS,通过改变帧的不同区域的着色速率来提高渲染性能和质量。

眼球追踪技术 Unity+ HTC vive Pro + DroolonF1 (二)相关推荐

  1. 眼球追踪技术 Unity+ HTC vive Pro + DroolonF1 (一)

    本篇博客主要讲开发前的配置,如安装配置问题. 开发前需要准备: 1.DroolonF1设备 2.SR_Runtime驱动 3.SRinipal SDK 4.Unity开发引擎 建议2017.3版本以上 ...

  2. 眼球追踪技术 Unity+ HTC vive Pro + DroolonF1 (三)

    英伟达VRS,通过改变帧的不同区域的着色速率来提高渲染性能和质量. 下载SDK:Unity 应用商店>> Vive Foveated Rendering 导入插件:在摄像机上挂载ViveF ...

  3. unity HTC vive开发笔记二

    今天来介绍 HTC vive开发之操作GUI 也就是实现手柄对物体的点击 Step 1 安装好我们需要的两个插件之后 删除我们的mainCamera 加入 assets-steamvr-cameraR ...

  4. 处理Unity中使用HTC VIVE PRo的SRWork插件若干问题

    一.介绍 HTC VIVE Pro版本的头盔显示器可以使用一个叫SRWork的工具轻松制作混合现实功能的案例,如图1所示:功能很强大,目前据我写 图1 这篇文真为止已经更新到了SRWork0.9.7. ...

  5. HTC vive pro unity开发者软件/SDK版本注意事项

    HTC vive pro & unity开发:SteamVR.VRTK.VRIK.facial tracker开发环境配置注意事项 1.在unity中配置SteamVR plugin Stea ...

  6. 【SR Works】使用HTC Vive Pro结合SteamVR在Unity中制作MR内容

    HTC Vive Pro有两个前置RGB摄像头,官方出了一套SR Works SDK来借助这两个摄像头实现MR功能. 本篇的目标是,成功运行官方的MR示例,并结合SteamVR和SR Works SD ...

  7. 英伟达最新公布的眼球追踪技术

    [转] https://www.leiphone.com/news/201607/HaIUFO0MiSbjVE67.html 人眼能看到的范围是有限的,如果你看着黑板上方的挂钟,那么你的目光聚集的地方 ...

  8. 巨头都在追逐的眼球追踪技术,究竟能带来什么?

    [转] https://m.leiphone.com/news/201707/aC1AcagZdojMomUj.html 人的身体有视觉.听觉.嗅觉味觉.触觉和运动五大感知系统,然而我们所接收的80% ...

  9. 深度 | 巨头都在追逐的眼球追踪技术,究竟能带来什么?

    眼球追踪就是这样一个让机器人更懂人类的技术. 人的身体有视觉.听觉.嗅觉味觉.触觉和运动五大感知系统,然而我们所接收的80%的信息都来自于眼睛. 眼睛不仅是我们的输入主设备,也是我们的输出设备.俗话说 ...

最新文章

  1. postgreSQL源码分析——索引的建立与使用——Hash索引(1)
  2. OS X 使用技巧——在Finder窗口标题栏上显示路径
  3. 运输层--TCP协议(2)
  4. Navicat-数据库管理工具
  5. 一个程序员未来5年的自我规划
  6. 安装 centos8 设置基础软件仓库时出错
  7. 用大数据看懂《速度与激情》的用车法则
  8. 微商如何用百度来进行引流推广?
  9. 寿星万年历源代码(JAVA/VB NET)
  10. mtkgpio中断控制器_MT2523芯片参考手册
  11. 图解HTTP(四)—— 返回结果的HTTP状态码
  12. Vscode开发STM32单片机程序
  13. 云米Q2财报:复苏表象下有苦衷
  14. 【分享】“明道云“ 在集简云平台集成应用的常见问题与解决方案
  15. 智慧灯杆“破冰”:虽然智慧灯杆市场一片火热,但也面临着一系列难题
  16. Python基础练习之名片管理器
  17. 孤岛行动服务器没有响应,孤岛行动IOS版打不开是为何 和平精英公测刺激战场测试结束...
  18. 深入raft-通过ectd的实现理解raft
  19. https tk6 us
  20. 各项基金资助书写格式(中英文对照)

热门文章

  1. Problem A Artwork
  2. 付费搞来的Excel资源,请低调使用!
  3. 我的Linux系统九阴真经
  4. 网络营销推广文案如何量化工作和管理
  5. 微信气泡主题设置_微信皮肤主题怎么弄 微信设置更换修改气泡和主题教程
  6. 透过细节看日本(转)
  7. JavaScript逆向调试记 —— defcon threefactooorx writeup
  8. XML系列(一)------初识XML
  9. 数仓建模(数据模型)
  10. 数字IC验证方法的分类