资源加载框架之-AssetBundle打包管理

资源打包策略

正常的打包策略:

  1. 在编辑器下设置文件夹或者文件AB包名
  2. 根据manifest进行依赖加载

优点:上手简单,方便操作。

缺点:容易产生冗余AB包;文件夹或文件等AB包名设置混乱,难以管理。

我的打包策略:

  1. 编写编辑器工具统一设置AB包名称及路径管理
  2. 根据依赖关系生成不冗余AB包
  3. 生成自己的依赖关系表
  4. 根据自己的依赖关系表加载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包

  1. 根据文件夹设置AB包
  2. 剔除冗余AB包
  3.  生成AB包配置表(二进制文件和xml文件,xml文件用来直观的看出打包结果)
  4. 清空资源的AB包配置
  5. 删除旧的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; }
}
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值