vrtk中的交互-触碰,抓取,使用
参考:VRTK - 2.场景物体的交互:触碰,抓取,使用 - 简书
已经能在场景中移动了,接下来肯定想在虚拟场景中与物体互动吧!
虚拟场景互动主要包括触碰,抓取,使用三种方式.
Touch
必要条件:
- 被接触的物体必须有Collider碰撞体(可以不加刚体)
- 被接触的物体必须有VRTK_InteractableObject组件
- 手柄控制器必须有VRTK_InteractTouch组件
Grab
必要条件:
- Touch的所有必要条件都要有
- 物体必须有刚体(即使不加刚体,运行时VRTK也会自动给你加上)
- 手柄控制器必须有VRTK_InteractGrab组件
注意:默认情况下物体上VRTK_InteractableObject组件的grab是不勾选的,只有勾选抓取才会生效
Use
必要条件:
- Touch的所有必要条件都要有
- 物体必须有刚体
- 手柄控制器必须有VRTK_InteractUse组件
注意:本来想写一个use时,cube旋转,但是效果却是转一下就回到原位了,一直这样循环.很鬼畜的感觉,暂时没发现是什么原因.当然debug是被打印了.所以判断物体是否被使用时,慎用Time.deltaTime或者说这样判断是否在使用是有问题的.
官方的例子是这么写的.它是用事件触发做的.
顺便提一下VRTK中的高亮组件,挺好用的,给物体加上这个组件,三种交互会出现不同颜色.
抓取方式
VRTK中提供了很多的抓取方式.比如固定关节抓取(VRTK_FixedJoinGrabAttach),弹簧关节抓取(VRTK_SpringJointGrabAttach)等等.参考文章3中已经将比较详细了,就不说了.自己按上面试试就ok了(大概知道就可以了,其实是自己也懒得写了0.0).但确实是挺重要的知识点.