【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)
前言
这篇文章是【Oculus Interaction SDK】系列的一部分,如果发现有对不上的对方,可以回去翻看我之前发布的文章,或在评论区留言。如果文章的内容已经不适用于新版本了,也可以直接联系我,我会持续更新文章内容。
当前适用版本:
- Unity 版本:2021.3.7f1c1
- Oculus Interaction SDK 版本:47.0
文章最近更新日期:2023.02.13
为控制器和手添加射线交互功能
为控制器添加射线交互
在 Project 窗口搜索 ControllerRayInteractor,使其成为 ControllerInteractors 的子物体
将射线与控制器绑定,并把 ControllerRayInteractor 添加到交互列表(此步开始右手与左手操作类似,不做演示)
效果如下
为手势追踪添加射线交互
在 Project 窗口搜索 ControllerRayInteractor,使其成为 ControllerInteractors 的子物体
将射线与对应的手绑定,并把 HandRayInteractor 添加到交互列表(此步开始右手与左手操作类似,不做演示)
效果如下
制作可与射线交互的物体
我们现在要做一个可以响应射线操作的物体
新建一个 Cube 命名为 Ray Cube,并为其添加 Collider Surface
和 Ray Interactable
组件
为了更方便地观察射线的效果,来为 Ray Cube 添加一个 Interactable Unity Event Wrapper 组件,并添加几组事件
现在就可以清楚地看到射线触发的效果了
制作可与射线交互的 UI
新建一个空物体 Ray UI,为其添加一个 Canvas 作为子物体,Canvas 的 Render Mode 修改为 World Space
随便放几个控件上去,摆放好位置
在 Ray UI 下创建空的子物体 UI Collider 和 UI PlaneSurface
给 UI Collider 添加 Box Collider
组件,调整碰撞器边界使其与 UI 大小保持一致
继续添加 Collider Surface
组件,并在 Collider 处引用自身的 Box Collider
为 UI PlaneSurface 添加 Plane Surface
组件
找到 EventSystem 移除 Standalone Input Module
组件,添加 Pointable Canvas Module
组件
最后回到 Canvas,添加 Ray Interactable
组件和 Pointable Canvas
组件并完成引用
大功告成!
参考资料
https://www.youtube.com/watch?v=bkn-daQzALQ&t=22s
https://www.youtube.com/watch?v=q2auix_Vqd8&t=315s
最新文章
- FreeBSD_11-系统管理——{Part_8 - IPFW}
- csharp: Oracle Stored Procedure DAL using ODP.NET
- [转]Java中Map的用法详解
- Codeforces Round #346 (Div. 2)E - New Reform(DFS + 好题)
- svn 提交失败
- 专题:Channel Bonding/bonding
- 【Maven】Eclipse 使用Maven创建Java Web项目
- CentOS 5.5 Nginx+JDK+MySQL+Tomcat(jsp)成功安装案例
- Redis 在新浪微博中的应用
- oracle 监听动态和静态的配置
- Eclipse Gtk+
- BOX2D测试
- 1.4.1.Documents,Fields和Schema概述
- GDB调试详解
- Altium designer中级篇-名称决定多边形连接样式
- json与jsonp区别浅析(json才是目的,jsonp只是手段)
- R-大数据分析挖掘(2-R爬虫)
- 在linux中配置tomcat
- pktgen使用详细教程
- 积累的VC编程小技巧之编辑框
热门文章
- MySQL 是怎么加行级锁的?为什么一会是 next-key 锁,一会是间隙锁,一会又是记录锁?
- 国产图形化的msf——Viper初体验
- 【Java并发008】原理层面:ReentrantLock中 await()、signal()/signalAll()全解析
- 华为云平台部署教程之CNA\VRM的安装
- SQLi
- Nginx 安装篇-yum安装
- 单节锂电池充电管理芯片,IC电路图
- static_cast和dynamic_cast
- C#关于委托的一些事,开发日志
- 【机器学习】李宏毅——Anomaly Detection(异常检测)