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

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

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

下載地址
https://pan.baidu.com/s/1m86B7Gk6Jt46rRfyAmrHng 提取碼: ikvcc#

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

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」app

表格第一行爲變量名測試

其後每一行都是一組數據插件

把表格導入Unityexcel

這裏建立的表格文件名爲 HeroDataxml.xmlcode

3.Unity中肯定數據類

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

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

轉換生成同名Jason文件xml

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;
}

返回值:泛型類型的列表

相關文章
相關標籤/搜索