目录: HTC Vive之Unity3d开发日记 You can fool all the people some of the time,and some of the people all the time,but you can`t fool all the people all the time. __Abraham Lincoln , American president 你可以在某些时间里欺骗所有的人,也可以在所有的时间里欺骗某些人,但你决不能在所有的时间里欺骗所有的人. 先引用俺的偶像之一林肯的一句名言,我们也许暂时不知道事情的真相,但是我们总有一天会知道的! B格有了!继上一篇,如果你已经把设备和插件准备就绪,这一篇将先对目前的开发资源进一步整理,然后再对SteamVR Plugin进行解析. >0 HTC Vive 开箱 + 简易评测(从购买到游戏调试安装)上 >1 HTC Vive 开箱 + 简易评测(从购买到游戏调试安装)下 这两篇算是一个前期准备工作指南! >2 【浸入VIVE开发】三分钟用Unity3D开发第一个VR程序 这一篇算是一个基础教学! >3 基于Unity+HTC VIVE的VR游戏开发 这一篇算是一个中级教学,我从中学到了不少知识,但是缺乏对代码的深度解析,而这个将是我接下来要做的.当然,我希望阁下可以抽时间对这些资源进行深入的理解,这将有利于我们之后可以一起来探讨!
如图,我们要实现的是:通过代码来实现对手柄的全面掌控,重点在于交互,至于如何开发一款VR游戏是在实现交互以后需要探讨的事情,我们一步一个脚印来探索!
第一步,如图,我们已经导入了SteamVR Plugin,下面的SteamVR绿色图标表明Htc Vive的硬件也已经准备就绪,这是SteamVR_TestThrow场景,也是我们展开分析的入手点.这个测试很简单,就是你按下Trigger的时候,手柄上会实例化一个圆球+cube的结合体,当然松开Trigger的时候这个结合体就会脱离手柄,当然,你还可以施加一个扔的动作,这样的话结合体会有一个对应的加速度.
手柄是HTC Vive的重要交互手段,我们通过第一个图片应该对其有一个直观的了解了,总共是九个按钮: 第一个是菜单按钮; 2,3,4,5分别对应的是Trackpad/Touchpad的上下左右,有时候对应的是XBox手柄的▲OX囗四个按钮或者摇杆; 6对应的是系统按钮/Steam; 7是Trigger/扳机,对应大多数FPS游戏里面的枪械的Shoot/Fire; 8对应的Grip/紧握在手柄的左右两侧各有一个,有时候我们用它来翻页; 9其实是Trackpad/Touchpad在Z轴的一个延伸,相当于是点击事件Click. 接下来就可以直接上代码了! 纯文本查看 复制代码 ? Ok,在下已经注释得非常清楚了,重点在于Trigger/扳机的交互:device.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)按下扳机时返回真和device.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger)松开扳机时返回真. 更进一步,我们通过解析SteamVR_TrackedController来看看其他按钮事件: 纯文本查看 复制代码 ? SteamVR_TrackedController是基于OpenVR来实现手柄交互的,虽然是开源的,可惜我的水平有限,希望有大神可以讲讲OpenVR,当然,我们理解OpenVR的话当然是最好,如果不知道也是可以实现交互的,我们只需要去调用就可以了. 我这里也没有解析清楚,大家作为涉猎即可,大概知道有这么回事儿,下一篇我们可以继续研究SteamVR_GazeTracker,SteamVR_LaserPointer,SteamVR_Teleporter,敬请期待! BTW,如果你有HTC Vive的开源程序希望可以分享一个给我,用于研究学习,在此谢谢了先! 其实我最希望Valve能开源The Lab,或者哪位大神有源码! unity3d fps 游戏源码;unity3d的fps游戏源码 |
|
开发, 日记 , 话题
本主题由 朱迪 于 2016-5-9 0
















