最近一直在头疼一个问题,自己写的小Demo,利用AssetBundle动态加载的方式在安卓平台显示一个图片的预设。一直不成功的原因是:因为加载路径的问题,在安卓平台下加载不出来assetBundle对象。我是用的AssetBundle.LoadFromFile()的方法加载的,这个路径是AssetBundle.LoadFromFile(Application.dataPath+"!assets/texture"); !!!!!!!!其中texture是我给打包资源取的名字。
下面我来详细说一下AssetBundle在安卓平台的打包与加载解析。
1.首先,我要显示一个图片的预设体,然后在代码中加载这个预设并显示。这里有两种动态加载的方案:Resource.Load()的方式和AssetBundle.LoadFromFile()的方式,来自文件就用这个,也可以来自Memory,用CreateFromMemory(byte[]),这个byte[]可以来自文件读取的缓冲,也可以用www的下载或者其他可能的方式。
其实WWW的assetBundle就是内部数据读取完后自动创建了一个assetBundle而已。
2.给要打包的资源取个名字,因为只有一个图片的预设,我在这里起的是texture。这里上个图:
如上图右下角,AssetBundle的名字是texture(对了,我的图片预设名字是Texture,在这里顺便提一下)。
然后就可以进行资源打包了,打包的话,要注意:我把资源打包在了StreamingAssets目录下,这是一个Assets下的特殊目录,StreamingAssets也就是流式资源载入目录,该目录被拷贝到build文件夹中,不会修改,一般用于放置音频文件。
打包的代码如下: