解耦
经常会有各种奇奇怪怪的硬件需要使用TCP/UDP去交互,这次尝试下使用InputSystem去解耦。
定义一个结构体实现这个接口。
FourCC
四个字符来定义一个唯一标识符。
使用这个描述符来定义一些字段,其中标记了各个按钮或者遥感的定义。
遥感的定义需要额外的format
属性,这里的VC2B
指的是a Vector2 of bytes
定义X轴y轴
剩下的上下左右似乎是硬编码的。
总结下就是依靠一个结构体以及各个描述符来定义数据交换的大小和约定的格式。
定义好了结构体,接下来就是要实现真正的InputDevice
了。
初始化
首先是确保在编辑器以及运行时都会初始化。
这里的初始化中包含一段模板代码。用来通过”Custom”来发现设备。
公开一些属性,方便其他人调用。
FinishSetup
current
保留一个静态对象,类似单例,但是每次都更新,而不会销毁之前的。
创建设备
一切就绪,接下来就是创建一个设备了。
设备是不能通过new或者其他方式创建,只能在事先注册布局时传入匹配器,然后通过匹配器去创建
这里是在编辑器中虚拟了一个设备
轮询键盘去更新设备状态
UDP Driver
栗子吃完了,用UDP写一个吧
先是一个基础的UDPServer
然后增加设备相关代码即可:
基础的UDP消息充当按钮就OK了。后续可以根据需要调整为遥感或其他各种类型的控件。