自从SteamVR plugin for Unity(后面简称steamVR sdk)升级到2.0+版本之后,就引入了 SteamVR Input 输入系统,目的是将具体的输入设备与游戏逻辑分开,让开发者可以专心根据功能来开发,而不需要关注设备的具体按键;
但这个升级也改变了很多steamVR sdk原本的脚本,使得部分之前用 steamVR sdk 1.0+版本开发的同学一下子适应不过来,下面我主要讲讲使用 steamVR sdk2.0+版本时,要如何在Unity中适配 Tracker;
本文基于Unity2018.4.12f1版本以及SteamVR Rumtime 1.8.19版本;
A.在Unity端的操作
- 通过Unity的AssetStore获取最新版本的SteamVR sdk;
注意:如果导入新版的SDK之后,报了下面这个错:[SteamVR] Error during OpenVR Init: Init_InterfaceNotFound
说明请求的接口不存在,steamVr runtime目前的版本不兼容sdk的接口,需要更新 runtime,这在下面对SteamVR Runtime的设置中会进行;
- 在Unity菜单栏下选中Window->SteamVR Input,在弹出的窗口选择 Yes;
- 在SteamVR Input窗口,保持默认就好,然后选择 Save and generate;
- 此时会发现Project面板多了下面三个文件夹;
- 将 [CameraRig] 下的两个 Controller 上的 Pose Action 设置成 \actions\default\in\Pose, 然后把 InputSource 分别设置成 LeftHand 和 RightHand;
B.对SteamVR Runtime的设置
- 打开Steam并登陆账号(不登陆的话后面有些操作进行不了),然后更新SteamVR runtime的版本;
- 通过Steam上的VR打开SteamVR runtime;
- 通过 Steam VR runtime 进入“控制器输入按键设置”窗口;
- 选择Unity中正在开发的应用程序;
- 将当前控制器设置成 Vive Tracker in Hand;
- 点击管理定位器,将对应的 Tracker 设置成手持,并分别设置成左右手;
- 如果当前按键设置为空,点击创建新按键设置;
- 在default中勾选镜像模式,然后选择编辑动作姿势;
- 将 左手Origin 设置成Pose;
- 最后保存个人按键设置;
注意: 如果点了保存之后,一直显示在上传或者没有反应,可以尝试重启下SteamVR Runtime;
按步骤设置完之后,应该就可以在Unity中运行steamVR sdk的Demo时看到我们的Tracker了,匹配Tracker的基本操作我就不再详述了,enjoy your game;