unity手柄映射怎么解决

手柄输入基本已经知道怎么弄了,就是input里,但是关键是市面上手柄很多,比如某个手柄对应 A键对应 joystick button 0,但是另一个手柄可能对应的是joystick button 1,那这要怎么解决的,也不可能把所有手柄都设定一遍,有没有人知道。

Unity提供了一个名为Input System的新输入系统,它支持多种类型的手柄,并且可以通过手柄映射来处理手柄的输入。在Input System中,手柄的映射是通过Input Action Maps来实现的。可以通过配置Input Action Maps来为不同的手柄设置不同的映射。

首先,需要创建一个Input Action Asset,并为每个手柄创建一个Input Action Map。然后,为每个Input Action Map添加Action和Binding。Action定义了手柄上的按键和轴,Binding将手柄上的输入映射到Action。使用Input System时,可以通过代码获取手柄的输入,并处理它们。

要为不同的手柄设置不同的映射,可以创建不同的Input Action Map,并为每个手柄选择相应的Input Action Map。在运行时,Input System会自动检测手柄,并使用正确的Input Action Map。

当然,手柄的映射并不是一成不变的,如果遇到新的手柄,可以通过手柄的配置文件或手动映射来添加新的映射。在Input System中,可以使用Input Debugger工具来查看手柄的输入和映射。