VRTK学习记录2——拿起和使用物品

VR开发中常见的交互方式就是直接接触物体,物体高亮,然后拿起并使用。

在VRTK中实现起来都是很简单的,参考示例有很多个,简单点的:008_Controller_UsingAGrabbedObject

如果可交互物品不需要使用,只要给物体加个Collider和Rigidbody,然后添加VRTK_InteractableObject脚本并进行相应的设置就行了。

VRTK学习记录2——拿起和使用物品

从上到下依次是接触,拿起,使用。

接触可以设定高亮颜色和哪只手可以接触。

拿起可设定是否能拿起,是否能拿着移动等。

使用可设定是否能使用,是否拿起后才能使用等。


由于使用的通常是我们自定义的功能,例如发射子弹,打开手电筒等,所以这个脚本就不适用,这时就需要开始自己写脚本了。

VRTK学习记录2——拿起和使用物品

这是最简单的实现,首先需要继承VRTK_InteractableObject,然后覆盖StartUsing方法,在其中加入自己写的逻辑。

当脚本添加在物体上时,所有设定与图1一样。勾选Is Usable和Use Only If Grabbed选项后,当拿起物体后按下扳机键,就会触发FireBullet()方法。

同样的,如果想在接触,或者抓取时执行相应的逻辑,只要覆盖对应的方法就行。

VRTK学习记录2——拿起和使用物品

想进一步了解相关内容,可以参考VRTK示例场景中的各种可交互物体的脚本实现以及对应的设置。