Assetbundle 打包加载场景

Posted 福建小屁孩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Assetbundle 打包加载场景相关的知识,希望对你有一定的参考价值。

public class CreateAssetBundle : Editor
{
// 打包unity场景文件
[MenuItem("Assets/Build AssetBundle Scene")]
static void MyBuild()
{
// 需要打包的场景名字
string[] levels = { "Assets/Scenes/Shinie/Indoor.unity", "Assets/Scenes/Shiwai/Outdoor.unity" };
// 注意这里【区别】通常我们打包,第2个参数都是指定文件夹目录,在此方法中,此参数表示具体【打包后文件的名字】
// 记得指定目标平台,不同平台的打包文件是不可以通用的。最后的BuildOptions要选择流格式
BuildPipeline.BuildPlayer(levels, Application.streamingAssetsPath + "/Scene.unity3d", BuildTarget.WebGL, BuildOptions.BuildAdditionalStreamedScenes);
// 刷新,可以直接在Unity工程中看见打包后的文件
AssetDatabase.Refresh();
}
}

 

public class LoadAssetBundle : MonoBehaviour
{
private string url;
void Start()
{
// 下载压缩包,写出具体的名字
url = Application.streamingAssetsPath + "/Scene.unity3d";
StartCoroutine(Download());
}

IEnumerator Download()
{
WWW bundlewww = WWW.LoadFromCacheOrDownload(new System.Uri(url).AbsoluteUri, 1);
yield return bundlewww;
AssetBundle assetbundle = bundlewww.assetBundle;
}

void OnGUI()
{
if (GUILayout.Button("Load InDoor"))
{

SceneManager.LoadScene("Indoor", LoadSceneMode.Additive);
}
if (GUILayout.Button("Load Outdoor"))
{
SceneManager.LoadScene("Outdoor", LoadSceneMode.Additive);
}
}

以上是关于Assetbundle 打包加载场景的主要内容,如果未能解决你的问题,请参考以下文章

Unity进阶----AssetBundle_03(2018/11/07)

AssetBundle详解与优化

AssetBundle单场景打包 多场景打包

AssetBundle资源打包与加载

Unity3D资源异步加载——AssetBundle资源打包加载

Unity最新版打包AssetBundle和加载的方法