You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity屏幕按钮脚本随物理键盘Enter键触发异常问题求助

问题分析与解决方法

这个问题的核心是Unity UI事件系统的特性导致的:当你点击屏幕按钮后,该按钮会成为当前选中的UI对象,而物理键盘的Enter键默认会触发当前选中UI按钮的点击事件,所以才会出现按物理Enter时同时触发最后点击的屏幕按钮脚本的情况。

解决方法如下:

  • 点击屏幕按钮后清除选中状态
    在屏幕数字按钮的点击处理脚本中,执行完显示数字的逻辑后,添加一行代码取消选中:

    UnityEngine.EventSystems.EventSystem.current.SetSelectedGameObject(null);
    

    这样每次点击屏幕按钮后,事件系统就没有选中的UI对象,物理Enter键就不会误触之前的按钮。

  • 确保物理Enter的输入逻辑独立
    检查物理键盘输入的代码,确保是在独立的逻辑里检测Enter键,比如在MonoBehaviour的Update方法中:

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.KeypadEnter))
        {
            GetAnswer();
        }
        // 其他物理数字键的检测逻辑...
    }
    

    不要依赖UI事件系统来处理物理键盘的Enter输入。

  • 修改UI按钮的导航设置
    如果你不需要按钮的导航功能,可以在Inspector面板中找到屏幕按钮的Navigation选项,将模式改为None,这样按钮不会被选中,自然也不会响应Enter键的触发。

内容的提问来源于stack exchange,提问作者Ruben Ruiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 16:32:01