Unity-AssetBundle包管理器(AssetBundleManager)1.官方Demo简析

本文解析Unity官方的AssetBundle Manager Demo,介绍如何初始化、加载和卸载AssetBundle。虽然官方已转向AddressableAssetSystem,但该Demo仍具参考价值。文章详细讲解了资源加载的核心逻辑,包括异步加载AssetBundle和使用AssetBundleLoadOperation获取资源。
摘要由CSDN通过智能技术生成

本文由 祝你万事顺利 出品,转载请注明出处。

官方开源的AssetBundle Manager Demo。AssetBundle Manager是官方推出的一个AB包管理器,但是此管理器已经不再AssetStore中支持了,通过上面的链接我们仍然可以看到AB包管理器实现的源码。

这里官方的Demo作为一个参考,实际使用根据项目的具体情况会有所不同,本文对官方的Demo进行解析,在实际使用中对Manager要根据使用的具体情况进行一些自定义的改进。事实上,我们能看到官方对AssetBundleManagerDemo的更新到2018年下半年后面就没有更新了。但是在Unity2018以及更新的版本中,官方提出了新的解决方案AddressableAssetSystem此方案将Manager进行了封装,并做了很多改进优化,在后面的文章中,将进行新方案的解析。


使用方法

初始化

在调用管理器的AB包加载方法之前,第一步要对AB包进行初始化,这一步加载StreamingAssets,在加载完成后,设置全局的AssetBundleManifest,这样我们才可以在后面正确的加载依赖。

public IEnumerator Initialize()
    {
   
        var request = AssetBundleManager.Initialize();
        if (request != null)
        {
   
            yield return StartCoroutine(request);
        }
    }
IEnumerator Start()
    {
   
        yield return StartCoroutine(Initialize());
    }
加载AssetBundle

声明一个AssetBundleLoadOperation的请求。在请求完成后调用Operation中的GetAsset方法获取目标类型的资源。

IEnumerator Start()
    {
   
        yield return StartCoroutine(Initialize());
        AssetBundleLoadOperation request = AssetBundleManager.LoadAssetBundle("commonpanel.prefab");
        yield return StartCoroutine(request);
        GameObject commonPanelB = request.GetAsset<GameObject>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值