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

Unity Toggle点击后仅关闭目标菜单,无法实现正常切换

Unity Toggle功能仅能关闭无法再次切换的问题修复

你的代码逻辑存在明显问题:两个if语句是顺序执行的,导致每次调用Toggle方法时,即使第一个if修改了状态,第二个if会立刻触发,最终只能看到关闭效果。

问题分析

初始状态startToggled = true:

  1. 第一次调用Toggle:第一个if条件不满足,第二个if执行,关闭菜单并将startToggled设为false。
  2. 第二次调用Toggle:第一个if条件满足,打开菜单并将startToggled设为true,但紧接着第二个if因为startToggled现在为true,再次执行关闭操作,最终菜单还是关闭状态。

修正方案

方案一:使用else if替代第二个if

让两个条件互斥,每次只执行其中一个分支:

public GameObject startToggle;
bool startToggled = true;

public void Toggle()
{
    if (startToggled == false)
    {
        startToggle.SetActive(true);
        startToggled = true;
    }
    else if (startToggled == true)
    {
        startToggle.SetActive(false);
        startToggled = false;
    }
}

方案二:简化逻辑(推荐)

直接对状态取反,再同步菜单的激活状态,代码更简洁且不易出错:

public GameObject startToggle;
bool startToggled = true;

public void Toggle()
{
    startToggled = !startToggled;
    startToggle.SetActive(startToggled);
}

内容的提问来源于stack exchange,提问作者Random Guy Who Needs Help

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:30:47