using System.Collections; using UnityEngine; using UnityEngine.SceneManagement; namespace Scampz.GameJam { public class GameManager : MonoBehaviour { public static GameManager Instance; private LevelChanger _levelChanger; private void Awake() { if (Instance != null && Instance != this) { Destroy(this); return; } Instance = this; _levelChanger = GetComponentInChildren(); } public void LoadScene(string sceneName, LoadSceneMode loadSceneMode) { StartCoroutine(LoadSceneAsync(sceneName, loadSceneMode)); } private IEnumerator LoadSceneAsync(string sceneName, LoadSceneMode loadSceneMode) { _levelChanger.FadeAnimation(); yield return new WaitForSecondsRealtime(3f); var loadSceneOperation = SceneManager.LoadSceneAsync(sceneName, loadSceneMode); loadSceneOperation.allowSceneActivation = false; while (!loadSceneOperation.isDone) { yield return null; if (loadSceneOperation.progress >= 0.9f) break; } loadSceneOperation.allowSceneActivation = true; yield return loadSceneOperation; } } }