78 lines
2.2 KiB
C#
78 lines
2.2 KiB
C#
// using UnityEngine;
|
|
// using UnityEngine.SceneManagement;
|
|
// using Cysharp.Threading.Tasks;
|
|
// using DefaultNamespace.ProcessMode;
|
|
// using MotionFramework; // 引入 UniTask
|
|
//
|
|
// public class SceneManagerSingleton : ModuleSingleton<SceneManagerSingleton>, IModule
|
|
// {
|
|
// private bool _isSceneLoading = false; // 标记场景是否正在加载
|
|
// private string _currentSceneName = ""; // 当前场景名称
|
|
//
|
|
// // 场景加载事件
|
|
// public delegate void SceneLoadedHandler(string sceneName);
|
|
//
|
|
// public event SceneLoadedHandler OnSceneLoaded;
|
|
//
|
|
//
|
|
// /// <summary>
|
|
// /// 检查当前场景是否正在加载
|
|
// /// </summary>
|
|
// public bool IsSceneLoading => _isSceneLoading;
|
|
//
|
|
// /// <summary>
|
|
// /// 获取当前加载的场景名称
|
|
// /// </summary>
|
|
// public string CurrentSceneName => _currentSceneName;
|
|
//
|
|
// /// <summary>
|
|
// /// 异步加载场景
|
|
// /// </summary>
|
|
// /// <param name="sceneName">目标场景名称</param>
|
|
// /// <returns>返回一个 UniTask</returns>
|
|
// public async UniTask LoadSceneAsync(string sceneName)
|
|
// {
|
|
// // 如果场景已经在加载,直接返回
|
|
// if (_isSceneLoading)
|
|
// {
|
|
// Debug.LogWarning("场景正在加载中,不能重复加载!");
|
|
// return;
|
|
// }
|
|
//
|
|
// // 设置为正在加载
|
|
// _isSceneLoading = true;
|
|
// _currentSceneName = sceneName;
|
|
//
|
|
// // 异步加载场景
|
|
// AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);
|
|
//
|
|
// // 等待场景加载完成
|
|
// while (!asyncLoad.isDone)
|
|
// {
|
|
// await UniTask.Yield(); // 每一帧等待
|
|
// }
|
|
//
|
|
// // 加载完成,触发事件
|
|
// OnSceneLoaded?.Invoke(sceneName);
|
|
//
|
|
// // 设置为加载完成
|
|
// _isSceneLoading = false;
|
|
// Debug.Log($"场景 {sceneName} 加载完成");
|
|
// }
|
|
//
|
|
// public void OnCreate(object createParam)
|
|
// {
|
|
// }
|
|
//
|
|
// public void OnUpdate()
|
|
// {
|
|
// }
|
|
//
|
|
// public void OnDestroy()
|
|
// {
|
|
// }
|
|
//
|
|
// public void OnGUI()
|
|
// {
|
|
// }
|
|
// } |