Tz2/Assets/Framework/Manager/SceneManagerSingleton.cs

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