在有关 AssetBundle 工作流程的文档中,我们有一个代码示例将三个参数传递给 BuildPipeline.BuildAssetBundles 函数。让我们深入了解一下这方面。
File.Exists(assetCacheManifestPath)) { isBuildPatch = false; } } //准备参数 string fullOutputFolder = CreateFullOutputFolder(config, targetPlatform); BundleBuildInfoParam buildInfoParam = new BundleBuildInfoParam(); BundleBuildConfigParam configParam = new BundleBuildConfigParam(config, targetPlatform...
//方式1. Unity会遍历所有设置过AssetBundleName及Variant的文件进行全局打包BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath,BuildAssetBundleOptions.None,BuildTarget.StandaloneOSX); //方式2. 通过一个BuildMap打包指定的文件AssetBundleBuild[]buildMap=newAssetBundleBuild[2];buildMap[0].assetBundleName=...
2) BuildAssetBundleOptions.UncompressedAssetBundle: 无压缩的打包,加载的文件更大,但是时间更快(省去解压的时间) 3)BuildAssetBundleOptions.ChunkBasedCompression: 采用LZ4的压缩格式,相比于LZMA而言文件体积更大,但是不要求在使用之前整个bundle都被解压。LZ4使用chunk based 算法,这就运行文件以chunk或者piece的方式加载...
设置好属性后,下面开始构建AssetBundle包,首先先创建一个文件夹命名Editor,这个文件夹是不会进行打包的特定编辑器扩展文件夹。然后我们创建一个编辑器扩展类CreateAssetbundles。写入下面的代码 usingUnityEditor;usingSystem.IO;publicclassCreateAssetbundles{ [MenuItem("AssetsBundle/Build AssetBundles")]staticvoidBuildAl...
*接口统一:尽管SceneBundle和AssetBundle在早期的Unity版本中是不同的打包方式,但随着Unity的发展,它们的打包接口已经被统一为BuildAssetBundles接口。 *灵活性:由于BuildAssetBundles接口的灵活性,开发者可以根据项目需求在同一个项目中同时使用SceneBundle和AssetBundle,以实现更精细的资源管理和加载控制。
using System.Collections.Generic; using System.IO; using UnityEditor; public class PackBundles : Editor { //选定资源打包 [MenuItem("PackBundles/PackBundles")] static void PutBundleAssetes() { //初始化一个AssetBundleBuild表 List<AssetBundleBuild> buildMap = new List<AssetBundleBuild>(); AssetBun...
1.Build AssetBundle From Selection - Track dependencies。此选项可将当前对象构建到 Asset Bundle 中并包含其所有依赖项。例如,如果您有一个由多个层级结构层组成的预制件,则将以递归方式将所有子对象和组件添加到 Asset Bundle 中。 1.Build AssetBundle From Selection - No dependency tracking。此方法与前一种...
1. 代码打包AssetBundle (BuildPipeline.BuildAssetBundles) using UnityEditor; using System.IO; public class CreateAssetBundles { [MenuItem("Assets/Build AssetBundles")] static void BuildAllAssetBundles() { string dir = "AssetBundles"; if (Directory.Exists(dir) == false) ...
2、唯一打包 API,BuildPipeline.BuildAssetBundles() 在Unity2019.2中,它有两个重载(其他API已废弃)如下: //Build all AssetBundles specified in the editor. //构建所有编辑器中指定了AssetBundleName的资源。(通过前期设置) public static AssetBundleManifest BuildAssetBundles(string outputPath, BuildAssetBundleOption...