让策划也能轻松修改数据的方法:运用Excel2Json2Object插件将xml表格转为Object导入脚本...

让策划也能轻松修改数据的方法:运用Excel2Json2Object插件将xml表格转为Object导入脚本

运用Excel2Json2Object插件将xml表格转为Object导入脚本

下载地址
https://pan.baidu.com/s/1m86B7Gk6Jt46rRfyAmrHng 提取码: ikvc

插件不支持 float 类型,浮点数请使用 double 类型

1.导入插件

导入Excel2Object.unitypackage

2.创建存储数据的Excel表格
IDNameHpDesc
1a10da
2b20db
3c30dc
4d40dd

后缀名必须是“.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文件

1536438-20190721235548645-1958510624.png

1536438-20190721235613365-18713509.png

转换生成同名Jason文件

5.Jason文件转换为Object

例如我们创建一个控制对象Hero1的脚本HeroDatactl

将HeroDatactl挂载到游戏物体Hero1上

然后在HeroDatactl中声明一个变量

public TextAsset json;//声明一个存放.txt的变量

在unity中指定他为转换好的json文件(把我们转换出的 Json 文件,直接拖到这个变量中)

1536438-20190721235642456-1200570983.png

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

返回值:泛型类型的列表

转载于:https://www.cnblogs.com/zhxmdefj/p/10512551.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值