Hololens入门之凝视

Hololens入门之凝视射线

凝视是HoloLens首要输入方式,形式功能类似于桌面系统的光标,用于选择操作全息对象。然而在Unity中并没有明确的Gaze API或者组件。

概念上来说,Gaze是通过用户头部两眼之间发出一条向前方的射线来实现的,射线可以识别它所碰撞的物体。在Unity中,使用Main Camera来表示用户头部的位置和朝向。准确的说,是指UnityEngine.Camera.main.transform.forward 和 UnityEngine.Camera.main.transform.position.调用Physics.RayCast 发出射线后可以得到RaycastHit结果,该结果包含了碰撞点的3D位置参数和碰撞对象。


实现Gaze的示例:

可以直接使用HoloToolkit中的GazeManager.cs脚本来实现凝视射线。 关于HoloToolKit的使用,本文不再做描述,可以参考上一篇文章。

1、添加GazeManager.cs

点击“ Create Empty” 创建一个空游戏对象,并将其命名为 Manager,为 Manager对象添加核心脚本组件GazeManager.cs c

2、创建一个新的游戏对象Cube,用来测试凝视效果

3、添加Cursor

就像PC使用鼠标来选中和交互图标一样,你可以为凝视也实现一个指针来更好的代表用户的凝视。

从 HoloToolkit/Input/Prefabs/ 目录下拖拽 Cursor Prefab 组件到场景中。这样当凝视在全息对象时,其表面会出现一个蓝色的光圈,表示当前凝视该对象,当射线离开该游戏对象时,Cursor变成一个点光源,以此来区分是否凝视游戏对象。

可以查看到Cursor中存在两个光标对象,分别是凝视在对象上及离开光息对象时分别显示的光标


4、运行测试

当凝视射线在Cube上时,出现蓝色的光圈,表示当前凝视的点在该位置

当凝视射线离开Cube时,光标显示为一个点光源




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值