VRTK配置

打开unity把VRTK的unity package和Steam VR的unity package导入到你的项目里面,然后新建一个空物体


1.png

然后把名字改成CamRig然后建立子物体把名字改成[VRTK_SDKManager](也可以不用这名字,开心就好)将其坐标归零,然后给其建立一个子物体,子物体也是一个空物体归零,名字叫SDKSetups,然后在给其建立一个子物体取名叫SteamVR给这个脚本添加一个叫VRTK_SDK SetUp的脚本(这个是VRTK自带的脚本),然后把SteamVR的[CameraRig]和[SteamVR]的Prefab拖到其子物体上。点击SteamVR的这个空物体,把脚本上的Auto Populate后面的对勾给取消然后把这个脚本拖GameObject到对应的地方,如图


2.png

然后再把刚才去掉的对勾打上,这这脚本的意思就是在你运行程序的时候会自动加载SteamVR的摄像机其实现的功能。然后在CamRig下建立另一个子物体名字叫[VRTK_Scripts]这里就是放置一些需要的脚本,先建立一个子物体叫PlayArea把VRTK——Body Physics和VRTK——Height Adjust Teleport脚本放到这个物体上,这两个脚本确认了你的相机能行走的范围和高度以及一些基本的参数,可以自己研究一下
然后在[VRTK_Scripts]建立两个空物体分别叫LeftController和RightController这里放置给左右手柄添加的事件,我这里添加的是左手柄为射线操作,右手柄为抛物线操作

LeftController

  • 第一个要添加的是VRTK_Controller Events**
    这个脚本主要实现了手柄的输入事件
    3.png

pointerToggleButton:激光的显示开关,激光在VR里相当于鼠标箭头的指向功能。
pointerSetButton:激光停留的指向目标,触发目标的功能,相当于鼠标点击。
grabToggleButton:抓住物体动作,配合使用 VRTK 插件集成的抓取,投掷功能。
useToggleButton:触发目标事件,比如把手柄放在门把手上,按下这个按键,触发门打开的功能;手柄放在电灯开关上,按下按键,触发电灯开发的功能。这个和pointerSetButton区别在于后者需要激光落在目标上,才能触发目标上的功能。
uiClickButton:触发UI Canvas 目标的事件。
menuToggleButton:游戏目录显示开关。
axisFidelity:按键按下的强度,完全按下是1,松开时是0。现在只有Trigger按键(手部后面扳机)有此属性。
triggerClickThreShold:扳机要到多大程度,才能使用扳机的触发功能。如果是0.5,则表示只要按下一半的程度就可以触发,如果是1,则必须完全按下才能触发。
以上是设置各个按键在插件中交互的功能。
如果要获得每个按键具体的使用情况,如按下、松开按键、手触摸板的按键位置、扳机的按下强度等,则需要在 VRTK_ControllerEvent 注册对应按键的事件。
在VRTK_ControllerEvents_ListenerExample脚本中,监听了VRTK_ControllerEvent所有按键的事件,和按键的参数信息。如下图的扳机键的按键事件。 (以上别名按钮已经过时,分别被其它组件中的But取代,在“VRTK_Controller Events”脚本中有注释说明)

4.png
5.png

事件的参数在VRTK_ControllerEvents中是:


6.png

第二个要添加的是VRTK_Interact Touch
主要的作用就是和物体发生碰撞的交互
第三个要添加的是VRTK_UI Pointer
主要作用是使其能与UI发生交互
第四个要添加的是VRTK_Controller UI Pointer Events_Listener Example
第五个要添加的是VRTK_Pointer
其Enable Teleport这个选项选择是可以用此位移,不选中就是射线打中的地方摄像机不会位移到这个地方
在Pointer Renderer这里面把父物体LeftController加入进去
第六个要添加的是VRTK_Straight Pointer Renderer
这个主要就是射线的操作,Layers To Ignore中选择一些被无视的对象,即射线射到这些物体上不会有反应,这些物体通过加Layer层标签来决定。

RightController

  • 第一个要添加的是VRTK_Controller Events
    7.png

你可能感兴趣的:(VRTK配置)