using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using System; namespace ZXKFramework { public class SceneManager : IScene { AssetBundleCreateRequest bundleTemp; AsyncOperation async; public void LoadLevel(int level) { FrameworkScenesArgs e = new FrameworkScenesArgs() { scnesIndex = UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex }; Game.Instance?.SendEvent(FrameworkConsts.E_ExitScenes, e); UnityEngine.SceneManagement.SceneManager.LoadScene(level, UnityEngine.SceneManagement.LoadSceneMode.Single); } public void LoadABScene(string sceneName, Action callBack) { string path = Application.streamingAssetsPath + "/" + sceneName.ToLower() + ".assetbundle"; Game.Instance?.IEnumeratorManager.Run(LoadABScene(path, sceneName, callBack)); } //场景加载 IEnumerator LoadABScene(string path, string sceneName, Action callBack) { FileInfo info = new FileInfo(path); if (info.Exists) { bundleTemp = AssetBundle.LoadFromFileAsync(path); yield return bundleTemp; async = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneName); yield return async; callBack?.Invoke(true, "加载场景成功"); } else { callBack?.Invoke(false, "AB加载场景 资源不存在 " + path); } } } }