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

Unity游戏变焦功能故障:松开按键无法恢复默认FOV

故障原因
  • 核心错误为HandleZoom方法内的按键检测层级错误:Input.GetKeyUp(zoomKey)的判断被嵌套在了Input.GetKeyDown(zoomKey)的执行块中。Input.GetKeyDown仅在按键按下的单帧返回true,该帧内按键还处于按下状态,Input.GetKeyUp永远不可能触发,因此松开按键后的FOV复位逻辑完全不会执行。
修复方案

将Input.GetKeyUp的判断逻辑从Input.GetKeyDown的代码块中移出,和按下判断平级即可,修正后的HandleZoom代码如下:

private void HandleZoom()
{
    // 按下按键触发变焦放大
    if(Input.GetKeyDown(zoomKey))
    {
        if(zoomRoutine != null)
        {
            StopCoroutine(zoomRoutine);
            zoomRoutine = null;
        }
        zoomRoutine = StartCoroutine(toggleZoom(true));
    }

    // 松开按键触发FOV复位
    if (Input.GetKeyUp(zoomKey))
    {
        if (zoomRoutine != null)
        {
            StopCoroutine(zoomRoutine);
            zoomRoutine = null;
        }
        zoomRoutine = StartCoroutine(toggleZoom(false));
    }
}
可选校验项
  • 确认zoomKey变量已正确赋值为你想要绑定的变焦按键,比如常用的右键变焦可赋值为KeyCode.Mouse1
  • 若你需要的是点按一次切换变焦状态、再点按一次恢复的逻辑,可将GetKeyUp的判断改为GetKeyDown,再加个状态变量控制放大/复位切换即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:30:00