Unity5 assetbundle笔记
Assetbundle api试验
----打包选项试验
--------结论:BuildAssetBundleOptions说明:
------------None: 把所有以来资源到到一个包里
------------UncompressedAssetBundle:不压缩
------------DisableWriteTypeTree:禁止写入类型信息, 在webplayer中不可用
------------DeterministicAssetBundle:使得每次build后hash保持不变,否则可能会变, 但在此资源数据进行改动时一定会变
------------ForceRebuildAssetBundle:强制重建,即使asset没有改变
------------IgnoreTypeTreeChanges:忽略typetree的变化
------------AppendHashToAssetBundleName:把hash添加在assetbundle name后面,也就是生成的assetbundle的文件名会变成这样:resources_df9f1195a8b236dac4c15bd5ac1411e6
------------ChunkBasedCompression:使用LZ4压缩。 允许加载的时候实时解压
------------StrictMode: 有任何错误就算失败,如果并没有此选项,只有出现重大错误比如shader在对应平台编译不过时才失败
------------DryRunBuild:不会真正的build资源, 但是BuildPipeline.BuildAssetBundles可以正确的返回
------------DisableLoadAssetByFileName:禁用通过文件名加载asset。通常有三种方式加载asset:通过全路径,通过文件名,通过文件名.扩展名。 全路径是在生成ab的是写入的, 另外两个是在加载的时候得到的。
------------DisableLoadAssetByFileNameWithExtension:禁用通过文件名.扩展名加载asset。
----打包api调用试验:
--------相关api:
------------BuildPipeline.BuildAssetBundles(目标路径"Assets/ABs", AssetBundleBuild[] buildMap);
------------AssetBundleBuild 一个bundle的设置
--------------------------------包括:输出文件民(bundlename), 扩展名,包含的文件列表
--------步骤:
------------1 填充AssetBundleBuild[]
------------2 执行BuildPipeline.BuildAssetBundles
--------试验结论:
------------每调用一次BuildPipeline.BuildAssetBundles, 会根据当前AssetBundleBuild[]里所有项打包,
------------如果有依赖关系,会单独打包,比如item1 依赖item2,则会单独打2个包,item1中不包含item2的数据, 如果列表中指包含item1,则会把item2的数据也打入到item1
------------如果多次调用BuildPipeline.BuildAssetBundles,每次会单独处理,不会有干扰。