AssetBundle在u3d的4.x和5.x的几大区别

本文详细介绍了Unity3D AssetBundle在4.x和5.x版本的差异,包括打包方法、资源打包策略、新功能及API变化。在4.x中,依赖打包需要手动控制,而在5.x中,引擎能自动处理依赖关系。5.x引入了新的打包选项,如ChunkBasedCompression和Manifest文件,简化了AssetBundle的管理和加载。此外,还讨论了不同压缩类型的优缺点。
摘要由CSDN通过智能技术生成

首先介绍一下AssetBundle。

AssetBundles 是有 Unity 编辑器在编辑环境中(enit-time)创建的一些列的文件,这些文件可以被用在项目的运行环境中(run-time)。 AssetBundles 可以包括的资源文件有模型文件(models)、材质(materials)、纹理(textures)和场景(scenes)。AssetBundles 不能包含脚本文件。具体来说,一个 AssetBundle 就是把一系列的资源文件或者场景文件以某种方式紧密保存的一个文件。这个 AssetBundle 文件可以被单独加载到可执行的应用程序中。AssetBundles 可以由被 Unity 构建的游戏或者应用按需加载使用。这允许对像模型、纹理、音频、甚至是整个的游戏场景这样的资源进行流式加载和异步加载。AssetBundles 可以预缓存(pre-cached)和存储在本地,这样在运行时就可以立即加载它们。但是 AssetBundles 技术的主要的目的是在需要的时候能够从远端的服务器上按需请求特定的资源,并加载到游戏中。AssetBundles 可以包含 Unity 可以识别的任何类型的资源,包括自定义的二进制数据。唯一的例外是,脚本资源是不被允许的。


接下来我们看一下在4.x里的AssetBundle的打包方法


  1. BuildPipeline.BuildAssetBundle(UnityEngine.Object mainAsset, UnityEngine.Object[] assets,  string pathName, BuildAssetBundleOptions assetBundleOptions)  


  1. BuildPipeline.PushAssetDependencies();  
  2. BuildPipeline.PopAssetDependencies();  


进行一次Push,多次Build操作,如依次Build资源Prefab-A,Prefab-B时,可以认为Prefab-A,Prefab-B会依次 进栈,所以如果两者之间也存在共享资源,则后者会依赖前者。具体表现为,运行时先加载Prefab-B会出现共享资源丢失的情况。
4.x 中脚本也会作为“共享资源”参与依赖性打包,即当Prefab-A和Prefab-B同时挂有脚本M时,如果出现了上一点中的情况,那么后者同样会依赖前者。具体表现为,运行时先加载Prefab-B会出现脚本M丢失。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值