1.同步加载场景:
/// <summary>
/// 同步加载场景
/// </summary>
/// <param name="name"></param>
/// <param name="action"></param>
public void LoadScence(string name, UnityAction action)
{
SceneManager.LoadScene(name);
//场景加载后的动作
action();
}
2.异步加载场景:
/// <summary>
/// 外部调用的异步加载场景方法
/// </summary>
/// <returns></returns>
public void LoadScenceAsync(string name, UnityAction action)
{
MonoManager.GetInstance().StartCoroutine(I_LoadScenceAsync(name,action));
}
/// <summary>
/// 异步加载场景协程
/// </summary>
/// <returns></returns>
IEnumerator I_LoadScenceAsync(string name,UnityAction action)
{
AsyncOperation async = SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().name + 1);
while(!async.isDone)
{
//分发加载场景事件:一般是UI加载场景的动画
EventCenter.GetInstance().EventTrigger("LoadScene", async.progress);
yield return async.progress;
}
//场景加载后的动作
action();
yield return 0;
}