# 若开发者在游戏中使用Unity Addressables资源管理框架，如何集成游戏资源包后台下载功能

Addressables资源加载机制是根据Addressables的缓存文件判定资源包是否已下载，若未下载再通过游戏资源包后台下载功能把资源文件下载到Addressables的缓存目录下。集成步骤如下：

*   在游戏资源包下载的onDownloadContentRequest生命周期函数中：
    
    1.  下载远端服务器上的Addressables的资源索引hash文件，与本地Addressables的hash文件做对比。
        
    2.  若hash值不一样，则表示有热更资源，准备进行资源更新，下载远端服务器上的Addressables的资源索引文件catalog.json文件。
        
    3.  将远端的catalog.json文件以及本地的catalog.json文件，按照catalog解析规则（具体可参考Addressables源码中ContentCatalogData.cs的解析实现）解析其中关键字段，diff后获取下载资源包列表信息。
        
    4.  把需要下载的资源列表信息转换成游戏资源包下载的AssetDownloadConfig对象返回给系统。
        
    5.  把catalog.json，catalog.hash以及GroupData.json文件存放在Addressables目标目录下，目录地址参考如下：
        
        ```
        /data/app/el2/<USERID>/base/<PACKAGENAME>/haps/entry/files/com.unity.addressables
        ```
        
*   在游戏资源包下载的onBackgroundDownloadSucceeded生命周期函数中：
    
    完成下载的资源文件按照Addressables缓存文件规则，转移到Addressables缓存目录下。缓存目录参考如下：
    
    ```
    // 缓存目录规则：{缓存根目录}/{资源名称}/{资源哈希值}
    /data/app/el2/<USERID>/base/<PACKAGENAME>/haps/entry/files/TuanjieCache/Shared/feda8eb785f66e8cbfd86bda86dd111e/d73e91fc7611459d41ea88e823492c08
    ```