本页面向“整包替换”类作者。功能工作在 AssetBundle.LoadFromFile 阶段,
作用是把游戏原本准备读取的 AB 文件,替换成你提供的另一个 AB 文件。
这套功能替换的是整个 AssetBundle 文件,而不是包内单个资源。 适合已经自行打好了 AB,并希望在游戏请求原始路径时,直接切换到你自己的整包。
AssetBundle.LoadFromFile。如果目标页面已经加载过,
通常需要重新进入页面,或者重新触发对应资源加载,才能看到替换结果。
ab替换/
mod.ini
bundles/
char_180_amgoat.ab
ab替换/
mod.ini
bundles/
char_180_amgoat.ab
char_377_gdglow.ab
其中 bundles 只是推荐目录名,不是强制固定值。
你也可以使用别的目录名,只要在 bundle_root 中写对应路径即可。
[mod]
type = assetbundle
key_root = Arknights_Data/StreamingAssets/AB/Windows/skinpack
bundle_root = bundles
[map]
char_180_amgoat.ab = char_180_amgoat.ab
[mod]
type = assetbundle
key_root = Arknights_Data/StreamingAssets/AB/Windows/skinpack
bundle_root = bundles
auto_map_by_stem = true
| 字段 | 推荐写法 | 说明 |
|---|---|---|
type |
assetbundle |
声明这是 AB 文件替换 Mod。 |
key_root |
Arknights_Data/StreamingAssets/AB/Windows/skinpack |
目标 AB 所在的游戏路径前缀。无论是手写 [map],
还是自动映射,最终都会基于它拼出完整 key。
|
bundle_root |
bundles |
你的替换 AB 根目录。手写 [map] 时,右侧文件名会优先在这里解析;
自动映射时,这里也是主要扫描目录。
|
auto_map_by_stem |
true / false |
开启后,会自动扫描 bundle_root 和 mod.ini 所在目录中的
.ab、.bundle、.unity3d 文件,
并用“文件名 + key_root”自动生成映射。
|
[map] |
char_180_amgoat.ab = char_180_amgoat.ab |
显式写死映射关系。左边是目标 AB key,右边是你的替换文件。
如果同时启用了自动映射,手写 [map] 的优先级更高。
|
当你写了下面这组配置:
[mod]
type = assetbundle
key_root = Arknights_Data/StreamingAssets/AB/Windows/skinpack
bundle_root = bundles
auto_map_by_stem = true
并且目录中存在:
bundles/char_180_amgoat.ab
那么系统会自动生成下面这个映射:
Arknights_Data/StreamingAssets/AB/Windows/skinpack/char_180_amgoat.ab
-> ab替换/bundles/char_180_amgoat.ab
char_180_amgoat.ab 会自动映射到
key_root/char_180_amgoat.ab。
bundle_root。mod.ini 所在目录。.ab、.bundle、.unity3d。[map],则手写映射覆盖自动映射。auto_map_by_stem = true 依赖 key_root。
如果没有填写 key_root,自动映射不会生效,并会在日志中给出提示。
优先级规则很简单:
[map]。[map] 始终具有更高优先级。例如下面这组配置:
[mod]
type = assetbundle
key_root = Arknights_Data/StreamingAssets/AB/Windows/skinpack
bundle_root = bundles
auto_map_by_stem = true
[map]
char_180_amgoat.ab = special/char_180_amgoat.ab
即使 bundles/char_180_amgoat.ab 已经被自动扫描到,
最终仍然会优先使用:
special/char_180_amgoat.ab
auto_map_by_stem = true,减少重复写表。[map]。bundle_root 下管理。F10 刷新索引,再重新进入目标页面。