The BuildPipeline.BuildAssetBundles() API is widely used in currently supported versions of Unity to build AssetBundles. This post describes how the AssetBundle Hash and Incremental Build works in the context of that API, and gives some recommendations based on some known limitations. In particular ...
Build the AssetBundles using UnityEditor; using System.IO; public class CreateAssetBundles { [MenuItem("Assets/Build AssetBundles")] static void BuildAllAssetBundles() { string assetBundleDirectory = "Assets/AssetBundles"; if(!Directory.Exists(assetBundleDirectory)) { Directory.CreateDirectory(assetBun...
想要进行补丁包构建,首先需要记录上次完整打包的缓存信息,在CatAsset中是通过记录文件最后写入时间实现,但不仅仅是资源文件的最后写入时间,还需要包括资源文件对应的Meta文件的最后写入时间才行,否则会导致补丁资源计算出错,因为有些对资源的修改是被反应到Meta文件里的 另外在计算补丁资源时,不仅是需要判断资源自身是否有...
在AssetBundleManager的Update中遍历m_InProgressOperations中每一项AssetBundleLoadOperation,在a的AssetBundleLoadOperation的update中判断它的依赖b,c是否全部加载完(在m_LoadedAssetBundles中找到值),依赖全加载完,执行加载a的自身ab的请求m_Request = bundle.m_AssetBundle.LoadAssetAsync (m_AssetName, m_Type); b,c...
打包过程仅仅须要BuildPipeline.BuildAssetBundles一句话即可了,Unity5会依据依赖关系自己主动生成全部的包。每一个包还会生成一个manifest文件,这个文件描写叙述了包大小、crc验证、包之间的依赖关系等等,通过这个manifest打包工具在下次打包的时候能够推断哪些包中的资源有改变,仅仅打包资源改变的包。加快了打包速度。manifest...
打包过程只需要BuildPipeline.BuildAssetBundles一句话就行了,Unity5会根据依赖关系自动生成所有的包。每个包还会生成一个manifest文件,这个文件描述了包大小、crc验证、包之间的依赖关系等等,通过这个manifest打包工具在下次打包的时候可以判断哪些包中的资源有改变,只打包资源改变的包,加快了打包速度。manifest只是打包工具...
BuildPipeline.BuildAssetBundles(info.outputDirectory, info.options, info.buildTarget); 调用该函数,unity会自动根据资源的标签进行打包,而且是增量打包, 对于资源没有变更的bundle包,不会触发重新打包; 资源没变,即使生成目录下的bundle包被删除了,unity也不会重新打包; ...
1 学习新的AssetBundle,一定要先认识一下每个物体的Inspector(属性面板)最下面的打包栏,第一个参数代表的是assetBundleName,即输出的打包文件的名字,当一个物体的assetBundleName被设置了一个明确的名字时,它的信息就会存在于AssetDataBase里面了,使用BuildPipeline.BuildAssetBundles就可以将它打包出来。第二个代表的...
usingUnityEngine;usingSystem.Collections;usingUnityEditor;/// /// 将这个脚本放在Editor文件夹下,没有就新建一个/// publicclassHueyAssetBundle:MonoBehaviour{[MenuItem("AssetBundle/Bulid AssetBundles")]staticvoidBuildAssetBundles(){//"Assets/StreamingAssets/UpdateRes"这个是打好的包在的位置BuildPipeline.Build...
这里主要的瓶颈就是对资源的依赖关系数据获取上。在工程实践中发现整个构建环节20分钟,16分钟是BuildAssetBundles开销,3分钟是GetDependencies开销。在增量构建中,BuildAssetBundles可降为1-3分钟,而GetDependencies则仍需要3分钟开销。当然对于资源数量较小的工程,这个优化就是一个可有可无的选项对构建速度影响不大。