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

时间:2022-11-10 16:20:53

让策划也能轻松修改数据的方法:运用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中确定数据类

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

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

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

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

转换生成同名Jason文件

5.Jason文件转换为Object

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

将HeroDatactl挂载到游戏物体Hero1上

然后在HeroDatactl中声明一个变量

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

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

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

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导入脚本的更多相关文章

  1. oracle 修改数据 保险方法

    oracle 中修改比较安全的方法:(pl/sql) 第一种方法: select * from temp where id=9 for update; 第二种方法: select t.*,rowid ...

  2. MyBatis基础入门《十 一》修改数据

    MyBatis基础入门<十 一>修改数据 实体类: 接口类: xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnbl ...

  3. android基础(五)网络数据解析方法

    在网络上传输数据时最常用的方法有两种:XML和JSON,下面就对这两种类型的数据解析进行讲解. 一.XML数据解析 在Android中,常见的XML解析器分别为SAX解析器.DOM解析器和PULL解析 ...

  4. c&num;教程之通过数据绑定修改数据

    通过数据绑定修改数据 "实体框架"提供了与数据库的双向通信通道.前面已经讲述了如何使用"实体框架"获 取数据,现在来看看如何修改获取的信息,并将改动发送回数据库 ...

  5. php处理登录、添加数据、删除数据和修改数据

    php 处理登录 :需要先建一个登录的页面,用form表单就可以很轻松的完成,(这里的示例是我根据数据库现成的表做的 是一个teacher表格 根据老师的工号和姓名登录的) <form acti ...

  6. Redis修改数据多线程并发—Redis并发锁

    本文版权归博客园和作者本人吴双共同所有 .转载爬虫请注明地址,博客园蜗牛 http://www.cnblogs.com/tdws/p/5712835.html 蜗牛Redis系列文章目录http:// ...

  7. MySQL数据库5 - 插入数据,修改数据,删除数据

    一.插入数据 1. 所有列都插入值 INSERT [INTO] TABLE_NAME VALUES(V1,V2....Vn); 特点:列值同数,列值同序 eg: insert into users v ...

  8. 实现DevExpress GridControl 只有鼠标双击后才进行修改数据

    1. 实现DevExpress GridControl 只有鼠标双击后才进行修改数据:修改GridView.OptionsBehavior.EditorShowMode属性为Click 2. 实现De ...

  9. IntelliJ IDEA 在网页修改数据,但是在浏览器刷新的时候,不能读取到修改之后的数据

    使用IntelliJ IDEA 在网页修改数据,但是在浏览器刷新的时候,不能读取到修改之后的数据? 解决办法:tomcat配置中,On frame deactivation属性选择Update cla ...

随机推荐

  1. ASP&period;NET MVC中的模型装配 封装方法 非常好用

    下面说一下 我们知道在asp.net mvc中 视图可以绑定一个实体模型 然后我们三层架构中也有一个model模型 但是这两个很多时候却是不一样的对象来的 就拿微软的官方mvc例子来说明 微软的视图实 ...

  2. ios 键盘弹起

    #pragma mark 键盘弹起操作 - (void)keyboardWillShow:(NSNotification *)notification{    NSDictionary *info = ...

  3. HDU4512:吉哥系列故事——完美队形I&lpar;LICS&rpar;

    Problem Description 吉哥这几天对队形比较感兴趣. 有一天,有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一 ...

  4. 破解MyEclipse2013注册码

    1.下载破解工具 http://down8.3987.com:801/2010/Myeclipse_zcj.3987.com.rar 2.打开 找到meclipse安装路径找到plugins文件夹打开 ...

  5. 新建node工程

    之前各种node工程都是东抄抄,西抄抄的.  用ng的cli之后,发现非常舒服.所以把node新建工程的种种记录一下. node+babel, 直接按es6标准写就好了,  不需要一定写ts再转码了( ...

  6. 二分图判定 POJ-2492

    这是由AC代码改的模板,不能直接交啊 #include<iostream> #include<vector> #include<cstring> using nam ...

  7. spring基础----&gt&semi;spring自定义初始化(二)

    这里新增了对ref属性的支持,并且过滤了已经解析的元素.人生有两个词很棒,一言不合和不提也罢. spring自定义对ref属性支持 项目的结构如下:新增一个ThirdBean类,修改了ParseXml ...

  8. 多线程中使用curl致coredump问题

    coredump时的调用栈: #0  0x081eff2c in addbyter () #1  0x081f05b8 in dprintf_formatf () #2  0x081f15cf in ...

  9. Dockerfile指令详解下

    VOLUME 定义匿名卷 VOLUME指令的格式为: VOLUME [,...] VOLUME 之前我们说过,容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库 ...

  10. 在C的头文件中定义的结构体,如何在cpp文件中引用

    解决方案1:在cpp文件中放置.c,且在该文件中引用变量 解决方案2:在一个cpp文件中包含.c,但在另一个cpp文件中使用结构体变量 cpp文件1 cpp文件2 #include "dia ...