using UnityEngine; using UnityEngine.SceneManagement; using System.Collections; public class scene2 : MonoBehaviour { // 目标场景名称(确保与Build Settings中完全一致) public string targetSceneName = "SampleScene1"; //public string targetSceneName2 = "SampleScene"; public string targetSceneName3 = "SampleSceneche"; public string targetSceneName4 = "SampleSceneshu0930"; void Awake() { // 启动时检查并加载场景 LoadSceneIfNotLoaded(); } public void LoadSceneIfNotLoaded() { // 分别检查并加载三个场景 CheckAndLoadScene(targetSceneName); //CheckAndLoadScene(targetSceneName2); CheckAndLoadScene(targetSceneName3); CheckAndLoadScene(targetSceneName4); } // 先检查场景是否已加载,未加载则启动异步加载 private void CheckAndLoadScene(string sceneName) { // 通过场景名称获取场景信息 Scene scene = SceneManager.GetSceneByName(sceneName); // 判断场景是否已加载(isLoaded为true表示已加载) if (scene.isLoaded) { Debug.Log($"场景 {sceneName} 已加载,无需重复加载"); return; // 已加载则直接返回,不执行加载 } // 未加载则启动异步加载协程 StartCoroutine(LoadSceneAdditive(sceneName)); } // 异步叠加加载场景 private IEnumerator LoadSceneAdditive(string s) { AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(s, LoadSceneMode.Additive); // 等待加载完成 while (!asyncLoad.isDone) { // 可选:添加加载进度日志 // Debug.Log($"加载 {s} 进度:{asyncLoad.progress * 100:F1}%"); yield return null; } Debug.Log($"场景 {s} 加载完成"); } }