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();
}
}