【问题标题】:Buttons broken using new Input System使用新输入系统破坏按钮
【发布时间】:2020-05-17 20:19:43
【问题描述】:

我遇到了一个似乎无法调试的问题。我的项目最初开始使用2019.2,升级到2019.3没有任何问题。然后我为新的输入系统安装了预览包。 这“禁用”了所有按钮,因为它们在编辑器中和运行时可见,但无法单击或与之交互。

为了重现这个问题,我尝试了:

  1. 创建一个新的空 2D 项目
  2. 安装并切换到新的输入系统
  3. 从包管理器导入他们的演示场景

此时我尝试运行每个场景。除了“SimpleDemo_UsingActions.unity”之外,所有这些都有效。

  1. 我在“SimpleDemo_UsingPlayerInput.unity”中添加了一个按钮,并为该按钮添加了一个脚本。有一个功能:
    public void Button()
    {
        Debug.Log("Button Pressed");
    }

我运行了这个场景,它成功了!我可以四处移动拍摄脚本中内置的立方体,然后单击按钮,它会显示在日志中。

因为这个原因,我很难过。我不知道如何调试这个问题。

我可以给点建议吗?有没有人遇到过类似的问题或知道我将如何进行调试?

【问题讨论】:

  • 不幸的是,这是新输入系统的一部分乐趣,没有很多文档。听起来好像您错过了项目中的某些步骤。但是这里没有足够的能力来回答
  • 你知道为什么我的回答解决了这个问题吗? @BugFinder

标签: unity3d button user-input


【解决方案1】:

我设法找到了答案。出于某种原因,使用新输入系统的“InputSystemUIInputModule”会破坏所有 UI,并且无法正常工作。

我通过删除我的 EventSystem 并在场景中创建一个新的来修复它。

不要。我重复一遍。 不要将新输入系统的管理器用于事件系统。

【讨论】:

  • 欢迎使用仍处于测试阶段的东西的乐趣。它可能是一些奇怪的残余,就像如果你有地形并尝试使用 URP/HDRP,如果你在游戏中升级地形,它不起作用,如果你导出,选择一个渲染管道然后导入它,它会加载它。
【解决方案2】:

我写答案是因为它是谷歌的第一个结果。

要摆脱这种情况,请在层次结构中选择 EventSystem,然后在检查器中,您应该会看到警告和按钮,用新的输入系统替换旧的输入系统。

统一版。 2019.4.1
输入系统版本。 1.0.0

【讨论】:

    【解决方案3】:

    我目前仍在测试,但我设法通过从 Packages >> Input System >> InputSystem >> Plugins >> PlayerInput 复制 defaultInputActions.inputactions 文件来获得一些东西。

    我意识到.inputactions 有一个 UI Action Maps。我添加了更多的动作图并进行了一些测试,添加的动作图可以正常工作,按钮也有一定的反应。

    现在就分享这个,以便更多的开发人员可以和我一起测试,并希望找到解决这个主要问题的方法。

    【讨论】:

      【解决方案4】:

      有同样的问题。确保输入系统包里面没有任何设备......从以前的输入系统迁移后它对我有用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-16
        • 2011-11-27
        • 2021-02-12
        相关资源
        最近更新 更多