undle
使用过程中的一些坑进行填补指引以及喷!
AssetBundle
是
Unity
推荐的资源管理方式,官方列举了诸如热更新,压缩,灵活等等优点,但
AssetB
undle
的坑是非常深的,很多隐藏细节让你使用起来需要十分谨慎,一不小心就会掉入深坑,打包没规划
好,
20MB
的资源
“
压缩
”
到了
30MB
,或者大量的包导致打包以及加载时的各种低效,或者莫名其妙地丢
失关联,或者内存爆掉,以及各种加载失败,在网上研究了大量关于
AssetBundle
的文章,但每次看完
之后,还是有不少疑问,所以只能通过实践来解答心中的疑问,为确保结果的准确性,下面的测试在编辑
器下,
Windows
,
IOS
下都进行了测试比较。
首先你为什么要选择
AssetBundle
,纵使他有千般好处,但一般选择
AssetBundle
的原因就是,要做热
更新,动态更新游戏资源,或者你
Resource
下的资源超过了它的极限(
2GB
还是
4GB
?),如果你没
有这样的需求,那么建议你不要使用这个坏东西,闹心
~~
当你选择了
AssetBundle
之后,以及我开始喷
AssetBundle
之前,我们需要对
AssetBundle
的工作流
程做一个简单的介绍:
AssetBundle
可以分为打包
AssetBundle
以及使用
AssetBundle
打包需要在
UnityEditor
下编写一些简单的代码,来取出你要打包的资源,然后调用打包方法进行打包
Object
obj
=
AssetDatabase.LoadMainAssetAtPath(
"Assets/Test.png"
);
BuildPipeline.BuildAssetBundle(obj,
null
,
Application.streamingAssetsPath
+
"/Test.
assetbundle"
,
BuildAssetBundleOptions.CollectDependen
cies
|
BuildAssetBundleOptions.CompleteAssets
|
BuildAssetBundleOptions.DeterministicAs
setBundle,
BuildTarget.StandaloneWindows);