1. 程式人生 > >讓策劃也能輕松修改數據的方法:運用Excel2Json2Object插件將xml表格轉為Object導入腳本

讓策劃也能輕松修改數據的方法:運用Excel2Json2Object插件將xml表格轉為Object導入腳本

tex cal info first void 解析 excel json xls

讓策劃也能輕松修改數據的方法:運用Excel2Json2Object插件將xml表格轉為Object導入腳本

運用Excel2Json2Object插件將xml表格轉為Object導入腳本

插件不支持 float 類型,浮點數請使用 double 類型

1.導入插件

導入Excel2Object.unitypackage

2.創建存儲數據的Excel表格

ID Name Hp Desc
1 a 10 da
2 b 20 db
3 c 30 dc
4 d 40 dd

後綴名必須是“.xlsx”

表格第一行為變量名

其後每一行都是一組數據

把表格導入Unity

這裏創建的表格文件名為 HeroDataxml.xml

3.Unity中確定數據類

public class HeroData
{
    public int ID;
    public string Name;
    public int hp;
    public string Des;
}//變量名必須和表格第一行一致

4.在Unity中把Excel表格轉換為Jason文件

技術分享圖片

技術分享圖片

轉換生成同名Jason文件

5.Jason文件轉換為Object

例如我們創建一個控制對象Hero1的腳本HeroDatactl

將HeroDatactl掛載到遊戲物體Hero1上

然後在HeroDatactl中聲明一個變量

public TextAsset json;//聲明一個存放.txt的變量

在unity中指定他為轉換好的json文件(把我們轉換出的 Json 文件,直接拖到這個變量中)

技術分享圖片

public class HeroData : MonoBehaviour
{
    public TextAsset json;//聲明一個存放.txt文件的變量

    // Start is called before the first frame update
    void Start()
    {
        //將一個jason文件轉換為一個類型對象  
        //(一個HeroData類的對象,就是一條數據)
        List<HeroData> datas
            = JsonToObject.JsonToObject_ByJsonContent<HeroData>(json.text);
        
        //返回值為表格中的數據  
        
        //輸出測試
        Debug.Log(datas[0].ID);
        Debug.Log(datas[2].Name);
    }
}
//將一個jason文件轉換為一個類型對象  
JsonToObject.JsonToObject_ByJsonContent<HeroData>(json.text);
//<>要把表格中的數據,轉換的什麽類型的對象

6.插件API

JsonToObject.JsonToObject_ByJsonFile()

用於把一個Json文件轉換為(Object)

參數:Json 文本文件的地址(需要加上文件名的後綴名)

/// 把一個Json文本文件,轉成一個對象(Object)
/// <typeparam name="T">對象的類型</typeparam>
/// <param name="filePath">Json文本文件的地址(需要加上文件名和後綴名)</param>
public static List<T> JsonToObject_ByJsonFile<T>(string filePath)
{
    /*直接解析成對象*/
    //讀取Json文本中的內容
    string json = File.ReadAllText(filePath);
    //解析Json文本中的內容 -(解析成數組或者List列表都可以)
    List<T> datas = JsonToObject_ByJsonContent<T>(json);

    return datas;
}

返回值:泛型類型的列表

JsonToObject.JsonToObject_ByJsonContent()

用於把一個Json格式的文本轉換為(Object)

參數:Json 文本文件中的內容

/// 把一個Json格式的文本,轉成一個對象(Object)
/// <typeparam name="T">對象的類型</typeparam>
/// <param name="filePath">Json文本中的內容</param>
public static List<T> JsonToObject_ByJsonContent<T>(string conntent)
{
    /*直接解析成對象*/
    //解析Json文本中的內容 -(解析成數組或者List列表都可以)
    T[] datas = JsonMapper.ToObject<T[]>(conntent);

    //把數組封裝成List列表
    List<T> dataList = new List<T>();
    for (int i = 0; i < datas.Length; i++)
    {
        dataList.Add(datas[i]);
    }

    return dataList;
}

返回值:泛型類型的列表

讓策劃也能輕松修改數據的方法:運用Excel2Json2Object插件將xml表格轉為Object導入腳本