1.使用了AssetBundle进行打包,首先建立一个文件夹Editor,这是一个特殊的文件夹,创建AssetBundle的类必须放在里面。这里是讲数据打包到Assets/StreamingAssets的文件夹下
代码如下
using UnityEditor;
using System.IO;
public class CreateAssetbundles
{
[MenuItem("AssetsBundle/Build AssetBundles")]
static void BuildAllAssetBundles()//进行打包
{
string dir = "Assets/StreamingAssets";
//判断该目录是否存在
if (Directory.Exists(dir) == false)
{
Directory.CreateDirectory(dir);//在工程下创建AssetBundles目录
}
//参数一为打包到哪个路径,参数二压缩选项 参数三 平台的目标
BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.Android);
}
}
2.设置图片的AssetBundle的名称,图片是girl和cat,设置的AssetBundle的名称都是test
3.点击这里的AssetsBundle--Build AssetBundles按钮,即可将上面的图片进行打包,名称为test
?打包结果如下
4.读取AssetsBundle里面的图片,加载出来。
如果是电脑端读取,路径如下
AssetBundle ab;
ab=AssetBundle.LoadFromFile("Assets/StreamingAssets/test");
Texture2D tex = ab.LoadAsset<Texture2D>("girl.jpg");
如果是安卓端读取图片,路径应该为,图中两种路径都可以,Application.dataPath + "!assets/test"和Application.streamingAssetsPath + "/test"
AssetBundle ab;
ab = AssetBundle.LoadFromFile(Application.dataPath + "!assets/test");
//ab = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/test");
Texture2D tex = ab.LoadAsset<Texture2D>("girl.jpg");
5.图片我设置的格式是默认的,读出来就是Texture2D格式,可以转为sprite格式。
?
参考Unity资源打包之Asset Bundle - 简书 (jianshu.com)
?
?
?
|