相信各位小伙伴们在使用SteamVR Unity Plugin的过程中应该都遇到过这样的问题:获取设备很麻烦,设备在重启后indexID会改变从而导致设置好的左右手设备出现交错;无法与UGUI的事件系统连接导致无法使用UGUI等等很多问题。(见图1)
本插件的联络邮箱为 vivesoftware@htc.com,如果有问题可以通过这个邮箱反馈。
我们会推出Vive Input Utility使用教程系列,
第一篇: Vive Input Utility的使用指南 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1708&extra=page%3D1
第二篇: Vive Input Utility API详解 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1720&extra=page%3D1
第三篇: Vive Input Utility手把手教程 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1728&extra=page%3D1
手把手教你用Vive Input Utility,跟着下面的步骤一步步操作,让你的程序非常迅速的适配Vive的操作。
第一步(见图2)
使用SteamVR Unity插件搭建支持VR的基本场景。
第二步(见图3)
创建并选择你的right hand object;
点击“Add Component”添加VivePoseTracker脚本。
第三步(见图4)
将VivePoseTracker的origin变量设置为VR camera;
将role设置为右手。
第四步(见图5)
你可以隐藏你的模型,当设备失去追踪或者连接中断;
如下设置:
1.点击+号,给On Is Valid Changed增加一项;
2.将你的模型对象拖到这项上;
3.选择回调函数为SetActive;
第五步(见图6)
创建并选择你的laser pointer object;
点击“Add Component”添加ViveRaycaster 脚本。
第六步(见图7)
设置按钮事件源为"Right Hand Only"。
第七步(见图8)
重复第四步,但是这次将laser pointer object拖到新的回调项中。
第八步(见图9)
右击right hand object,点击"Duplicate"复制。
第九步(见图10)
选择复制了的对象,并重命名为"Left Hand"作为left hand object。
第十步(见图11)
在VivePoseTracker脚本中设置role为左手。
第十一步(见图12)
选择 left hand object中的laser pointer object;
在ViveRaycaster 脚本中设置按钮事件源为"Left Hand Only"。
第十二步(见图13)
在hierarchy中创建一个UI按钮。
第十三步(见图14)
移除默认的事件系统对象;
选择默认画布;
移除canvas scalar component ;
移除graphic raycaster component;
设置渲染模式为"World Space"。
第十四步(见图15)
点击“Add Component”添加CanvasRaycastTarget 脚本。
第十五步(见图16/17)
设置画布上的rect,并将它放到 VR camera的视野里面
完成!(见图18)
UGUI现在监测到vive controller产生的事件了!
你可以在Asset/HTC.UnityPlugin/ViveInputUtility/Examples/0.Tutorial中找到本场景。