Unity加载AB包

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 buildshttps://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包不能重复加载,会报错

猜你喜欢

转载自blog.csdn.net/Test_Two/article/details/122497248
今日推荐