unity assetBundle生成策略简介
资源AssetBundle学习总结:
一:资源更新需要打包的资源包括:
- Shader
- 特效
- 场景
- 模型
- UI
- 动画
- 声音
二:打包流程
- 对资源进行标记:
shader :
1)查找.shader.meta 文件
2)修改.meta文件后缀名
3)读取并拼接meta 文件内容到新文件
4)修改资源附属属性(可有可无,附属属性包括,是否能及时销毁,是否能使用unload false卸载等等)
例如characterColorful.shader.mata:
标记过的:
fileFormatVersion: 2
guid: e7a8c425033db05408db07eec14c5b87
timeCreated: 1470196199
licenseType: Free
ShaderImporter:
defaultTextures: []
userData:
assetBundleName: shader/pal_shader.ab
assetBundleVariant:
assetCanBeDestroyImmediate: 0
assetBelongAbCanBeUnloadFalse: 0
assetNeedBeShow: 1
assetOnlyShowAb: 0
未标记过的:
fileFormatVersion: 2
guid: e7a8c425033db05408db07eec14c5b87
timeCreated: 1470196199
licenseType: Free
ShaderImporter:
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:
注:很多资源都会有依赖关系,举得例子中 shader 脚本 没有对其他资源依赖关系
但是每个资源在配置文件中数据信息 格式是一致的。
例如:
public string assetKey = string.Empty;
public string assetPath = string.Empty;
public string assetShortName = string.Empty;
public Int64 id = 0;
public int abID = 0;
public bool isEntry = true;//入口文件
public bool abCanUnloadFalse = false;//资源在的ab是否可以unload(false)
public bool canDestroyImmediate = false;
public List<String> depencies = new List<string>();
public string masterAssetPath = string.Empty;
public bool needShowName = true;//需要在配置中标记资源的名称
public bool onlyShowAb = false; // 在配置中只显示资源的ab名字
public int assetLoadType = -1;
public int assetType = -1;
}
特效:
Meta 标记 修改:
fileFormatVersion: 2
guid: 6120a9db2244a7f469dd3a5f2e07f28f
timeCreated: 1476676623
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName: effect/prefab/action/ef_0001_yangmi_isattack.ab
assetBundleVariant:
assetCanBeDestroyImmediate: 1
assetBelongAbCanBeUnloadFalse: 1
assetNeedBeShow: 1
assetOnlyShowAb: 0
5.)检测重复
6)获取依赖关系
8)生成json配置文件:
如 [{"n":"effect/prefab/action/ef_0001_yangmi_isattack", "s":"1", "c":"1","p":"1","a":"2", "d":[145,171,400]},
初步简介,后续对每种资源逐一简介。
如果喜欢 可以粉我 哦😘

浙公网安备 33010602011771号