[游戏开发][Unity]Assetbundle打包与资源加载框架

该系列文章详细阐述了一个企业级的UnityAssetbundle框架,包括Assetbundle的打包流程、下载策略和加载机制。内容涵盖增量打包、打包配置、资源收集、加密安全、断点续传下载、边玩边下、资源与加载管理等关键环节,提供了完整的Unity工程示例。
摘要由CSDN通过智能技术生成

前言

我会分三个篇章写整个框架分别是:

AB打包篇

AB下载篇

AB加载篇

整个框架内容比较多,属于企业级方案,涉及到增量打包、打包策略、AB包下载、边玩边下、资源管理系统,资源加载系统等功能。

Assetbundle打包篇目录

Assetbundle打包篇(1)打包流程介绍

Assetbundle打包篇(2)打包资源配置篇

Assetbundle打包篇(3)打包资源收集

Assetbundle打包篇(4)开始打包

Assetbundle打包篇(5)使用Manifest二次构建资源索引

Assetbundle打包篇(6)加密AB包和索引关系文件


Assetbundle下载篇目录

Assetbundle下载篇(1)热更前准备与下载AB包清单

Assetbundle下载篇(2)加载本地AB清单对比版本号是否需要热更

Assetbundle下载篇(3)根据AB包清单数据创建下载列表

Assetbundle下载篇(4)检查断点续传以及开始下载AB包

Assetbundle下载篇(5)开始下载AB包

Assetbundle下载篇(6)保存AB包清单文件到persistentDataPath

Assetbundle下载篇(7)获取运行时(边玩边下)下载列表

Assetbundle下载篇(8)下载完成的AB包剪切到persistentDataPath

Assetbundle下载篇(9)启动边玩边下流程


Assetbundle加载篇目录

Assetbundle加载篇(1)资源管理器与加载任务管理器

Assetbundle加载篇(2)中间层API

Assetbundle加载篇(3)所有资源Loader与ResourceManager源码

Assetbundle加载篇(4)加载资源流程详解

Assetbundle加载篇(5)加载任务相关代码

Assetbundle加载篇(6)编辑器模式加载任务详解

Assetbundle加载篇(7)AssetBundle加载任务详解

Assetbundle加载篇(8)加载场景特殊处理

Assetbundle加载篇(9)AB包卸载

Assetbundle加载篇(10)AB包依赖关系图显示


Unity工程地址,暂时没时间维护源码,凑合看吧

这是我自己的写一个框架,里面包含了资源加载、热更新、Xlua等内容

startup启动场景,可以选择AB模式

https://gitcode.net/liuyongjie1992/assetbundlebuild_resload.git

提示:这个打包的做法也是比较老的了,新项目建议直接使用 Addressable,Lua代码别用Addressable,用BuildPipiline单独打包,Lua包+Addressable 包生成 文件列表然后上传服务器

AssetBundle 引用计数是指在使用 AssetBundle 打包资源的时候,记录每个 AssetBundle 被使用的次数,以便在使用完后及时释放资源,从而避免内存泄漏。在使用 AssetBundle 加载资源时,会对加载的 AssetBundle 进行引用计数的增加,使用完后再进行引用计数的减少,当引用计数为 0 时,就可以释放该 AssetBundle资源。 AssetBundle打包加载一般分为以下几个步骤: 1. 打包资源文件:使用 Unity Editor 自带的 AssetBundle 打包工具,将需要打包资源文件进行打包,生成 AssetBundle 文件。 2. 加载 AssetBundle 文件:在游戏运行时,使用 Unity 提供的 AssetBundle.LoadFromFile 或 AssetBundle.LoadFromMemory 函数来加载 AssetBundle 文件。 3. 加载资源文件:使用加载的 AssetBundle,使用 AssetBundle.LoadAsset 或 AssetBundle.LoadAssetAsync 函数加载需要使用的资源文件。 4. 使用完成后,释放资源:使用 AssetBundle.Unload(false) 函数来释放 AssetBundle 中的资源,同时进行引用计数的减少。如果不再需要该 AssetBundle 中的任何资源,可以使用 AssetBundle.Unload(true) 函数来彻底释放该 AssetBundle,包括清除 AssetBundle 的缓存。 使用 AssetBundle 打包加载资源可以有效地减少应用程序的内存占用,提高应用程序的性能。同时,在使用 AssetBundle 的时候,需要注意避免重复加载同一个 AssetBundle,以及及时释放不再使用的 AssetBundle 资源,避免内存泄漏。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Little丶Seven

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

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

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

打赏作者

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

抵扣说明:

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

余额充值