
ScenesManager.cs
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;using UnityEngine.SceneManagement;//场景切换//委托//协程public class ScenesManager : BaseManager<ScenesManager>{//切换场景-同步public void LoadScene(string SenseName, UnityAction fun){SceneManager.LoadScene(SenseName);//加载完成后执行fun();}//切换场景-异步public void LoadSceneAsyn(string SenseName, UnityAction fun){MonoManager.GetInstance().StartCoroutine(ReallyLoadSceneAsyn(SenseName, fun));//MonoManager开启协程}//协程 真实异步加载private IEnumerator ReallyLoadSceneAsyn(string SenseName, UnityAction fun){AsyncOperation ao = SceneManager.LoadSceneAsync(SenseName);while (!ao.isDone){//事件中心向外分发进度//EventCenter.GetInstance().EventTriggler("进度条", ao.progress);yield return ao.progress;//百分比进度}yield return ao;//加载完成后执行fun();}}