注释
这是问题所在:
当我开始游戏时,控制器会如下自动映射...
我假设如果更改控制器的插入顺序,或者在其他计算机/设备上运行该控制器,或者使用其他控制器等,则输入映射肯定不会自动映射到以上。
我的问题:
我确实有一个脚本来检测正在输入哪个控制器。 (例如JoyNum,这就是我发现播放器4是控制器6的方式)
鉴于此,是否可以在运行时设置Unity的默认“输入管理器”的JoyNums来进行补偿?
我的想法是创建一个屏幕,每个人都可以开始加入游戏。到那时,我将能够检测到所有控制器。 (例如,每个玩家是哪个JoyNum)。最后一步将是重新映射Unity的输入管理器。这可能吗?
谢谢!
PS:我在https://github.com/daemon3000/InputManager的Git上搜索并找到“自定义输入管理器”
但是,该项目没有建立,我也不知道如何实现。
答案 0 :(得分:0)
因此,经过反复尝试,我想出了一个可行的解决方案。 (虽然可能不是最干净/推荐的方法)
步骤1)为输入管理器中的每个控制器(全部8个)添加每个操纵杆轴(全部28个)。 (脚本可以使此操作非常简单/省时)
第2步)创建自己的输入映射器。 (检测每个控制器的“上”和“左”。)
第3步)将这些结果保存到“ PlayerPrefs”文件中。
第4步)创建自己的输入检测脚本。 (唯一需要访问Unity的输入管理器的是“操纵杆轴”。)其他按钮可以通过从PlayerPrefs文件加载的(字符串)手动完成。
这种方法的优点:
缺点: