Unity Game Framework 内置了一个 AssetBundle 编辑工具,用于编辑发布产品时所要用到的 AssetBundle 资源,并可通过 Game Framework 对资源进行更新。
首次为一个项目编辑 AssetBundle 资源,需要先编辑配置文件 Assets/GameFramework/Configs/AssetBundleEditor.xml。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?xml version="1.0" encoding="UTF-8"?> <UnityGameFramework> <AssetBundleEditor> <Settings> <SourceAssetRootPath>Assets</SourceAssetRootPath> <SourceAssetSearchPaths> <SourceAssetSearchPath RelativePath="" /> </SourceAssetSearchPaths> <SourceAssetUnionTypeFilter>t:Scene t:Prefab t:Shader t:Model t:Material t:Texture t:AudioClip t:AnimationClip t:AnimatorController t:Font t:TextAsset t:ScriptableObject</SourceAssetUnionTypeFilter> <SourceAssetUnionLabelFilter>l:AssetBundleInclusive</SourceAssetUnionLabelFilter> <SourceAssetExceptTypeFilter>t:Script</SourceAssetExceptTypeFilter> <SourceAssetExceptLabelFilter>l:AssetBundleExclusive</SourceAssetExceptLabelFilter> <AssetSorter>Name</AssetSorter> </Settings> </AssetBundleEditor> </UnityGameFramework> |
其中:
- SourceAssetRootPath:配置资源搜索的根目录,默认是从 Assets 开始进行全部查找,由于经常在 Assets 下放一些 Unity 插件,故也可以以某一级子目录(如 Asset/GameMain)作为根目录进行资源查找。
- SourceAssetSearchPaths:配置资源搜索的子目录(相对于根目录的路径),每个子目录填写一行 SourceAssetSearchPath,若不填则搜索所有子目录。
- SourceAssetUnionTypeFilter:要筛选并包含的资源类型,默认会包含场景(t:Scene)、预制体(t:Prefab)、着色器(t:Shader)、材质(t:Material)、贴图(t:Texture)、声音(t:AudioClip)、动画(t:AnimationClip t:AnimatorController)、字体(t:Font)、文本(t:TextAsset t:ScriptableObject)资源。
- SourceAssetUnionLabelFilter:要筛选并包含的标签类型,默认会包含带有 AssetBundleInclusive 标签(l:AssetBundleInclusive)的资源。
- SourceAssetExceptTypeFilter:要筛选并排除的资源类型,默认会排除脚本(t:Script)资源。
- SourceAssetExceptLabelFilter:要筛选并排除的标签类型,默认会排除带有 AssetBundleExclusive 标签(l:AssetBundleExclusive)的资源。
- AssetSorter:编辑器内资源列表排序顺序,可以是 Name(资源文件名)、Path(资源全路径)或者 Guid(资源GUID)。
注:最终筛选出的资源 = SourceAssetUnionTypeFilter 筛选出的资源 + SourceAssetUnionLabelFilter 筛选出的资源 – SourceAssetExceptTypeFilter 筛选出的资源 – SourceAssetExceptLabelFilter 筛选出的资源。
在配置文件准备好后,可使用菜单项 Game Framework -> AssetBundle Tools -> AssetBundle Editor 打开 AssetBundle 编辑工具。
界面从左到右分为 AssetBundle 列表、AssetBundle 内容列表和 Asset 资源列表三部分。
1、AssetBundle 列表
AssetBundle列表(AssetBundle List)列出了项目中包含的所有 AssetBundle,空 AssetBundle、场景 AssetBundle 和非场景 AssetBundle 分别用三种不同的图标标识。
功能按钮说明:
① 增加新的 AssetBundle,点击后需指定 AssetBundle 的名称(含目录名,使用“/”分隔)和变体名称(可空、根据需要使用)。
② 重命名选中的 AssetBundle。
③ 移除选中的 AssetBundle。
④ 更改 AssetBundle 的加载方式,可选择从文件加载、从内存加载,或者是从内存中解密后加载等。
⑤ 标记此 AssetBundle 是否需要随 App 一起发布,若勾选则打包时会做特殊处理。
注:若新增或重命名 AssetBundle 失败,可能是名称包含不合法字符(只能使用大小写英文字母、数字、点、中划线和下划线)或者重名(判定重名不区分大小写)。
2、AssetBundle 内容列表
AssetBundle 内容列表(AssetBundle Content)列出的当前选中的 AssetBundle 中包含的资源。若某个资源是无效的,会以黄色叹号前缀图标和资源的 GUID 显示,产生无效资源的原因一般是删除了 Asset 但没有从 AssetBundle 内容列表中移除。
功能按钮说明:
① 选中 AssetBundle 内容列表中的所有资源。
② 取消 AssetBundle 内容列表中所有资源的选中状态。
③ 更改 AssetBundle 内容列表中的显示方式,可选择 Name(资源文件名)、Path(资源全路径)或者 Guid(资源 GUID)。
④ 将选中的资源从 AssetBundle 中移除。
3、Asset 列表
Asset 列表(Asset List)列出从指定路径下筛选出的所有资源。
功能按钮说明:
① 将选中的一个或多个资源增加到选中的 AssetBundle 里。由于 Unity 的限制,不允许在一个 AssetBundle 中同时存放场景(*.unity)和非场景资源。
② 分别将已选中的一个或多个资源作为 AssetBundle 名来创建 AssetBundle,并将自身加入到对应的 AssetBundle 里。
③ 隐藏已经存在于 AssetBundle 中的资源,只列出尚未指定 AssetBundle 的资源。
④ 从所有的 AssetBundle 中清理无效的资源,并移除所有空的 AssetBundle。建议 Save 前总是点一下 Clean 按钮,因为构建 AssetBundle 的时候,Unity 不允许存在无效的资源或者空的 AssetBundle。
⑤ 保存当前所有 AssetBundle 和资源的状态。注意在使用此编辑工具的过程中随时保存编辑结果,若需要恢复上次编辑状态,关闭并重新打开此编辑工具即可。
- 本文固定链接: https://gameframework.cn/uncategorized/使用-assetbundle-编辑器/
- 转载请注明: Ellan 于 Game Framework 发表
Pingback 引用通告: 使用 AssetBundle 构建工具 | Game Framework
Pingback 引用通告: [GameFramework]Demo9-AssetBundle打包的一些坑 – 笨木头与游戏开发