This commit is contained in:
2025-11-12 18:39:09 +08:00
parent f615d8ddb0
commit 430fc90ade
37 changed files with 671 additions and 151 deletions

View File

@@ -0,0 +1,45 @@
using UnityEngine;
using System.Collections.Generic;
using YooAsset;
using Cysharp.Threading.Tasks;
using Tuan.GameFramework;
namespace Tuan.GameScripts.Main
{
public class GameSceneManager : Singleton<GameSceneManager>
{
Dictionary<string, SceneHandle> sceneHandles = new Dictionary<string, SceneHandle>();
public async UniTask LoadSceneAsync(string sceneName)
{
SceneHandle sceneHandle = null;
LoadingWindow loadingWindow = await UIManager.Inst.ShowUIAsync<LoadingWindow>($"Loading{sceneName}", MainUICanvas.Inst.Medium, true);
if (!sceneHandles.ContainsKey(sceneName))
{
sceneHandle = YooAssets.LoadSceneAsync("Test");
await sceneHandle.ToUniTask(loadingWindow);
sceneHandles[sceneName] = sceneHandle;
}
else
{
sceneHandle = sceneHandles[sceneName];
}
sceneHandle.ActivateScene();
}
public async void LoadScene(string sceneName)
{
SceneHandle sceneHandle = null;
if (!sceneHandles.ContainsKey(sceneName))
{
LoadingWindow loadingWindow = await UIManager.Inst.ShowUIAsync<LoadingWindow>($"Loading{sceneName}", MainUICanvas.Inst.Medium, true);
sceneHandle = YooAssets.LoadSceneSync("Test");
sceneHandles[sceneName] = sceneHandle;
}
else
{
sceneHandle = sceneHandles[sceneName];
}
sceneHandle.ActivateScene();
}
}
}