文章目录
- 组件越加越多,先别急着补脚本
- 抓:先分清谁抓、谁能被抓
- 走:传送、连续移动、摆臂,要分开看
- 放:松开手,不等于事情结束
- 转:门、抽屉和按钮,都有自己的运动边界
- 怎么用这张地图:先找第一个失败的动作
- 实用总结
组件越加越多,先别急着补脚本
做 Unity VR 交互,很容易走进一种状态:物体抓不住,加个组件;移动不对,再挂个脚本;松手后位置乱了,又补一段位置修正。
场景似乎在往前推进,问题却越来越难解释。一个物体的位置,可能同时被抓取逻辑、物理系统和自定义脚本修改。最后即使“看起来正常”,也很难说清到底是哪一步起了作用。
我阅读 VRTK4 / Tilia 相关装配书后,整理出一个更方便自己理解的分法:抓、走、放、转。
这不是框架官方规定的四层架构,也不是四个必须照着创建的对象。它是一张交互地图。先按动作划清职责,再去找负责这件事的组件。
抓,解决手与物体如何建立交互关系。走,解决人在虚拟空间里如何移动。放,解决结束抓取后物体由谁接管。转,解决物体如何沿规定的轴运动。
先把这些边界弄明白,比一开始记住一长串组件名更有用。
抓:先分清谁抓、谁能被抓
控制器已经显示出来,也能跟着手移动,为什么还是抓不住桌上的东西?
我会先把问题放进“抓”这一层。控制器可见,只能说明它的显示和姿态更新至少有一部分在工作,不代表抓取输入、目标检测和交互关系都已经接通。
理解抓取,我先认两端。
一端是交互发起者,常见叫法是 Interactor。可以把它理解成负责伸手、指向目标并发起交互的那一侧。它不等于控