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

Unity场景重复且加载状态切换异常致按钮失效,如何修复?

问题解决:Unity场景循环加载导致重复与状态切换

核心原因

你的问题是典型的场景间循环触发加载:

  • 如果UI_Manager脚本同时挂载在Scene 0(主菜单)和Scene 1(游戏主场景)的对象上,就会出现无限循环:
    1. 启动Scene0,脚本Start()加载Scene1
    2. Scene1加载完成后,其内部的UI_Manager又会执行Start()加载Scene0
    3. 往复循环导致场景在加载/未加载状态跳变,按钮无法正常响应

解决方案

  • 清理重复的脚本实例:只在主菜单场景(Scene0)保留挂载了UI_Manager的对象,游戏主场景(Scene1)中完全移除该脚本的任何实例。
  • 显式指定加载模式:修改加载代码,明确使用Single模式确保每次只保留一个场景(虽然默认是Single,但显式声明更稳妥):
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.SceneManagement;
    
    public class UI_Manager : MonoBehaviour
    {
        void Start() => SceneManager.LoadScene(1, LoadSceneMode.Single);
        
        public void UI_Start() => SceneManager.LoadScene(0, LoadSceneMode.Single);
    
        public void UI_Quit() => Application.Quit();
    }
    
  • 验证Build Settings配置:确保Build列表中同时包含Scene0和Scene1,且Scene0被设置为启动场景。
  • 日志定位(可选):如果不确定哪个场景的脚本在触发加载,可以添加日志输出:
    void Start() 
    {
        Debug.Log("触发加载的场景:" + this.gameObject.scene.name);
        SceneManager.LoadScene(1, LoadSceneMode.Single);
    }
    
    运行后查看Console,就能明确是哪个场景的脚本在重复执行加载逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:16:06