Unity开发3.3.0VRTK(基础功能快速开发)

作者:杜代勇 时间:2023-05-17 点击数:

VRTK3.3(基础功能快速开发)

一、环境配置使用

因为VRTK3.3.0版本是基于SteamVRSDK早期版本封装的,所以SteamSDK下载1.0+的版本最为合适,可以去SteamVR官网下载早期历史版本,而VRTK版本可以从unity商店下载或者去VRTK官网都可以。

二、针对于基本功能简介

1.实现UI交互

手柄上挂载脚本(可用Demo里的预制体):

VRTK_Controller Events(手柄功能事件)

VRTK_UI Pointer:手柄射线

VRTK_Straight Ponter Renderer:绘制射线

VRTK_controller UI pointer Event

15AC

建一个Canvas挂载脚本VRTK-UICanvas
修改Selection Button :Touchpad Press Click Method: UP

15895





















2.移动功能

手柄需要挂载的脚本:

VRTK-Point:pointer Renderer 把对应手柄拖进去

VRTK-Bezier Pointer Renderer:(贝塞尔曲线 如果有UI的话建议不要使用这个曲线射线)下面四个预设物分别对应

发出去抛物线预设物,目标点预设物,特效预设物,禁止预设物。

可以在资源包里搜索:TeleportPoint 预制体 这个是针对于点位置的


33FF3


3.拾取功能

手柄挂载脚本:

VRTK_controller Events:手柄事件触发

VRTK_interact Touch:手柄模型

VRTK_Interact Grab


被抓物体身上挂载脚本:

VRTK-Interactable object :记得把 Is Grabbable 开启 是否抓取

VRTK-Fixed joint Grab Attach::Precision Grab (Bool) 精准抓取

下面两个 Right Snap Handle 和Left… 是抓取对象之后附加在手上位置信息的

1513B


4.振动功能

前提:碰撞和刚体必须的!!!

物体脚本挂载:

碰撞和刚体必须的

挂载脚本:

Sword:里面脚本里面有三个属性可以设置为public

第一个属性:震动大小

第二个属性:碰撞力

第三个属性:最大碰撞力

Grab Attach Mechanic Script:挂载本物体 抓取附加机制脚本

Secondary Grab Action Script:挂在本物体 二次抓取动作脚本

VRTK_Interactable Object

VRTK_Fixed Joint Grab Attach

VRTK_Swap Controller Grab Action

三、案例功能(参考 https://blog.csdn.net/pq8888168/article/details/103156223)

.003_Controller_SimplePointer场景:手柄发射一条直线射线的功能演示


.004_CameraRig_BasicTeleport场景:基础的使用直线射线传送的功能演示


.005_Controller_BasicObjectGrabbing:基础的手柄拾取物体,包括变色和边缘发光,左右手柄同时控制的功能演示


.006_Controller_UsingADoor:抓取物体后使用物体的功能演示,这里是触碰门按扳机开门。


.007_CameraRig_HeightAdjustTeleport:带有高度的传送以及忽略某些物体的传送检测功能,还包括头部的物理效果。


.008_Controller_UsingAGrabbedObject:抓取物体后使用物体上面的功能演示,这里是抓取枪发射子弹和抓取方块转圈圈


.009_Controller_BezierPointer:贝塞尔曲线的传送功能使用演示。


.010_CameraRig_TerrainTeleporting:地形上的传送功能,主要是贝塞尔曲线的图标贴合地面效果展示。


.011_Camera_HeadSetCollisionFading:只要展示头盔碰撞到墙体的黑屏效果,表示超出行动范围。


.012_Controller_PointerWithAreaCollision:使用传送功能时会出现一个范围提示框,提示框触碰墙体等会提示变红不允许传送


.013_Controller_UsingAndGrabbingMultipleObjects:手柄抓取物体和使用物体功能的方式,按下不松或者只要按下一次


.014_Controller_SnappingObjectsOnGrab:添加固定关节的抓取连接点功能,看不懂怎么设置值得。


.015_Controller_TouchpadAxisControl:手柄圆盘上触碰的位置轴向控制小车移动的方向功能,


.016_Controller_HapticRumble:手柄的震动效果演示。


.017_CameraRig_TouchpadWalking:触摸手柄圆盘控制CameraRigde的移动和方向


.018_CameraRig_FramesPerSecondCounter:帧数的显示效果


.019_Controller_InteractingWithPointer:使用射线控制物体的功能演示


.020_CameraRig_MeshTeleporting:网格碰撞的传送效果


.021_Controller_GrabbingObjectsWithJoints 使用关节抓取


.022_Controller_CustomBezierPointer:常规使用的贝塞尔曲线样式


.023_Controller_ChildOfControllerOnGrab:子物体的抓取功能演示


.024_CameraRig_ExcludeTeleportLocations:排除不可传送的物体,使用Tag或者Layer…


.025_Controls_Overview:控制功能的观察


.026_Controller_ForceHoldObject:手柄的反馈,根据力量施加反馈效果。


.027_CameraRig_TeleportByModelVillage:使用触摸模型的方式进行固定点的传送。


.028_CameraRig_RoomExtender:房间模式功能拓展


.029_Controller_Tooltips:手柄上的按钮小提示


.030_Controls_RadialTouchpadMenu:圆盘上面的按钮菜单功能

————————————————

原文链接:https://blog.csdn.net/quailchivalrous/article/details/123878282



中国人民警察大学版权所有