Unity加载场景封装
1、使用场景:
场景跳转,异步加载,场景切换进度条显示
2、实现原理:
对Unity的场景加载进一步封装【使用自己封装的Mono协程、事件中心】
3、具体实现:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; /// <summary> /// 场景切换 /// </summary> public class SceneController : SingletonBase<SceneController> { //普通切换场景 public void LoadScene(string sceneName,UnityAction fun) { //场景同步加载 SceneManager.LoadScene(sceneName); //加载完再执行 fun(); } //异步跳转加载场景 public void LoadSceneAsync(string sceneName,UnityAction fun) { //场景异步加载 通过Mono管理器开启协程 MonoMgr.GetInstance().StartCoroutine(realLoadSceneAsync(sceneName,fun)); } //异步跳转场景 具体实现 private IEnumerator realLoadSceneAsync(string sceneName,UnityAction fun) { AsyncOperation ao=SceneManager.LoadSceneAsync(sceneName); while (!ao.isDone) { //事件派发 执行 进度条显示 EventCenter.GetInstance().EventTrigger("SceneLoadAsync",ao.progress); yield return ao.progress; } fun(); } }
评论