unity3d Unity -输入系统在内置游戏中不起作用,但在编辑器中起作用

ikfrs5lh  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(166)

我正在使用Unity的新(ish)输入系统--Unity 2021.3.12f的v1.4.4(发布版)包,它在编辑器模式下工作正常,但在构建模式下根本不工作。没有错误或崩溃--只是在使用构建的exe时对鼠标、键盘、游戏手柄或操纵杆没有响应。我已经用尽了谷歌的前3页,试图找到一个解决方案,我正在寻找更多的想法。
我尝试过的事情:

  • 软件包的1.5.0测试版
  • 更改清单. json
  • 重新安装软件包
  • 仅构建32位
  • 在项目设置中将输入法模式更改为"both"和"new"
  • 使用输入系统资产触发事件,而不是示例化自动生成类的版本('com. unity. inputsystem:InputActionCodeGenerator')
  • 重新生成上述文件
  • 重建项目

下面是一个代码片段:

using UnityEngine.InputSystem;

public class MainCameraController : MonoBehaviour
{

    CityInput cityInput; // my input asset auto generated class
    
    void OnEnable()
    {
        if (cityInput == null) cityInput = new CityInput();
        cityInput.Enable();
    }

    void OnDisable()
    {
        cityInput.Disable();
    }

    void Update()
    {
    // stuff....
    moveDirection = cityInput.Player.MoveDirection.ReadValue<Vector2>().normalized;
    // stuff....
    }

}

相关文档/页面:
https://forum.unity.com/threads/new-input-system-doesnt-work-on-build.1188934/
https://gamedev.stackexchange.com/questions/183243/unitys-new-input-system-does-not-work-after-building-the-game
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/HowDoI.html
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/Actions.html#creating-actions
要重新创建设置(MCVE):

  • 从程序包管理器安装"输入系统" 1.4.4。
  • 创建一个新的输入资产,详细说明哪些键/按钮与您想要的名称操作相关,例如左/右/上/跳转等。请参阅文档。
  • 使用Unity的自动生成器脚本生成所需的C#,如上文所链接,方法是单击资产并使用"生成C#"切换和应用按钮。
  • 将using UnityEngine.InputSystem指令添加到脚本中。
  • 在OnEnable或OnAwake中示例化自动生成的脚本的副本。
  • 按照上面的代码片段和链接的文档使用UnityEngine.InputSystem中的新方法,例如yourAutoGeneratedInputScript.Player.MoveDirection.ReadValue()。
  • 构建并运行包含移动脚本的场景。
gab6jxml

gab6jxml1#

原来这是由于使用玩家首选项来存储移动速度之类的东西--它们在构建的游戏中与编辑器中有不同的存储位置:player prefs

相关问题