Unity版本:Unity 5.6.6f2
基本流程
- 创建xml文件,将xml内容解析到实体类中
- 绘制UnityEditor窗口,将xml内容绘制到窗口中
- 打包AssetBundle
- 加载AssetBundle(异步和同步)
准备原材料:xml和entity实体类
<?xml version="1.0" encoding="utf-8"?>
<!-- AssetBundleConfig.xml -->
<Root>
<AssetBundle>
<Item Name="MainCity_Role_Cike" Tag="Role" Version="1" Size="0" ToPath="/Role/">
<Path Value="Resources\RolePrefab\RolePlayer\MainCity_Role_Cike.prefab" />
</Item>
<Item Name="Scene_Main" Tag="Scene" Version="1" Size="0" ToPath="/Scene/">
<Path Value="Scene\SceneMap\Scene_Main.unity" />
</Item>
</AssetBundle>
</Root>
// AssetBundleEntity.cs
using System.Collections.Generic;
public class AssetBundleEntity
{
/// <summary>
/// 打包指定专用Key(唯一性)
/// </summary>
public string Key;
/// <summary>
/// 名称
/// </summary>
public string Name;
/// <summary>
/// 标记
/// </summary>
public string Tag;
/// <summary>
/// 版本号
/// </summary>
public int Version;
/// <summary>
/// 大小(K)
/// </summary>
public long Size;
/// <summary>
/// 将要存放的文件夹
/// </summary>
public string ToPath;
/// <summary>
/// 资源存放路径集合
/// </summary>
private List<string> m_PathList = new List<string>();
public List<string> PathList
{
get
{
return m_PathList;
}
}
}
PathList: 后面会使用到这个属性,通过这个属性将所有资源打包Assetbundle,保存在自己定义的路径/ToPath/下
XML读取类的编写
// AssetBundleDAL.cs
using System.Collections.Generic;
using System.Xml.Linq;
public class AssetBundleDAL
{
/// <summary>
/// xml路径
/// </summary>
private string m_XMLPath;
/// <summary>
/// 返回的AssetBundle实体集合
/// </summary>
private List<AssetBundleEntity> m_List = null;
public AssetBundleDAL(string xmlPath)
{
this.m_XMLPath = xmlPath;
m_List = new List<AssetBundleEntity>();
}
#region 读取xml文件 GetList
/// <summary>
/// 读取xml文件 存储到实体集合中
/// </summary>
public List<AssetBundleEntity> GetList()
{