动态下载关卡场景,打包关卡

通过BuildPipeLine的BuildPlayer方法,设置选项BuildOptions为BuildOptions.BuildAddttionalStreamedScene就可以将场景转化为一个可以动态加载的资源了。

string res = BuildPipeline.BuildPlayer(
    new string[] { "Assets/Scenes/scene_lobby.unity"},//场景资源的路径
    destDirFileName, //存储为的目标文件路径
    target, //平台 BuildTarget
    BuildOptions.BuildAdditionalStreamedScenes); //创建这个资源


通过上面创建出关卡场景的资源之后,就可以通过WWW.LoadFromCacheOrDownload(url,version)去加载指定的资源到内存中,就可以直接根据场景名字加载场景了

string sceneName = System.IO.Path.GetFileName(sceneFile);
if (!Application.CanStreamedLevelBeLoaded(sceneName))//流模式的关卡是否已经加载
{
    yield return StartCoroutine(GameApp.ResMgr.LoadLevel(sceneFile));//没有加载的话,下载场景关卡文件
}
ao = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneName);

首页 我的博客
粤ICP备17103704号