Files
VR-WuKong/Assets/GameScripts/Main/SceneLoader.cs

52 lines
1.6 KiB
C#
Raw Normal View History

2025-11-13 17:40:28 +08:00
using UnityEngine;
using System.Collections.Generic;
using YooAsset;
using Cysharp.Threading.Tasks;
using Tuan.GameFramework;
namespace Tuan.GameScripts.Main
{
public class SceneLoader : Singleton<SceneLoader>
{
Dictionary<string, SceneHandle> sceneHandles = new Dictionary<string, SceneHandle>();
public async UniTask LoadSceneAsync(string sceneName, LoadingWindow loadingWindow = null)
{
SceneHandle sceneHandle = null;
if (!sceneHandles.ContainsKey(sceneName))
{
2025-11-14 18:44:06 +08:00
sceneHandle = YooAssets.LoadSceneAsync(sceneName);
2025-11-13 17:40:28 +08:00
await sceneHandle.ToUniTask(loadingWindow);
sceneHandles[sceneName] = sceneHandle;
}
else
{
sceneHandle = sceneHandles[sceneName];
}
sceneHandle.ActivateScene();
if(loadingWindow != null)
UIManager.Inst.CloseUI(loadingWindow);
}
public void LoadScene(string sceneName)
{
SceneHandle sceneHandle = null;
if (!sceneHandles.ContainsKey(sceneName))
{
2025-11-14 18:44:06 +08:00
sceneHandle = YooAssets.LoadSceneSync(sceneName);
2025-11-13 17:40:28 +08:00
sceneHandles[sceneName] = sceneHandle;
}
else
{
sceneHandle = sceneHandles[sceneName];
}
sceneHandle.ActivateScene();
}
public SceneHandle GetHandle(string name)
{
if (sceneHandles.ContainsKey(name))
return sceneHandles[name];
return null;
}
}
}