讓策劃也能輕松修改數據的方法:運用Excel2Json2Object插件將xml表格轉為Object導入腳本
阿新 • • 發佈:2019-03-11
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導入腳本