文章目录
- 前言
- 一、主要组件及其设置
- 二、案例:右手柄抓取立方体
- 三、“次抓取” 五种方式
- 四、“可交互物体” 的两个属性
- 第一部分,FollowTracking
- 第二部分,Grab Offset
- 五、改变抓取点的位置
前言
参照B站VRTK4.0教程:L30 可以抓取的物体
一、主要组件及其设置
Interactor交互器 :设置Grab Action、Velocity Tracker
Interactable可交互物体:设置“主抓取”、“次抓取”
提示① 抓在手里的物体,被扔出去时,需要有初速度——初速度由Velocity Tracker速度跟踪器提供。
提示② 主抓取和次抓取是指在虚拟现实交互中,用户使用的主要抓取方式和次要抓取方式。主抓取通常是用户首选的抓取方式,用于操作物体或进行其他交互动作。次抓取是备用的抓取方式,当主抓取不可用或不方便使用时,用户可以选择使用次抓取。
二、案例:右手柄抓取立方体
1、RightControllerAlias右手柄别名下的Interactor交互器:
设置GrabAction:RightTrigger_Press 右手柄扳机键按下
设置Velocity Tracker:RightControllerAlias 右手柄别名
Interactable可交互物体:默认“主抓取”、“次抓取”都是Custom(用户自定义)
2、此时,是抓取不了的——需设置主抓取为Follow
Follow是说被抓取的物体,跟随交互器
3、此时,右手柄松开扳机键,立方体没有掉落——原因:运行出现了错误——解决:次抓取,至少设置为None
三、“次抓取” 五种方式
1、主抓取为Follow,次抓取为None——比如,右手柄抓取物体后,左手柄去抓,将抓不到
2、主抓取为Follow,次抓取为Follow——比如,右手柄抓取物体后,左手柄去抓,能抓到,但松开右手柄抓取键,左手柄上的物体会掉
3、主抓取为Follow,次抓取为Swap(交换)——比如,右手柄抓取物体后,左手柄去抓,能抓到,但松开右手柄抓取键,左手柄上的物体不会掉
4、主抓取为Follow,次抓取为ControlDirection——比如,比如,右手柄抓取物体后,左手柄可以拨动物体,改变它的旋转
5、主抓取为Follow,次抓取为Scale——比如,比如,右手柄抓取物体后,左手柄可以拉动物体,改变它的尺寸
四、“可交互物体” 的两个属性
第一部分,FollowTracking
里面不同选项的区别
1FollowTransform能随意穿过带Collider的物体,
2FollowRigidbody碰撞穿不了
3FollowRigidbodyForceRotate效果像是手柄和被抓取物体有根橡皮筋相连,注意得同时修改Grab Offset,下图两项都可以
4FollowTransformPositionDiffrenceRotation手柄围着物体转圈,物体跟着转(但抓不起来)
5FollowRotateAroundAngularVelocity晃动手柄时,物体绕着某个轴进行旋转(轴可全部勾选)
示例如下图——只围绕Y轴进行旋转
第二部分,Grab Offset
None/OritentationHandle时,默认抓取的点,是“交互器”里的GrabAttachPoint (下图一)
PrecisionPoint/ForcePrecisionPoint则是“交互器”里的PrecisionAttachPoint(下图二)(PrecisionPoint、ForcePrecisionPoint区别,留)
五、改变抓取点的位置
1、改变交互器里,
抓取点GrabAttachPoint的位置(GrabOffset抓取偏移是None或OrientationHandle时)
或
抓取点PrecisionAttachPoint的位置(GrabOffset抓取偏移是PrecisionPoint或ForcePrecisionPoint时)
示例:视图里手柄抓取物体时,不一定恰巧贴合物体(如下图)——可通过改变GrabAttachPoint的位置,使之贴合
2、改变交互物体
如果其它的可抓取物体与手柄贴合的都很好,只有当下的,没贴合好——就只能改变当下“可交互物体”里相应点的位置了
示例:GrabOffset是rientationHandle时,可以通过其下的ShowOrientationContainer按钮找到相应的点,然后进行修改