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

Unity点击按钮从菜单切换至游戏的实现问题

Unity菜单切换游戏界面问题解决方案

一、OnClick面板无法选择ChangeState的原因

Unity UI Button的事件面板默认仅识别无参方法,或参数为Unity内置基础类型(如int、string、GameObject)的方法。你的ChangeState(GameState newState)使用了自定义枚举类型作为参数,因此不会在面板中显示。

二、修改代码实现状态切换逻辑

给GameManager添加对应状态的无参包装方法,在方法内部直接调用ChangeState并传入指定枚举值,同时完善状态切换时的界面显示逻辑:

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;
    public GameObject menuCanvas;
    public GridManager gridManager;

    public GameState State;

    private void Awake()
    {
        Instance = this;
    }

    private void Start()
    {
        ChangeState(GameState.Menu);
    }

    public void ChangeState(GameState newState)
    {
        State = newState;

        switch (State)
        {
            case GameState.Menu:
                menuCanvas.SetActive(true);
                gridManager.gameObject.SetActive(false);
                break;
            case GameState.GameSearch:
                menuCanvas.SetActive(false);
                gridManager.gameObject.SetActive(true);
                // 可在此添加游戏初始化逻辑,比如生成网格内容
                break;
            case GameState.Victory:
                // 胜利界面逻辑
                break;
            case GameState.Lose:
                // 失败界面逻辑
                break;
            default:
                throw new ArgumentOutOfRangeException(nameof(State), newState, null);
        }
    }

    // Play按钮绑定的无参方法
    public void StartGame()
    {
        ChangeState(GameState.GameSearch);
    }

    // 返回菜单按钮绑定的无参方法(可选)
    public void ReturnToMenu()
    {
        ChangeState(GameState.Menu);
    }
}

public enum GameState
{
    Menu = 0,
    GameSearch = 1,
    Victory = 2,
    Lose = 3
}

三、Button绑定操作步骤

  1. 选中场景中的Play按钮,打开Inspector面板的**OnClick()**区域
  2. 点击+号,将场景内的GameManager对象拖入空对象槽
  3. 点击方法下拉框,选择GameManager -> StartGame()
  4. 运行游戏,点击Play按钮即可完成菜单到游戏界面的切换

四、解决初始界面同时显示的问题

在Start()方法中调用ChangeState(GameState.Menu),结合Menu状态下隐藏网格、显示菜单的逻辑,游戏启动后只会展示菜单界面,不会同时显示网格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:22:53