AssetBundle打包依赖关系

本文详细阐述了Unity中AssetBundle的打包和加载原理。当资源被多个AssetBundle引用时,可能会导致资源重复打包。合理的AssetBundle划分和依赖管理能够优化资源使用,避免冗余。在实际操作中,需要考虑将公共资源单独打包以减少冗余,并确保在加载时正确处理依赖关系。

1. 先说结论

a. 当一个AssetBundle中的资源引用了不在别的AssetBundle中的资源时,该资源会在打包时复制一份到AssetBundle中。
b. 当多个AssetBundle中的资源引用了不在别的AssetBundle中的资源时,该资源会在打包时复制多份到每一个AssetBundle中。
c. 当AssetBundle中的资源引用了位于其他AssetBundle中的资源,会对那个AssetBundle形成依赖。

2. 举例说明

在这里插入图片描述
如图所示:A引用了B和C,B和C同时引用了D。

情况1 只对A打包: A.ab里包含A、B、C、D
情况2 分别对A、B、C打包: A.ab里包含A、D,且依赖于B.ab、C.ab;B.ab里包含B、D;C.ab里包含C、D。此时,D被打包了三份。
情况3 分别对A、B、D进行打包: A.ab里包含A、C,且依赖于B.ab、D.ab;B.ab里包含B,且依赖于D.ab;D.ac里包含D。此时,各个资源只被打包一次。
所以,在打包时,我们需要对资源进行合理的划分,当最后一层被多个上层引用时,需要考虑将其打成一个独立的ab包。
在加载ab包里的资源时,我们需要先加载该ab包依赖的其余ab包。合理的项目架构,在打ab包时,依赖层级一般不会超过三层。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值