请选择 进入手机版 | 继续访问电脑版

[相关技巧] 怎样 在Unity中利用 VR暴风魔镜蓝牙手柄

[复制链接]
查看52 | 回复8 | 2021-9-13 15:45:20 | 显示全部楼层 |阅读模式
目次

一、蓝牙手柄按键的相应

在暴风魔镜的官网下载了最新的SDK后导入Unity项目,发现SDK中的DEMO全部黑白 手柄控制的,然后只能参照着SDK内里 的接口阐明 文档本身 研究~~效果 发现接口文档非一样平常 的坑,一开始是直接在MojingInputManager.cs内里 直接添补 ,直到末了 才发现用IntegrateInputManager.prefab更换 场景中原有的MojingInputManager.prefab以后就可以跟检测Unity的输入一样检测到手柄的输入了,以下为源码(详情可直接参考接口文档3.9节):

  1. //摇杆上移
  2. if (CrossPlatformInputManager.GetButtonDown("UP"))
  3. {
  4. Debug.LogWarning("Up_Get");
  5. up = 1;
  6. }
  7. //摇杆下移
  8. if (CrossPlatformInputManager.GetButtonDown("DOWN"))
  9. {
  10. Debug.LogWarning("Down_Get");
  11. up = -1;
  12. }
  13. //摇杆右移
  14. if (CrossPlatformInputManager.GetButtonDown("RIGHT"))
  15. {
  16. Debug.LogWarning("Right_Get");
  17. right = 1;
  18. }
  19. //摇杆左移
  20. if (CrossPlatformInputManager.GetButtonDown("LEFT"))
  21. {
  22. Debug.LogWarning("Left_Get");
  23. right = -1;
  24. }
  25. //摇杆回到中间位置
  26. if (CrossPlatformInputManager.GetButton("CENTER"))
  27. {
  28. Debug.LogWarning("CENTER_Get");
  29. up = 0;
  30. right = 0;
  31. }
  32. //按下确定(OK)键
  33. if (CrossPlatformInputManager.GetButtonDown("OK"))
  34. {
  35. Debug.LogWarning("OK_Get");
  36. }
  37. //按下取消键
  38. if (CrossPlatformInputManager.GetButtonDown("C"))
  39. {
  40. Debug.LogWarning("Cancle_Get");
  41. }
  42. //按下菜单键
  43. if (CrossPlatformInputManager.GetButtonDown("MENU"))
  44. {
  45. Debug.LogWarning("MENU_Get");
  46. }
复制代码

二、UGUI的变乱 检测

VR项目中最坑的地方就是原有的UI都不再顺应 ,虽说很多SDK的官方都说只要把UI设置成天下 坐标即可,但是原有的UI都是跟随视角移动的,改成天下 坐标后要多奇怪 有多奇怪 ,以是 为了更加的和谐,还是针对VR计划 一套UI比较好~(以上仅代表个人观点,不喜勿喷~ )。 OK,如今 假设已经预备 好UI的素材了,那么开始搞起~假设没有什么其他的特殊 要求,在加入Canvas后在属性面板修改如下两个参数即可 

第一个Render Mode就是渲染模式了~将其改为World Space,第二个Event Camera为变乱 相应 的摄像机,在没有手动添加摄像机的环境 下,场景中应该会有如下三个摄像机: 

VR模式效果 如下 

在停用左右眼摄像机,只打开主摄像机时效果 如下
主摄像机在非VR模式时会打开,在VR模式下默认关闭。Canvas内里 相应 的摄像机就选择主摄像机即可(假如 没有跟UI之间的交互此处也可不必设置),云云 这般就可以在VR场景中看到Canvas内里 的UI了。
若需求内里 有跟UI之间的交互(比如点击按钮等等),那么Canvas的Event Camera必须设置,然后在EventSystem上面挂载SDK内里 的GazeInputModule脚本如下图所示 

此中 Cursor内里 的物体是刚刚和那三个镜头厮混在一起的准星,触发操作端赖 它了~ 假如 仅仅是如许 还是不行的~做到这一步在准星移动到BUTTON上面的时间 只有悬浮效果 (即高亮),点击遥控器的OK键的时间 是没有任何相应 的(本想参考官方DEMO找到应对方法的···效果 DEMO全部不是手柄控制的,以是 只能本身 想办法办理 了o(╯□╰)o),在尝试了多种方法之后,终极 找到的可行方法是~~修改GazeInputModule脚本,将它的点击检测内里 加上CrossPlatformInputManager.GetButtonDown("OK")就OK啦~

以上就是怎样 在Unity中利用 暴风魔镜蓝牙手柄的详细 内容,更多关于在Unity中利用 暴风魔镜蓝牙手柄的资料请关注脚本之家别的 相干 文章!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 玉米人 | 2021-9-21 05:18:00 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的源码论坛他的站点都是商业源码,还是免费下载的那种!特别好用。访问地址:http://www.mxswl.com 猫先森网络
回复

使用道具 举报

avatar wangliqxm | 2021-9-26 18:10:20 | 显示全部楼层
admin楼主的帖子实在是写得太好了。文笔流畅,修辞得体!
回复

使用道具 举报

avatar 术数古籍专卖疤 | 2021-9-26 23:33:22 | 显示全部楼层
收藏了,以后可能会用到!
回复

使用道具 举报

收藏了,很不错的内容!
回复

使用道具 举报

无图无真相!
回复

使用道具 举报

收藏了,admin楼主加油!
回复

使用道具 举报

avatar hyq481 | 4 天前 | 显示全部楼层
admin楼主看起来很有学问!
回复

使用道具 举报

avatar 阿甘cx1982 | 昨天 19:52 | 显示全部楼层
admin楼主最近很消极啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则