// 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()
//     {
//     }
// }