构建资源包
有三种类函数可用于构建资源包 (AssetBundles):
BuildPipeline.BuildAssetBundle 允许您构建任意资源类型的资源包 (AssetBundles)。
如需在数据可用时只添加场景进行流处理和加载时,可使用BuildPipeline.BuildStreamedSceneAssetBundle。
BuildPipeline.BuildAssetBundleExplicitAssetNames 与 BuildPipeline.BuildAssetBundle 作用相同,但有一个额外参数可指定每个对象的自定义字符串标识符(名称)。
资源包 (AssetBundle) 构建示例
我们使用编辑器脚本构建资源包。BuildPipeline.BuildAssetBundle 脚本文档中有相关基本示例。
根据此示例,将上述链接中的脚本复制并粘贴至新 C# 脚本,并以 ExportAssetBundles 命名。此脚本应位于名为编辑器 (Editor) 的文件夹中,以便其可在Unity 编辑器中运行。

现在在
菜单中,应可看见两个新菜单选项。
。这会将当前对象及其所有相关性导入资源包。例如,如果您有一个包含多个分层结构的预设,则该预设将以递归方式将所有子对象和组件添加至资源包。
。此方法与上述方法相反,将只添加您选定的单个资源。
在此示例中,您应新建预设。首先,可通过转至
在层级视图 (Hierarchy View) 中新建立方体 (Cube)。然后将立方体 (Cube) 从层级视图 (Hierarchy View) 拖放至工程视图 (Project View),这将创建该对象的预设。然后,应在工程窗口右击立方体 (Cube) 预设并依次选择 Cube.unity3d,现在,工程窗口将以下图形式显示。
。 此时将显示一个窗口提示您保存打包的资源。如果新建一个名为“资源包 (AssetBundles)”的文件夹并将立方体另存为
此时,可将资源包 (AssetBundle) Cube.unity3d 移至本地存储的其他位置,或将其上传至所选服务器。
示例:构建资源包 (Asset Bundle) 时如何更改资源的属性
可在调用 BuildPipeline.BuildAssetBundle 前使用 AssetDatabase.ImportAsset 强制重新导入资源,然后使用 AssetPostprocessor.OnPreprocessTexture 设置所需属性。以下示例将介绍构建资源包 (Asset Bundle) 时如何设置不同的纹理压缩率。
还可使用 AssetDatabase.ImportAssetOptions 控制资源导入方式。
在生产环境中构建资源包 (AssetBundles)
从上述示例可看出,首次使用资源包 (AssetBundles) 时,完全可手动构建资源包。但随着工程逐渐增大和资源数量逐渐增加,手动完成此流程则费时费力。一个更好的办法是编写函数构建一个工程的所有资源包 (AssetBundles)。例如,可使用文本文件将资源 (Asset) 文件映射到资源包 (AssetBundle) 文件。