1.新建项目
2.导入官方插件——>AssetBundleBrowser
GitHub - Unity-Technologies/AssetBundles-Browser: Editor tool for viewing and debugging asset bundle contents before and after buildsEditor tool for viewing and debugging asset bundle contents before and after builds - GitHub - Unity-Technologies/AssetBundles-Browser: Editor tool for viewing and debugging asset bundle contents before and after builds https://github.com/Unity-Technologies/AssetBundles-Browser
3.生成AB包——>设置AB包名称

4. 打开AssetBundleBrowser——>打AB包


参数设置完后打包
5.加载AB包
?同步加载
public class LoadAB : MonoBehaviour
{
public Image img;
// Start is called before the first frame update
void Start()
{
// 加载AB包
AssetBundle ab = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/" + "head");
// 加载AB包中的资源
Sprite temp = ab.LoadAsset<Sprite>("Test1");
// 将加载到的资源赋值给image
img.sprite= temp;
}
}
(加载成功)
异步加载
public class LoadAB : MonoBehaviour
{
public Image img;
// Start is called before the first frame update
void Start()
{
StartCoroutine(LoadAsyncAB("head", "Test2"));
}
IEnumerator LoadAsyncAB(string _abName, string _ObjectName)
{
// 加载AB包
AssetBundleCreateRequest abAsy = AssetBundle.LoadFromFileAsync(Application.streamingAssetsPath + "/" + _abName);
// 等待加载完成
yield return abAsy;
// 加载AB包中的资源
AssetBundleRequest abq = abAsy.assetBundle.LoadAssetAsync(_ObjectName, typeof(Sprite));
// 等待加载完成
yield return abq;
// 将加载到的资源赋值给image
img.sprite = abq.asset as Sprite;
}
}
(加载成功)
注意事项:AB包不能重复加载,会报错
|