经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 游戏设计 » 查看文章
让策划也能轻松修改数据的方法:运用Excel2Json2Object插件将xml表格转为Object导入脚本
来源:cnblogs  作者:zhxmdefj  时间:2019/3/12 8:40:36  对本文有异议

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

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

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

插件不支持 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中确定数据类

  1. public class HeroData
  2. {
  3. public int ID;
  4. public string Name;
  5. public int hp;
  6. public string Des;
  7. }//变量名必须和表格第一行一致

4.在Unity中把Excel表格转换为Jason文件

转换生成同名Jason文件

5.Jason文件转换为Object

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

将HeroDatactl挂载到游戏物体Hero1上

然后在HeroDatactl中声明一个变量

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

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

  1. public class HeroData : MonoBehaviour
  2. {
  3. public TextAsset json;//声明一个存放.txt文件的变量
  4. // Start is called before the first frame update
  5. void Start()
  6. {
  7. //将一个jason文件转换为一个类型对象
  8. //(一个HeroData类的对象,就是一条数据)
  9. List<HeroData> datas
  10. = JsonToObject.JsonToObject_ByJsonContent<HeroData>(json.text);
  11. //返回值为表格中的数据
  12. //输出测试
  13. Debug.Log(datas[0].ID);
  14. Debug.Log(datas[2].Name);
  15. }
  16. }
  1. //将一个jason文件转换为一个类型对象
  2. JsonToObject.JsonToObject_ByJsonContent<HeroData>(json.text);
  3. //<>要把表格中的数据,转换的什么类型的对象

6.插件API

JsonToObject.JsonToObject_ByJsonFile()

用于把一个Json文件转换为(Object)

参数:Json 文本文件的地址(需要加上文件名的后缀名)

  1. /// 把一个Json文本文件,转成一个对象(Object)
  2. /// <typeparam name="T">对象的类型</typeparam>
  3. /// <param name="filePath">Json文本文件的地址(需要加上文件名和后缀名)</param>
  4. public static List<T> JsonToObject_ByJsonFile<T>(string filePath)
  5. {
  6. /*直接解析成对象*/
  7. //读取Json文本中的内容
  8. string json = File.ReadAllText(filePath);
  9. //解析Json文本中的内容 -(解析成数组或者List列表都可以)
  10. List<T> datas = JsonToObject_ByJsonContent<T>(json);
  11. return datas;
  12. }

返回值:泛型类型的列表

JsonToObject.JsonToObject_ByJsonContent()

用于把一个Json格式的文本转换为(Object)

参数:Json 文本文件中的内容

  1. /// 把一个Json格式的文本,转成一个对象(Object)
  2. /// <typeparam name="T">对象的类型</typeparam>
  3. /// <param name="filePath">Json文本中的内容</param>
  4. public static List<T> JsonToObject_ByJsonContent<T>(string conntent)
  5. {
  6. /*直接解析成对象*/
  7. //解析Json文本中的内容 -(解析成数组或者List列表都可以)
  8. T[] datas = JsonMapper.ToObject<T[]>(conntent);
  9. //把数组封装成List列表
  10. List<T> dataList = new List<T>();
  11. for (int i = 0; i < datas.Length; i++)
  12. {
  13. dataList.Add(datas[i]);
  14. }
  15. return dataList;
  16. }

返回值:泛型类型的列表

原文链接:http://www.cnblogs.com/zhxmdefj/p/10512551.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号