Unity Rewired添加设备

关键字:

Unity输入, Input替代品, Rewired, Unity接入外设, 飞行外设, 驾驶外设, Unity连接多个外设, Unity Input手柄每次连接Joy Num不同会变化

概要

Rewired是Unity下的一款插件,提供了更专业的输入系统,相比内置输入系统非常灵活强大,通过配置文件方便接入并识别各种外设,

添加一种设备

Rewired可以通过预先设定的特征来识别设备,识别到设备类型后,通过预先设置的按键映射数据实现按键读取。
因此,添加一个设备的过程有如下几步:

1. 设定识别特征

添加一个设备首先需要添加一个数据文件来保存设置信息,假设现在已经有一个空的数据文件(如何创建后面再说),如下图
打开设置窗口

  1. 从Rewired插件中找到文件Assets/Rewired/Internal/Data/Controllers/HardwareMaps/Joysticks/ThrustmasterTFlightRudderPedals.asset,选中该文件,
  2. 在Inspector中单击Launch Hardware Joystick Map Editor按键打开设置窗口,
  3. 依次单击按钮Win Raw Input
  4. 按钮Matching Criteria

此时窗口下方有三个区域,可以设置外设的三种特征,如图:
完整设置窗口

  1. 外设的按键信息
    分别是Axis,Button,Hat的数量,如下图是一个外设的信息
  2. 外设的名字
    名字匹配支持正则表达式,很灵活
  3. 外设的id
    没有用到,没细究,一般前两个够用了,可以把这个删掉

一种外设

前两种特征凡是设置了的,必须都匹配才能识别,id特征不清楚

检验设置是否成功

外设正确识别

  1. 打开场景GamepadTemplateUI,选中物体Rewired Input Manager,
  2. 在Inspector中单击Input Manager组件的按钮Run in Edit Mode
  3. 此时,如果有设备连接到计算机,并且特征与上面设置相符,则会看到该设备的Is Recognized值为true

2. 设定按键映射

添加按键定义

定义按键

  1. 打开设置识别特征时候的窗口Hardware Joystick Map Editor,单击Element Identifiers,

该界面下有Add Entry可以添加一条按键定义,添加一个按键需要起一个名字,并设置其作为Axis还是Button等

映射

映射轴

映射按钮

  1. 定义Element之后,需要将其映射到物理按键上,在设置窗口中单击Win Raw Input
  2. 再依次单击AxesButton分别映射两种类型。不论是Axes还是Button,映射最核心的是两步:
  3. 选择一个定义好的Element
  4. 选择一个系统识别的轴或按钮号

注:

1. 创建Hardware Joystick Map数据文件

创建数据文件

有两种方式:

  1. Window->Rewired->Create->Other Assets->Hardware Joystick Map
  2. 从Rewired内置的数据文件中选择一个与待接入设备类似的,复制一份,然后进行修改。这种方式借助已有数据,如果设备相似度很高,可以省去不少设置工作。这种方式需要在设置窗口Settings选项卡下修改Guid和Name,Guid可以借助第1种方式生成。

2. 外设信息获取

系统面板

插件工具

两种方式:

  1. Window系统的话,设备与打印机能看到设备信息
  2. Rewired提供了开发工具Rewired/DevTools/JoystickElementIdetifier.scene

后来发现Windows内置的面板最多只显示32个按键,如下图:
系统与工具

3. 将Hardware Joystick Map添加到Controller Data Files

绑定

场景中的Input Manager组件需要一个Data File,这个Controller Data Files中需要添加某外设的Hardware Joystick Map,场景中才能识别到该外设。

posted @ 2021-05-25 23:05  玩家剑小鱼  阅读(1387)  评论(0编辑  收藏  举报