This commit is contained in:
2026-10-06 16:26:20 +05:30
parent d4c7f5dd46
commit 7fa0621ff8
230 changed files with 16821 additions and 55 deletions
@@ -0,0 +1,62 @@
using System.Collections;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.ResourceManagement.ResourceProviders;
using UnityEngine.SceneManagement;
public static class AddressableSceneLoader
{
public const string IntroScene = "Intro";
public const string MainMenuScene = "MainMenu";
public const string GameScene = "Game";
public static void Load(string sceneName)
{
AddressableSceneLoadRunner.Instance.Begin(sceneName);
}
public static IEnumerator LoadRoutine(string sceneName)
{
AsyncOperationHandle<SceneInstance> handle = Addressables.LoadSceneAsync(sceneName, LoadSceneMode.Single);
yield return handle;
if (handle.Status != AsyncOperationStatus.Succeeded)
Debug.LogError("Failed to load addressable scene '" + sceneName + "': " + handle.OperationException);
}
}
public class AddressableSceneLoadRunner : MonoBehaviour
{
static AddressableSceneLoadRunner instance;
public static AddressableSceneLoadRunner Instance
{
get
{
if (instance != null)
return instance;
var go = new GameObject(nameof(AddressableSceneLoadRunner));
DontDestroyOnLoad(go);
instance = go.AddComponent<AddressableSceneLoadRunner>();
return instance;
}
}
void Awake()
{
if (instance != null && instance != this)
{
Destroy(gameObject);
return;
}
instance = this;
DontDestroyOnLoad(gameObject);
}
public void Begin(string sceneName)
{
StartCoroutine(AddressableSceneLoader.LoadRoutine(sceneName));
}
}