【问题标题】:A new input system prevents you from pressing buttons on the canvas新的输入系统可防止您按下画布上的按钮
【发布时间】:2022-01-16 14:59:09
【问题描述】:

当我按下 E 键时,我无法按下弹出的 UI 中的按钮。我想我已经清除了所有典型错误。

  • GraphicRaycaster" 已附加到 Canvas。
  • 检查 CanvasGroup 中的“Interactable”和“BlocksRaycasts”。
  • 检查“RaycastTarget”。
  • 确保目标 UI 前面没有其他 UI 重叠。
  • 目标 UI 前面没有重叠的“不可见 UI”

然后我意识到层次结构上的“Starter Assets - Third Person Character Controller - PlayerArmature”可能是问题所在。 我能够通过尝试删除 UI 来操纵它。 当我查看它时,我发现正在使用一个新的输入系统。 我通过查看官方文档和其他文章将其解释为需要将其更改为操作图以操作 UI。 所以我添加了一个脚本来在 UI 显示时将动作映射更改为 UI 的动作映射。

private void Update()
    {
        if (Keyboard.current.eKey.wasPressedThisFrame)
        {
            if (optionView.gameObject.activeSelf == false)
            {
                _playerInput.SwitchCurrentActionMap("UI");

            }else if (optionView.gameObject.activeSelf == true)
            {
                _playerInput.SwitchCurrentActionMap("Player");

            }
        }

我也做不到。

我将动作映射从默认映射更改为 UI 映射,但它不起作用。 存储库在这里。 https://github.com/eiei114/WwiseTestProject

【问题讨论】:

  • 根据网站的标签指南,请不要在您的问题标题中添加标签。

标签: c# unity3d user-interface


【解决方案1】:

新的输入系统存在同时在游戏和画布上工作的问题。我也遇到了这个问题。我发现禁用使用 Player Input Controller 的主角与 Canvas 控制器发生冲突,这很有帮助。或者甚至更好地同时使用旧系统和新系统。

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    相关资源
    最近更新 更多