通过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);