50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
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<bool, string> callBack)
|
|
{
|
|
string path = Application.streamingAssetsPath + "/" + sceneName.ToLower() + ".assetbundle";
|
|
Game.Instance?.IEnumeratorManager.Run(LoadABScene(path, sceneName, callBack));
|
|
}
|
|
|
|
//场景加载
|
|
IEnumerator LoadABScene(string path, string sceneName, Action<bool, string> 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);
|
|
}
|
|
}
|
|
}
|
|
}
|