htchtc vive 手柄 原理握持键有什么用

现实虚拟傻傻分不清楚 HTC Vive初体验_网易数码
现实虚拟傻傻分不清楚 HTC Vive初体验
用微信扫码二维码
分享至好友和朋友圈
(原标题:现实虚拟傻傻分不清楚 HTC Vive初体验)
第1页:HTC Vive 2015年,VR虚拟现实设备开始走入大众视野,充满科技气息设计和完全沉浸式体验,吸引了无数厂商与投资者的注意,成为科技圈内人气度最高的产品。2016年,索尼率先发布了专为自家PS4主机设计的PS&VR,紧随其后HTC旗下的VIVE也在STEAM平台上开始正式发售。HTC&Vive成为首款正式面向零售用户的VR设备,感兴趣的玩家可以通过HTC官网和STEAM平台(最终购买还是会跳转到HTC官网)进行购买。HTC&Vive零售价格为6888元,与已经公布的PS&VR相比足足超出了一倍多。如此之高的价格,HTC&Vive表现如何,是否值得玩家为之买单。HTC&Vive官网销售页面&Steam平台HTC&Vive销售页面展示中关村在线有幸快速拿到HTC&Vive,下面就让我们一起来进行开箱及初步体验。看看HTC&Vive有何出色表现,是否值得玩家花上6888大元为之买单?HTC&Vive包装外观展示HTC&Vive采用黑色硬纸箱包装,包装表现使用天青色进行点缀。为提升包装整体视觉,左右两侧分别使用亚光和高光材质制作。由于HTC&Vive附件较多,所以整个包装显得又大又厚。左上角的白色Steam标识,暗示着玩家V社有可能在新游戏发售时,为HTC&Vive提供独家支持。
第2页:配件数量&绝对算是多到令人发指打开HTC&Vive包装盒,迎面而来的就是一张超大尺寸的说明书,具体多大?唔,基本上只比整个包装盒小一点,由于说明书尺寸非常大,可以将全部内容清晰的印在上面,所以整个说明书仅有一页。HTC&Vive说明书展示HTC&Vive包装内部展示将说明书取下,就可以看到固定在高密度泡沫内胆内的HTC&Vive组件。HTC&Vive头灰由于体积较大,单独占据了包装盒近一半的空间,手柄和感应器共同安装在包装的另一侧。将手柄和感应器的包装内胆拿起后,就可以看到下面放置的电源、连接线等配件。HTC&Vive头盔展示HTC&Vive的头盔个头较大,后部安装有三点固定的头带,可以让玩家稳定的将其固定在头上。当然,由于头盔本身具有一定重量,佩戴在头上后有着明显的重心偏前问题。所以HTC&Vive的佩戴舒适度其实并不算好。HTC&Vive头盔正面特写HTC&Vive&正下方方设计有一个小的摄像头,整个头盔上设计有多个角度、深度不同的凹坑,错落有致、疏密不同的设计,在一定程度上避免了逼疯密集恐惧症的嫌疑,还为头盔带来了一些酷酷的科技感。视频信号线和供电线经头带固定后,从头盔顶部进入。特殊角度下&凹坑底部会反射出红色光线&HTC&Vive感应器即依此进行定位HTC&Vive上的凹坑起到的绝不仅是简单的装饰作用,仔细观察,可以发现在特殊角度下,带有磨砂质感的凹坑底部,分反射出红色光线,HTC&Vive感应器即依靠捕捉这些红点的位置,完成对人体运作的监测,同时对游戏画面进行相应调整。HTC&Vive&头盔连接线展示HTC&Vive头盔连接线长度极长,尾部设计有三个独立接口与连接盒连接,三个接口分别负责视频数据输入,动作数据输出和电源供电。其中视频数据输入使用HDMI接口,可以通过转接口直接音频模拟信号输出到耳机。动作数据输出接口为标准USB接口,电源输入接口则是小圆头DC接口。
第3页:感应器平平无奇&手柄造型极度异相比头盔的充满科技感的前卫造型,HTC&Vive的两个感应器造型设计则显得平平无奇,端端正正的小黑盒子设计,顶部刻有HTC&LOGO。出于透光考虑,正面使用黑色亚克力材质制作,为避免运输过程中出现划伤,正面进行了贴膜防护。HTC&Vive感应器展示与低调的HTC&Vive感应器形成强烈反差的,则是HTC&Vive手柄。不同于传统手感的双手握持设计,HTC&Vive手柄采用单手握持设计,两个手柄均为对称式造型,玩家使用时不需要区分左右手,随意拿起即可使用。为避免激烈游戏时手柄甩脱造成损坏,HTC还在手柄尾部设计了腕带。HTC&Vive手柄外观展示&HTC&Vive顶部圆环与触控板特写与头盔一样,HTC&Vive手柄表面也设计了大量不规则坑,特殊角度下也会反射出红斑。手柄顶部被是独特一个圆圈形状,可以是为了方便感应器进行动作捕捉而设计。手柄正面设计有三个按键及一个大面积圆型触控板,似曾相似的设计,显示其与Steam主机手柄之间剪不断理还乱的复杂关系。HTC&Vive手柄背面按键特写HTC&Vive手柄底部居中位置设计有扳机键,舒适的使用手感,让玩家可以非常容易的进行操作。实践证明,这也是HTC&Vive在游戏过程中,玩家使用频率最高的按键。手柄居后位置左右两侧还设计有两个侧按键,不过实际操作时,玩家仅可使用拇指对其中一个按键进行操作。HTC&Vive连接盒PC端接口展示HTC&Vive连接盒头盔端接口展示HTC&Vive感应器和手柄均通过无线方式与主设备进行连接,但头盔却需要通过一个小小的连接盒才能与电脑连接在一起。连接盒顶部清晰的标注着那一端应与头盔相连,那一端应与头盔连接。不过从外观上我们也可以非常容易识别。与头盔连接的一端,所有插口全部被设计成与头盔连接线相同的橙黄色,而PC连接端,除去蓝牙的USB&3.0接口外,其余接口均为黑色,这也提示着玩家,HTC&Vive必须通过USB3.0接口与电脑进行连接。HTC&Vive其它附件展示除去手柄和感应器外,HTC&Vive包装内还有一大堆其它附件,其中包括为感应器和连接盒进行供电的3个直流电源,为手柄进行充电的两个标准USB接口充电器和与其配套的充电线,与连接盒进行连接的HDMI线和USB线各一根,3.5mm超长对录线一根,头盔替换海绵一个,感应器墙壁挂件一对等。HTC&Vive全家福展示
不得不说,全部摆开的话,HTC&Vive零部件数量极为丰富,大大小小的组件和备用件,总计共有20个之多。如此之多的配件,连接起来会不会非常麻烦,游戏时又会为玩家带来怎样的体验?咱们下页接着说。
本文来源:中关村在线
责任编辑:王珏_NT2830
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈解放你的双手双脚 最好用的VR外设终极大盘点--百度百家
解放你的双手双脚 最好用的VR外设终极大盘点
分享到微信朋友圈
无论是X1手柄还是PS4手柄都无法做到完全沉浸的虚拟现实体验,尽管他们都是全世界最好用的手柄,但这仍然无法解放你的双手。
经过多年的发展与普及,终于虚拟现实成为了现实。截至目前,Oculus与HTC&Vive已经上市并且都取得了不俗的成绩,而索尼PSVR也确定十月份与大家见面,这一切都表明,虚拟现实技术这个概念并不只是一个空想的高科技产业。但光是VR头显还不够,当你在进行VR游戏时,无论是X1手柄还是PS4手柄都无法做到完全沉浸的虚拟现实体验,尽管他们都是全世界最好用的手柄,但这仍然无法解放你的双手。
而这就是全世界VR厂商所试图解决的一大问题:解放双手、双脚甚至全身上下的每个部位,全身心的沉浸在VR环境中。下面是87君为大家盘点的几款体验效果优质并且完善的VR外设供大家考虑和选择:
Oculus Touch
Oculus Touch
Oculus Touch采用了类似手环的设计,允许摄像机对用户的手部进行追踪,传感器也可以追踪手指运动,同时还为用户带来便利的抓握方式。如果用户需要展开手掌,借助手环的支撑,手柄仍然可以保持原位。这意味着用户无需像使用PlayStation Move体感控制器或其他虚拟现实手柄一样始终保持抓握。
目前,Oculus Touch的价格和发布日期还没有公布,但现在看来肯定也不便宜。Oculus Touch原计划在2016年第二季度发售,现在推迟到了2016年下半年。
在今年E3游戏大展上,索尼宣布将于10月13日发布PlayStation VR设备,此外还将会同步发售50款游戏,涵盖部分第一人称射击游戏,此外还有全新的游戏手柄能够比DualShock 4手柄更好的处理FPS游戏。
PS VR Aim手柄提供了最逼真和最精准的方式来控制你的射击游戏,承诺Direct 1 to 1追踪,能够在Farpoint游戏中获得更加真实的体验,能够获得标准FPS游戏无法获得的射击体验。
Leap Motion
Leap Motion
Leap Motion是面向PC以及Mac的体感控制器制造公司Leap于日发布的体感控制器,5月13日正式上市,随后于5月19日在美国零售商百思买独家售卖。目前,日发布的新版Leap Motion已经开始派送,新版的Leap Motion将具有更高的软硬件结合能力,并于日正式登陆中国,中文名为“厉动”,在京东的售价为688元。
今年年初,Leap Motion还展示了其在虚拟现实中的Orion手部跟踪技术。 Orion同时是软件和硬件解决方案。Leap Motion公司已在市场上发布跟踪软件的更新版,能够与Leap Motion控制器相机合作,但该公司也表示正在同其他公司合作,致力于将Orion硬件应用到新的虚拟现实设备中。
在描绘虚拟现实(VR)的电影和书籍中,手套控制器俨然成为了VR外设的代名词。荷兰公司Manus VR将这一概念化为现实,并于今年3月10日发布了第一个开发工具包,同时宣布其手套控制器将可与HTC Vive&VR头显兼容。
我们何时能用上Manus VR的技术还不得而知,不过Flexpoint Sensor Systems公司(Manus VR传感器的制造商)的弯曲传感器已经收到首批订单。我们大概也不用等多久。
Virtuix Omni
Virtuix Omni
当你戴着Oculus Rift虚拟现实头戴设备时,你的自然本能反应就是通过步行或奔跑的方式来探索围绕着你的这个模拟出来的环境。Virtuix Omni就是一款被设计来解决这个问题的虚拟现实跑步机,你可以站在上面向任何方向移动。Virtuix Omni拥有特制的鞋子,除了获得更多的摩擦力之外,夹式运动传感器还能够让双脚成为游戏控制器,为了防止意外摔倒。Virtuix Omni还为此设计了一个固定圆环,并通过腰带和腿带固定用户,所以用户的身体不会脱离圆环和跑步机。
目前Virtuix Omni已经在其官方商城推出,售价699美元(约合人民币4555元),可以说是最昂贵的虚拟现实配件之一。
VirZoom来自美国马萨诸塞州的一家初创公司,早在去年E3游戏大展上就进行了展出,最初的产品形态是模块化的,包括车把及传感器等部件,可以固定在用户自己的室内自行车上,以实现操作。而现在,它变成了一款一体化产品,可以直接连接Oculus Rift(未来将兼容索尼PS VR及HTC Vive),实现虚拟骑行体验。
这款产品已于今年6月开始发货,售价为249美元(约合人民币1611元)。它包括VirZOOM自行车控制器、从Steam应用商店里下载的VR运动游戏VirZOOM街机模式系列、一款免费的PC游戏控制器模拟器、一个Unity游戏引擎的免费软件开发工具包还有免费的Strava健身应用程序。
UnlimitedHand
UnlimitedHand
一家来自日本的创业公司宣称自己开发出了世界首款可让用户在虚拟现实环境中获得触觉的游戏控制器,这款设备名叫UnlimitedHand,将其佩戴在前臂之后,其内部的触觉传感器就能让你在虚拟现实世界当中触摸、感觉、抚摸、握持、抓举、推/拉、挥 拳、和操纵物体或游戏人物。和其他触觉反馈设备一样,UnlimitedHand会通过动作和肌肉传感器来识别佩戴者的手势,然后以此提供正确的感觉和重量。
目前,这款设备早已投入市场,售价188美元起(约合人民币1120元起)
在今年CES 2016上,我们看到了3DRudder这款有趣的虚拟现实控制器。它看上去像是一张黑胶唱片,实际上则是一个足部方向的控制器,通过USB连接至PC上,配合虚拟现实头戴显示器使用。需要指出的是,它的最大承重仅为130克,这意味着你必须坐在椅子上使用它。据悉,3DRudder将支持绝大多数电脑游戏,根据实际体验来看,它更适合操作开放世界类的探索游戏,激烈的第一人称视角射击游戏则有些力不从心,毕竟射击类游戏需要更精准的操作。
目前,3DRudder已经开启预定,售价约为175欧元(约合人民币1232元)。
当然,优秀的VR外设远不止这些,甚至在色情领域的VR成人外设也丝毫不输给以上87君列举的这些,在这里就不一一为大家列举了。
分享到微信朋友圈
在手机阅读、分享本文
还可以输入250个字
推荐文章RECOMMEND
阅读:8319
阅读:26万
阅读:12万
阅读:10万
热门文章HOT NEWS
有人说李宗伟逃不出宿命,赢了林丹却再次倒在谌龙拍下,一夜之间大...
体育产业生态圈
首席发言者
百度新闻客户端
百度新闻客户端
百度新闻客户端
扫描二维码下载
订阅 "百家" 频道
观看更多百家精彩新闻http://blog.csdn.net/ystistheking/article/details/
想交流的朋友我们可以微博互粉,我的微博黑石铸造厂厂长&,缺粉丝啊 。。。。。求粉求粉
研究了几天htc vive的接口,总算是把基本的按键功能研究出来了,这里分享一下,一来当做笔记,二来也希望对大家有所帮助。
如何导入Steam_VR那个包什么的我就不说了,网上有几个前辈已经教了,蛮牛论坛啥的上面都有,这里只把比较详细的按键功能分享一下,不知啥高端的东西,也算一段时间劳动成果啦,所以转载的帮我留个名写个转,谢谢啦。
个人感觉手柄上开始比较难搞明白的就是那个圆盘键,这个键是一个以中心为(0,0)点的直角坐标系,四个端长度都是1,可接收触摸和按压两种事件,大体就是下图这个意思(手绘水平略渣,见谅见谅),触摸touch或按压press会通过GetAxis方法返回一个坐标系中的点,可以判断你按在哪里,触发不同的事件,可以根据角度或各种方法来切分按键为n个按钮(就像切蛋糕一样)
这里用的是C#脚本 ,直接上代码了,我个人写注释比较话唠,适合新手看:
[csharp]&&
using&UnityE&&
using&System.C&&
public&class&ButtonTouchAction&:&MonoBehaviour&{&&
&&&&SteamVR_TrackedObject&trackdeO&&
&&&&void&Awake()&{&&
&&&&&&&&trackdeObjec&=&GetComponent&SteamVR_TrackedObject&();&&
&&&&void&Start&()&{&&&&&
&&&&void&FixedUpdate()&&
&&&&&&&&var&device&=&SteamVR_Controller.Input((int)trackdeObjec.index);&&
&&&&&&&&&&&
&&&&&&&&if&(device.GetTouch(SteamVR_Controller.ButtonMask.Trigger))&{&&
&&&&&&&&&&&&Debug.Log("按了&&trigger&&&扳机键&");&&
&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&var&deviceIndex2&=&SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.Rightmost);&&
&&&&&&&&&&&&SteamVR_Controller.Input(deviceIndex2).TriggerHapticPulse(500);&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger))&&
&&&&&&&&{&&&Debug.Log("按下了&&trigger&&&扳机键&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger))&{&&
&&&&&&&&&&&&Debug.Log("松开了&&trigger&&&扳机键&");&&
&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&var&deviceIndex&=&SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.Leftmost);&&
&&&&&&&&&&&&SteamVR_Controller.Input(deviceIndex).TriggerHapticPulse(3000);&&
&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&var&deviceIndex1&=&SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.Rightmost);&&
&&&&&&&&&&&&SteamVR_Controller.Input(deviceIndex1).TriggerHapticPulse(3000);&&
&&&&&&&&}&&
&&&&&&&&if(device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger))&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&trigger&&&扳机键&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPress(SteamVR_Controller.ButtonMask.Trigger))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按了&&trigger&&&扳机键&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressUp(SteamVR_Controller.ButtonMask.Trigger))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press松开了&&trigger&&&扳机键&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.System))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&system&&&系统按钮/Steam&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.System))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&System&&&系统按钮/Steam&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.ApplicationMenu))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&ApplicationMenu&&&菜单键&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&ApplicationMenu&&&菜单键&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Grip))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Grip&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Grip))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Grip&&&&&");&&
&&&&&&&&}&&
&&&&&&&&&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis0))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis0&&&方向&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis0))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis0&&&方向&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis1))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis1&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis1))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis1&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis2))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis2&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis2))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis2&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis3))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis3&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis3))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis3&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis4))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis4&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis4))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis4&&&&&");&&
&&&&&&&&}&&
&pre&name="code"&class="csharp"&&&&&&&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis0))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis0&&&方向&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis0))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis0&&&方向&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis1))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis1&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis1))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis1&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis2))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis2&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis2))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis2&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis3))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis3&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis3))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis3&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis4))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("按下了&&Axis4&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Axis4))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Axis4&&&&&");&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetTouchDown(SteamVR_Controller.ButtonMask.Touchpad))&&
&&&&&&&&{&&&&&
&&&&&&&&&&&&Debug.Log("按下了&&Touchpad&&&&&");&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&Vector2&cc&=&device.GetAxis();&&
&&&&&&&&&&&&Debug.Log(cc);&&
&&&&&&&&&&&&
&&&&&&&&&&&&float&jiaodu&=&VectorAngle(new&Vector2(1,&0),&cc);&&
&&&&&&&&&&&&Debug.Log(jiaodu);&&
&&&&&&&&&&&&
&&&&&&&&&&&&if&(jiaodu&&&45&&&&jiaodu&&&135)&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&Debug.Log("下");&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&
&&&&&&&&&&&&if&(jiaodu&&&-45&&&&jiaodu&&&-135)&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&Debug.Log("上");&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&
&&&&&&&&&&&&if&((jiaodu&&&180&&&&jiaodu&&&135)&||&(jiaodu&&&-135&&&&jiaodu&&&-180))&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&Debug.Log("左");&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&
&&&&&&&&&&&&if&((jiaodu&&&0&&&&jiaodu&&&45)&||&(jiaodu&&&-45&&&&jiaodu&&&0))&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&Debug.Log("右");&&
&&&&&&&&&&&&}&&
&&&&&&&&}&&
&&&&&&&&if&(device.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad))&&
&&&&&&&&{&&
&&&&&&&&&&&&Debug.Log("用press按下了&&Touchpad&&&&&");&&
&&&&&&&&}&&
&&&&&&&&void&Update&()&{&&
&&&&float&VectorAngle(Vector2&from,&Vector2&to)&&
&&&&&&&&float&&&
&&&&&&&&Vector3&cross&=&Vector3.Cross(from,&to);&&
&&&&&&&&angle&=&Vector2.Angle(from,&to);&&
&&&&&&&&return&cross.z&&&0&?&-angle&:&&&
阅读(...) 评论()扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 1118|回复: 11
HTC vive开发:关于手柄按键
61065/1500排名<font color="#FF昨日变化主题帖子积分
蛮牛粉丝, 积分 1065, 距离下一级还需 435 积分
蛮牛粉丝, 积分 1065, 距离下一级还需 435 积分
蛮牛币2977
在线时间279 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 浮云zzy 于
13:08 编辑
一、关于左右手柄的对应关系两个手柄和SteamVR_TrackedObject.EIndex是对应的,一个是EIndex.Device2,另一个是EIndex.Device3(有编号的那个)在场景中手柄先后连入,先后激活的是Controller(right)、Controller(left),并添加SteamVR_TrackedObject组件
二、手柄按键
<font color="# - 菜单键<font color="# - 系统键(按下后手柄断开连接,再次按下手柄再次连接上)<font color="# - 扳机键<font color="# - 握持键<font color="# - 触摸板键
(1)点按按键监听方式一:(SteamVR的方式,封装了OpenVR)通过Device.GetPressDown / GetPressUp / GetPress获取按键事件
按键监听方式二:(OpenVR的方式,偏底层)通过controllerState.ulButtonPressed & (SteamVR_Controller.ButtonMask.Trigger)获取按键的按下、松开两种状态
1.png (17.58 KB, 下载次数: 0)
13:03 上传
注:m_State、m_PrevState分别表示:当前帧状态、前一帧状态获取按下时,触摸板的值
获取松开时,触摸板的值(这里必须使用前一帧的状态,因为松开时,当前帧的触摸的值为0):按下时,没有获取到当前帧触摸板的值!
猜测原因:获取值的Update方法在更新状态Update的方法之前执行了,更新状态的Update方法执行后,才能获取触摸板的值
解决方法:如果不想修改脚本执行顺序的话,可以使用LateUpdate
(2)触摸适用于触摸板键适用于扳机键(和点按类似,只是键程更短)
问题:触摸按下时,没有获取到当前帧触摸板的值!
原因:不明,内部机制需要搞清楚
解决办法:在触摸按下后的第二帧才获取到触摸板的值。
(3)触摸板轴的获取通过以上两种方式获取的VRControllerState_t,获取触摸板的轴x = state.rAxis0.xy = state.rAxis0.y
博客园地址:
蛮牛币 +20
每日推荐:
61065/1500排名<font color="#FF昨日变化主题帖子积分
蛮牛粉丝, 积分 1065, 距离下一级还需 435 积分
蛮牛粉丝, 积分 1065, 距离下一级还需 435 积分
蛮牛币2977
在线时间279 小时
额,第一次发帖,发过的帖子在哪里修改呢,格式有点粗糙。。。
主帖下方的编辑~ 就可以修改~&
每日推荐:
7排名<font color="#FF昨日变化主题帖子积分
蛮牛币2998
在线时间777 小时
没事,看的懂就行
每日推荐:
149/50排名<font color="#FF昨日变化3主题帖子积分
注册看看, 积分 49, 距离下一级还需 1 积分
注册看看, 积分 49, 距离下一级还需 1 积分
在线时间17 小时
向大神学习了
每日推荐:
5770/1000排名<font color="#FF昨日变化16主题帖子积分
熟悉之中, 积分 770, 距离下一级还需 230 积分
熟悉之中, 积分 770, 距离下一级还需 230 积分
蛮牛币1028
在线时间264 小时
mark&&vr 技术
每日推荐:
4433/500排名<font color="#FF昨日变化主题帖子积分
四处流浪, 积分 433, 距离下一级还需 67 积分
四处流浪, 积分 433, 距离下一级还需 67 积分
在线时间96 小时
学习了!!!!!!
每日推荐:
9排名<font color="#FF昨日变化主题帖子积分
蛮牛币1541
在线时间330 小时
赞一个,给力。
每日推荐:
9排名<font color="#FF昨日变化2主题帖子积分
蛮牛币5233
在线时间83 小时
楼主真棒!就喜欢这种原创的技术贴
每日推荐:
5711/1000排名<font color="#FF昨日变化4主题帖子积分
熟悉之中, 积分 711, 距离下一级还需 289 积分
熟悉之中, 积分 711, 距离下一级还需 289 积分
蛮牛币1428
在线时间258 小时
不错,学习了
每日推荐:
4393/500排名<font color="#FF昨日变化1主题帖子积分
四处流浪, 积分 393, 距离下一级还需 107 积分
四处流浪, 积分 393, 距离下一级还需 107 积分
在线时间101 小时
感谢楼主分享,解了几天的疑惑。
每日推荐:
13/50主题帖子积分
注册看看, 积分 3, 距离下一级还需 47 积分
注册看看, 积分 3, 距离下一级还需 47 积分
在线时间2 小时
为什么 我只能使用一个手柄 怎么同时使用二个手柄
每日推荐:
游戏蛮牛给予质量较高、影响力较大的unity相关技术开发者的荣誉称号
社区QQ达人
使用QQ帐号登录论坛的用户
认证开发者
经过游戏蛮牛认证的独立开发者}

我要回帖

更多关于 ue4 htc vive手柄 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信