Addressable(13)自定义更新目录和下载AB包、引用计数规则

本文详细介绍了Unity中的Addressables系统,包括目录的作用、如何手动更新目录、预加载包的使用以及引用计数规则,以确保资源管理和内存的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

偏文字相关和细节方面,不是很重要

自定义更新目录和下载AB包

知识点一:目录的作用

  • Json文件

    1. 加载AB包、图集、资源、场景、实例化对象所用的脚本(会通过反射去加载他们来使用)
    2. AB包中所有资源类型对应的类(会通过反射去加载他们来使用)
    3. AB包对应路径
    4. 资源的path名

    image-20231219130200055

  • Hash文件(发布远程才有)

    • 记录什么

      目录文件对应hash码(每一个文件都有一个唯一码,用来判断文件是否变化)

      image-20231219130335279

      image-20231219130404281

    • 作用

      更新时本地的文件hash码会和远端目录的hash码进行对比

      如果发现不一样就会更新目录文件

    • 补充

      当我们使用远端发布内容时,在资源服务器也会有一个目录文件

      Addressables会在运行时自动管理目录

      如果远端目录发生变化了(他会通过hash文件里面存储的数据判断是否是新目录)

      它会自动下载新版本并将其加载到内存中

知识点二:手动更新目录

  1. 如果要手动更新目录 建议在设置中关闭自动更新

    image-20231221124539416

  2. 自动检查所有目录是否由更新,并更新目录API

            Addressables.UpdateCatalogs().Completed += (obj) =>
            {
         
                Debug.Log(obj.DebugName);
                Addressables.Release(obj);
            };
    
  3. 获取目录列表,再更新目录

    // 参数bool就是加载结束后,不会自动释放异步加载得句柄
    Addressables.CheckForCatalogUpdates(true).Completed += (obj) =>
    {
         
        // 如果列表里面内容大于0,证明可以更新得目录
        if (obj.Result.Count > 0)
        {
         
            Debug.Log(obj.DebugName);
            // 根据别列表更新目录
            Addressables.UpdateCatalogs(obj.Result, true).Completed += (handle) =>
            {
         
                Debug.Log(obj.DebugName);
                // 自动释放
                //Addressables.Release(handle);
                //Addressables.Release(obj);
            };
        }
    };
    

知识点三:预加载包

    IEnumerator LoadAsset()
    {
   
        //1.首先获取下载包的大小
        AsyncOperationHandle<long> handleSize = Addressables
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘建杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值