VRTK这个工具包提供了很多在Unity3d做VR开发中通用的VR功能,主要包括
1)具有别名的控制器按钮事件
2)控制世界指针(激光指针)
3)玩家瞬间转移
4)使用控制器抓起/握住物体
5)使用控制器与物体交互
6)把游戏物体变成交互式的UI元素
这个工具集主要分成三个部分:
1)Prefabs - VRTK/Prefabs/
2)Scripts - VRTK/Scripts/
3)Examples - VRTK/Examples/
DEMO 016_Controller_HapticRumble
该关节交互组件继承重写了 抓取和松开物体时的方法, 抓取时,刚体模拟动力学运动,松开时,就停止模拟,防止受重力影响
抽屉
和打开盒子相似的设置,不过约束的方式不一样,用的是configurable joint 注意约束轴向和可活动距离约束数值设置
VRTK_InteractableObject 的抓取方式
DEMO 022_Controller_CustomBezierPointer
自定义抛物线的外观
DEMO 023_Controller_ChildOfControllerOnGrab
弓箭的思路 抓取方式:作为手柄子物体,跟随手柄运动
制作弓箭的弯曲动画
大致思路:
1)手柄抓取弓时,弓的interactableObject 组件查询是哪个手柄握住弓,得到该手柄的VRTK_ControllerEvents,和VRTK_ControllerActions。前者监听手柄的输入,后者控制手柄震动,同理 获得缓冲拿箭的手柄的这两个组件。
2)如果当前弓上有箭头,且手柄握着箭,箭头位置归零,箭头对向瞄准处。拉弦时,弓箭的朝向有拉弦手柄到握弓手柄方向。根据拉弦强度播放拉弓动画。如果拉弦的手柄松开,发射弓箭,初始化弓箭的刚体速度方向。
3)被握住箭碰到弓, 将箭定位到拉弦处的虚拟定位物体的子层级下,箭的方向由拉弦处位置朝向弓把手上箭的放置位置。
DEMO 024_CameraRig_ExcludeTeleportLocations
限制可传送的物体
在这里写入的标签,无法识别传送到该物体表面。可以写入多个标签,然后拖入红框中第二个方框内。