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);
}
}

posted @ 2017-09-27 11:36  福建小屁孩  阅读(267)  评论(0编辑  收藏  举报