使用Excel制作游戏配置表并导出Json和C#代码到Unity中使用

目录

效果展示

实现效果

操作步骤 

1.下载Excel2Json工具

2.配置表格

3.生成Json文件和C#代码

4.Unity中反序列化

自定义Excel真实值与显示值的关系


效果展示

Excel配置表
反序列化

实现效果

1.在表格中配置人物的属性,更直观且方便

2.将Excel导出成Json格式的文件,导入Unity中反序列化,使得数据读取非常快

3.自动根据表格生成对应的C#类

4.枚举型变量Path在表格中显示为对应的汉字而不是数字,便于阅读


操作步骤 

1.下载Excel2Json工具

工具下载地址:excel2json | 游戏程序员的自我修养 (neil3d.github.io)

2.配置表格

第一行为字段名称

第二行为类型,注意大小写,此处会影响生成的C#代码的类型

第三行为注释,其余的为数据

左下角的表格名称为生成的C#的类名

注:Path我设计为一个enum类型,在表格中以整数值存储,但以字符串进行显示,实现方法在文章底部

3.生成Json文件和C#代码

打开excel2json.exe文件,将表格拖拽上去,右侧可预览生成的json文件

ExportType为导出的类型,默认为数组,修改为Dict Object可以导出为以第一个字段为Key的字典

点击C#标签,可以查看生成的C#代码 

SaveJson可以导出Json文件

4.Unity中反序列化

using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;

public class DataManager: MonoBehaviour
{
    void Start()
    {
        //string json = File.ReadAllText("Assets/Resources/Data/test.json");
        string json = Resources.Load<TextAsset>("Data/test").text;
        Dictionary<string,CharacterInfo> infos=JsonConvert.DeserializeObject<Dictionary<string, CharacterInfo>>(json);
    }

}
public class CharacterInfo
{
    public string CharacterName; // 角色名称
    public float HP; // 最大生命
    public int Attack; // 攻击力
    public string Description; // 角色描述
    public Path Path; // 命途
}
public enum Path
{
    Preservation,
    TheHunt,
    Destruction,
    Nihility
}

1.将生成的代码复制过去,枚举类型需要自己定义

2.使用Path.ReadAllText或者Resources.Load<TextAsset>读取Json文件

3.使用JsonConvert.DeserializeObject反序列化为对象,需要using Newtonsoft.Json;

自定义Excel真实值与显示值的关系

选中需要的单元格,条件格式->管理规则->新建规则

选择只为包含以下内容的单元格设置格式,设置为单元格值,等于,具体值,点击格式

选择自定义,在类型中输入显示的值,点击确定

 

在管理中即可看到,应用于为使用此规则的单元格范围,当增加行时自动扩展

格式仅影响excel中的显示值,不影响实际值


如果这个小技巧帮到了你,请点个赞支持一下~

猜你喜欢

转载自blog.csdn.net/m0_72922928/article/details/134338728