Addressable 增量包

本文介绍了Unity中Addressable系统的增量加载特性,详细说明了如何利用UnityWebRequestAssetBundle进行AssetBundle的远程加载,并提供了预下载的实现思路。

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

Addressable是支持增量加载的。Addressable进行远程加载的时候是使用的UnityWebRequestAssetBundle.GetAssetBundle(url)来下载AssetBundle,在UnityWebRequestAssetBundle是内部支持Caching的,所以当你的AssetBundle已经下载到本地进行缓存过,UnityWebRequestAssetBundle在、再加载同一个AssetBundle的时候就自动从本地进行加载了,具体情况可以查看官方文档
预先下载的思路大致如下:
在Addressable Settings里面将Disable Catalog Update on Startup勾选上,这样就可以在第一次更新的时候手动判断远程的Catalog是否有更新。如果获取到远程的Catalong有更新之后,再根据刚刚更新的Catalog来下载AssetBundle了。推荐一下黄程大神写的文章,Addressable系统解析及实践经验
image.png

上面的代码在Unity编辑器里面跑的时候,那个percentage会各种诡异,有时候会在某一个百分比停留N多时间,不知道是不是Addressable的bug。。。没有试过在真机上跑,所以不确定是不是编辑器独有的问题。

### Unity Addressable 热更新实现方式 #### 资源管理与打包 Addressable 是 Unity 提供的一种资源管理系统,能够自动处理资源的依赖关系并支持动态加载。为了实现热更新功能,需要将目标资源纳入 Addressable 的管理范围。具体来说,开发者需将待更新的资源分配至特定的 Group 中[^1]。每个 Group 对应一个 ScriptableObject 配置文件,这些配置文件定义了该组资源的行为和属性。 #### 更新流程概述 当项目中的某些资源发生变化时,可以通过以下方法生成增量更新包: - 修改可更新的资源内容(注意 C# 脚本不会被包含在此类更新中)。 - 增加本地版本号标记以反映变更状态。随后通过菜单路径 `Addressables -> Build -> Update a Previous Build` 构建差异部分[^2]。此过程仅会重新构建那些已更改的内容,并将其保存于指定目录下(如 ServerData/Android 或其他平台对应的子目录)。 #### 数据同步与部署 完成增量包制作之后,应当把新产生的所有相关文件上传至 CDN 上进行分发。与此同时,在服务端也需要相应提升其记录的版本编号以便客户端识别存在新的可用更新数据[^2]。 #### 特殊情况考虑 - HybridCLR 支持下的 DLL 文件替换机制 对于采用 HybridCLR 技术优化运行效率的应用而言,除了常规资产外还需要特别关注脚本逻辑方面的改动如何融入整体热更体系之中。按照惯例做法,经过编译后的 HotCLR.dll 应放置在 Assets 同级目录结构内的预设位置 (即 HybridCLRData\HotUpdateDlls\[TargetPlatform]\),如果发现缺失则可能是因为当前设置里程序集名称未匹配实际需求所致;此时调整命名使其一致即可解决问题[^3]。 ```python import os def check_hotclr_dll_path(platform_name="StandaloneWindows64"): base_dir = "./HybridCLRData/HotUpdateDlls/" target_folder = f"{base_dir}{platform_name}/" expected_file = "HotCLR.dll" full_path = os.path.join(target_folder, expected_file) if not os.path.exists(full_path): raise FileNotFoundError(f"The required file {expected_file} does not exist at path: {full_path}. Please ensure the assembly name matches folder structure.") check_hotclr_dll_path() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值