打包AssetBundle
参考博客https://blog.csdn.net/chinarc...
Resource.load也可以读取资源,但是不能分包,所以每次更新都需要全量更新,不利于后续开发新版本,推荐使用AssetBundle打包方式。
将需要打包的素材,选择一下AssetBundle名称,如果没有就new一个然后选择,我这里写的是datamodels,图片名为atlas。
在Editor文件夹中新建脚本
using System.IO;
using UnityEditor;
public class BuildAssetBundle
{
[MenuItem("常用工具/打包AssetsBundle")] //菜单栏添加按钮
static void BuildAllAssetsBundles()
{
string folder = "AssetBundles";
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
}
BuildPipeline.BuildAssetBundles("AssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneOSX);
}
}
这样标题栏就多了一个打包菜单,此时点击打包就可以生成打包文件了,在Assets文件夹的同级文件夹中,在Unity编辑器里看不到。
加载资源
加载普通的Sprite很简单,如果需要加载Unity内置图集,就麻烦一些。我找到了这个博客http://tsubakit1.hateblo.jp/e...
AssetBundle ab1 = AssetBundle.LoadFromFile("AssetBundles/datamodels");
Sprite[] atlas = ab1.LoadAssetWithSubAssets<Sprite>("atlas");
var sprite = Array.Find(atlas, item => item.name == "face_1");
face01 = sprite;
按照路径加载资源,之后用数组,加载子集合的方式,读出sprites,再用数组查找。我的图集名为atlas,需要加载的sprite名为face_1,实测有效。
Unity版本:2019.4.0f1
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。