如何使用AssetBundle打包并加载场景?

xiaotong9699 2017-02-16 08:55:21
我将场景保存至Assets文件夹下,命名为“ABTest”,将其AssetBundle如图更改:



BuildPipeline.BuildAssetBundles ("Assets/StreamingAssets", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
函数进行打包。
打包完成后会在StreamingAssets文件夹下出现四个文件。


然后加载:
public string sceneAssetBundle = "test.assetbundle";
public string sceneName = "ABTest";


IEnumerator Start(){
string path = "file://" + Application.dataPath + "/StreamingAssets/" + sceneAssetBundle;
WWW www = www.LoadFromCacheOrDownload (path, 0);
yield return www;
if (www.error != null) {
AssetBundle ab = www.assetBundle;
AsyncOperation async = SceneManager.LoadSceneAsync (sceneName);
yield return async;
} else {
Debug.Log (www.error);
}
}

控制台显示NULL。意思是在包里没有找到打包的场景文件?为什么?我应如何解决?

然后,我用
BuildPipeline.BuildPlayer()
对场景进行打包。按照官方脚本API上的范例那样。然后出错,错误是
Source file `Assets/Scene_Data/Managed/Assembly-CSharp.dll' is a binary file and not a text file
官方脚本API也提示了脚本会产生有问题,但我看不懂。。。
这条路也死了。
我怕应该如何打包并加载场景呢?

谢谢帮助!
...全文
688 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaotong9699 2017-02-23
  • 打赏
  • 举报
回复
引用 1 楼 ogurishun2016 的回复:
打包自己百度吧 使用的话 Resource.Load 还有一个方法,然后实例化一个,别忘了释放
Resource.Load能获取Assetbundle的包吗?
ogurishun2016 2017-02-17
  • 打赏
  • 举报
回复
打包自己百度吧 使用的话 Resource.Load 还有一个方法,然后实例化一个,别忘了释放

2,543

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧