outputPath | AssetBundle 的输出路径。 |
assetBundleOptions | 资源包构建选项。 |
targetPlatform | 选择的目标构建平台。 |
AssetBundleManifest 列出了此构建中包含的所有 AssetBundle 的清单。
构建编辑器中指定的所有 AssetBundle。
标记要包含在命名 AssetBundle 中的资源后,
使用此函数构建您的资源包。(请参阅手册的
building AssetBundles 页面,以了解更多详细信息)。此函数
可构建您在编辑器中指定的捆绑包,如果构建成功,则返回
包括所有已含资源的清单,否则
返回 false。此外,控制台中
会显示错误消息,用于解释最常见的构建故障,如目标文件夹路径不正确。outputPath
是项目文件夹内用于保存已构建捆绑包的
文件夹的路径(例如,"Assets/MyBundleFolder")。该文件夹不会自动创建,
如果文件夹还不存在,该函数会直接失败。
可选的 assetBundleOptions
参数用于修改捆绑包的构建方式,而 targetPlatform/
用于选择捆绑包将与哪种部署目标(Windows 独立平台、Android 或 iOS 等)
配合使用。请注意,针对独立平台构建的捆绑包与
针对移动平台构建的捆绑包不兼容,因此,您可能需要针对给定捆绑包生成不同的版本。请参阅手册中
Building AssetBundles 页面的 BuildTarget 部分,以了解有关如何为不同平台创建 AssetBundle 的更多信息。
返回值的类型为 AssetBundleManifest。它包含 AssetBundle 中包含的
所有资源的列表。如果出现任何问题,则返回 Null。
// Create an AssetBundle for Windows. using UnityEngine; using UnityEditor;
public class BuildAssetBundlesExample : MonoBehaviour { [MenuItem("Example/Build Asset Bundles")] static void BuildABs() { // Put the bundles in a folder called "ABs" within the Assets folder. BuildPipeline.BuildAssetBundles("Assets/ABs", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); } }
outputPath | AssetBundle 的输出路径。 |
builds | AssetBundle 构建映射。 |
assetBundleOptions | 资源包构建选项。 |
targetPlatform | 目标构建平台。 |
AssetBundleManifest 列出了此构建中包含的所有 AssetBundle 的清单。
使用构建映射构建 AssetBundle。
该函数的这个变体允许您 使用"构建映射"(而非编辑器中的详细设置)指定捆绑包的名称和内容。 该映射就是 AssetBundleBuild 对象的数组,每个对象都包含 捆绑包名称和要添加到命名捆绑包中的资源文件名称列表。
using UnityEngine; using UnityEditor;
public class BuildAssetBundlesBuildMapExample : MonoBehaviour { [MenuItem("Example/Build Asset Bundles Using BuildMap")] static void BuildMapABs() { // Create the array of bundle build details. AssetBundleBuild[] buildMap = new AssetBundleBuild[2];
buildMap[0].assetBundleName = "enemybundle";
string[] enemyAssets = new string[2]; enemyAssets[0] = "Assets/Textures/char_enemy_alienShip.jpg"; enemyAssets[1] = "Assets/Textures/char_enemy_alienShip-damaged.jpg";
buildMap[0].assetNames = enemyAssets; buildMap[1].assetBundleName = "herobundle";
string[] heroAssets = new string[1]; heroAssets[0] = "char_hero_beanMan"; buildMap[1].assetNames = heroAssets;
BuildPipeline.BuildAssetBundles("Assets/ABs", buildMap, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); } }