关于VRTK手柄抓取物体(入门)

关于VRTK手柄抓取物体(入门)

在使用SteamVR和VRTK的插件做VR项目时,我们总避免不了做交互,而在VR项目中,抓取这个交互,一般是最具吸引力和必须的,本节就来说一下通过HTC VIVIE手柄抓取物体的操作流程:
1.先搭建好VRTK和Steam VR的环境,再选择左手或者右手控制器,添加VRTK_InteractGrab和VRTK_InteractTouch两个脚本,如下图:
这里写图片描述
具体参数如下:
Grab Button:抓取时按下哪个键
Grab Precognition:预知抓取,值越大,能够越早抓取到物体,特别是对于快速运动的物体
Throw Multiplier:抓取之后丢出的力度,值越大,丢的越远,
Create Rigid Body When Not Touch :当手柄碰到被抓取的物体时,给手柄添加刚体
Controller Attach Point:在控制器模型的刚体点捕捉抓住对象。如果空白,将设置为SDK默认值。
Controller Event:控制器事件
Interact Touch:触摸事件

2.然后再添加一个物体,比如一个cube,作为被抓取的物体,被抓取物体要添加碰撞器,再添加VRTK_InteractableObject脚本:
这里写图片描述

具体参数如下:
Disable When Idle:当物体处于静止时,可交互脚本被禁用
Touch Options
Touch HightLight Color:设置触摸物体时,物体的高亮颜色
Allow Touch Controller:设置哪个手柄可以接触这个物体。
Ignored Collider:添加被抓取可以被忽略的碰撞器

Grab Options
Is Grabbale:该物体是否能被抓握。这个非常重要
· Hold Button To Grab:如果勾选,则抓住放开之后,被抓取物体不处于被抓取状态,之后便会出现掉落之类的现象,如果不勾选,放开之后,被抓去物体还是处于抓取状态,会跟着手柄一起运动
Stay Grabbed On Teleport:处于瞬移的时候,是否可以进行抓住物体

Valid Drop: 设置物体是否能被扔掉。
No Drop:不能被扔掉
Drop Anywhere:可以扔在任何地方
Drop Valid Snap Drop Zone:只有当被抓取物体悬停在有效的弹出区域时,物体才能被抓取。

Grab Override Button: 默认设置为Undefined,这样会使用全局的抓取按键设置来抓取物体;设置成其他按键的话,会覆盖全局的设置,一般建议使用Undefined。
Allowed Grab Controllers: 设置哪个控制器可以进行抓取操作。
Grab Attach Mechanic: 固定的固定关节点脚本
Secondary Grab Action Scripts:辅助控制器脚本
Use Options
Is Usable:是否可以使用
Hold Button To Use:按住按键是否可以使用
Use Only If Grabbed:仅仅当抓住的时候可以被使用
Pointer Activates Use Action:如果勾选,当手柄发射的射线碰到了交互对象,如果物体的Hold Button To Use没有勾选的话,当射线停在物体上的时候就会运行对象的StartUsing方法,射线移开失效就会运行StopUsing方法。这个选项在被勾选以后,为了防止在用射线来使用对象时发生不必要的传送,就不会注册目标点设置( Destination Set )事件。
Use Override Button: 默认设置为Undefined,这样会使用全局的抓取按键设置来使用物体;设置成其他按键的话,会覆盖全局的设置,一般建议使用Undefined。
Allow Touch Controller:设置哪个手柄可以接触这个物体。
3.设置好之后,运行游戏,按下Grip键,碰到物体物体变蓝,然后可以抓取。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章