资源打包策略
正常的打包策略:
- 在编辑器下设置文件夹或者文件AB包名
- 根据manifest进行依赖加载
优点:上手简单,方便操作。
缺点:容易产生冗余AB包;文件夹或文件等AB包名设置混乱,难以管理。
我的打包策略:
- 编写编辑器工具统一设置AB包名称及路径管理
- 根据依赖关系生成不冗余AB包
- 生成自己的依赖关系表
- 根据自己的依赖关系表加载AB包
优点:不会生成冗余的AB包,文件AB包名设置简单方便,容易管理
缺点:对于新手理解又一定难度。
实现:
1、自定义打包配置表
创建ABConfig脚本继承ScripttableObject
using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Editor.Loader
{
// 创建资源AB配置菜单
[CreateAssetMenu(fileName = "ABConfig",menuName = "CreateABConfig")]
public class ABConfig:ScriptableObject
{
public List<ABDirInfo> abDirInfo = new List<ABDirInfo>();
[Serializable]
// 需要打AB包的文件夹信息
public struct ABDirInfo
{
[LabelText("报名")]
public string ABName;
[LabelText("包路径")]
public string ABPath;
}
}
}
效果:


2、生成AB包
- 根据文件夹设置AB包
- 剔除冗余AB包
- 生成AB包配置表(二进制文件和xml文件,xml文件用来直观的看出打包结果)
- 清空资源的AB包配置
- 删除旧的AB包(AB包配置发生改动后下一次打包需要清理掉旧的AB文件)
using System.Collections.Generic;
using System.Xml.Serialization;
[System.Serializable]
public class AssetBundleConfig
{
public List<ABInfo> abInfoList = new List<ABInfo>();
}
[System.Serializable]
public class ABInfo
{
[XmlElement("AssetName ")]
public string AssetName { get; set; }
[XmlElement("ABName")]
public string ABName { get; set; }
[XmlElement("Crc")]
public uint Crc { get; set; }
[XmlElement("AsetPath")]
public string AssetPath { get; set; }
[XmlElement("Depend")]
public List<string> Depends { get; set; }
}

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



