需要的软件和插件及对应版本
Unity2023.2.20f1c1
Input System1.7.0
SimpleHIDWrite(抓包数据)
需要的硬件
SM600控制器
=========================================================================
步骤一
将手柄中下方有个洞,将它掰到PhoenixRC上
将手柄连接至电脑,打开unity,点击Window—Analysis—Input Debugger—Unsupported里看到PengFei Model RC Simulator -PhoenixRC Controller (HID),这里看到我们可以看到unity识别了SM600控制器,但是不支持使用,所以我们需要写一篇脚本将SM600做成可以支持的。
打开Window,打开My Assets,点击Unity Registry(不同版本之间可能布局不一样),搜索Input System添加上去。
步骤二
为什么需要这个代码?
想象你买了一个新款的凤凰SM600无人机控制器,想用它来操作Unity游戏。但是当你插上电脑后,Unity却完全不认识这个设备——就像你带着一个只会说方言的朋友去国外,当地人完全听不懂他在说什么。
这段代码就是专门解决这个问题的"翻译官",它能让Unity理解凤凰SM600控制器的"语言"。
代码的三大核心功能
-
设备身份证办理(设备注册部分)
-
告诉Unity:"当你看到一个设备编号是VID 0x1781和PID 0x0898的设备时,它就是凤凰SM600控制器"
-
-
语言翻译手册(数据结构部分)
-
提供翻译规则:"这个设备发来的数据中,第1-2个字节代表左摇杆,第3-4个字节代表右摇杆..."
-
-
标准化输出(输入映射部分)
-
把翻译后的内容转换成Unity能理解的格式:"左摇杆往右偏了30%,A键被按下了"
-
第一步:我们先在Assets文件下方创建Editor文件夹,在Editor文件夹下面创建”PhoenixSM600ControllerSupport“C#脚本,然后添加代码
using UnityEngine; // Unity引擎核心功能
using UnityEngine.InputSystem; // Unity输入系统
using UnityEngine.In