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

Unity脚本无法正常切换场景求助:点击按钮仅加载首个场景

问题原因

默认情况下,SceneManager.LoadScene()使用LoadSceneMode.Single模式,加载新场景时会销毁当前场景的所有对象。你的协程所在的脚本属于当前场景的对象,场景2加载完成后这个脚本就被销毁了,所以yield return new WaitForSeconds(5)之后的代码根本不会执行。

解决方案

给你三种适合新手的解决思路:

方法1:使用 additive 加载模式(保留原场景)

修改加载逻辑,加载场景2时不销毁当前场景,等协程执行完再处理场景3:

using UnityEngine.SceneManagement;

public void PickLockClick()
{
    StartCoroutine(PickLockScene());
}

IEnumerator PickLockScene()
{
    // 加载场景2,不销毁当前场景
    SceneManager.LoadScene(2, LoadSceneMode.Additive);
    yield return new WaitForSeconds(5);
    // 卸载场景2后加载场景3,也可以直接用Single模式加载场景3覆盖所有
    SceneManager.UnloadSceneAsync(2);
    SceneManager.LoadScene(3);
}

注意:这种方式要避免场景2的相机、UI和原场景冲突,必要时可以暂时禁用原场景的相关对象。

方法2:把协程放到永不销毁的对象上

创建一个空对象,给它添加脚本并设置DontDestroyOnLoad,这样场景切换时对象不会被销毁,协程能完整执行:

using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneLoader : MonoBehaviour
{
    void Awake()
    {
        // 确保对象在场景切换时不被销毁
        DontDestroyOnLoad(gameObject);
    }

    public void PickLockClick()
    {
        StartCoroutine(PickLockScene());
    }

    IEnumerator PickLockScene()
    {
        SceneManager.LoadScene(2);
        yield return new WaitForSeconds(5);
        SceneManager.LoadScene(3);
    }
}

操作步骤:

  • 在当前场景创建空对象,挂载这个脚本
  • 按钮的点击事件绑定到该脚本的PickLockClick方法

方法3:在场景2中添加计时脚本(最直观)

直接在场景2里放一个脚本,进入场景后自动计时5秒再加载场景3:

using UnityEngine;
using UnityEngine.SceneManagement;

public class LoadScene3AfterDelay : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(LoadScene3());
    }

    IEnumerator LoadScene3()
    {
        yield return new WaitForSeconds(5);
        SceneManager.LoadScene(3);
    }
}

操作步骤:

  • 打开场景2,创建空对象并挂载这个脚本
  • 确保场景3已经添加到Build Settings的Scenes In Build列表中
额外注意事项
  • 所有要加载的场景(场景2、场景3)必须添加到File > Build Settings > Scenes In Build列表里,否则会加载失败
  • 检查场景编号是否正确,Build Settings里的顺序就是场景的编号(第一个是0,第二个是1,以此类推),别搞混了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:36:14