using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; public class ScenesManager : BaseManager { public void LoadScene(string name, UnityAction action) { SceneManager.LoadScene(name); if (action != null) { action(); } } public void LoadSceneAsyn(string name, UnityAction action, LoadSceneMode mode) { MonoManager.GetInstance().StartCoroutine(ReallyLoadSceneAsyn(name, action, mode)); } private IEnumerator ReallyLoadSceneAsyn(string name, UnityAction action, LoadSceneMode mode) { AsyncOperation ao = SceneManager.LoadSceneAsync(name, mode); ao.allowSceneActivation = true; while (!ao.isDone) { yield return ao.progress; } if (action != null) { action(); } } public void UnloadSceneAsyn(string name, UnityAction action) { MonoManager.GetInstance().StartCoroutine(ReallyUnloadSceneAsyn(name, action)); } private IEnumerator ReallyUnloadSceneAsyn(string name, UnityAction action) { AsyncOperation ao = SceneManager.UnloadSceneAsync(name); ao.allowSceneActivation = true; while (!ao.isDone) { yield return ao.progress; } if (action != null) { action(); } } }