Excel 数据表规则与类型说明
本文档用于说明 Excel 数据表在数据自动生成与加密存储流程中的结构规范与类型写法。
确保所有表格内容可被 DataGenTool 与 DataEncryptTool 正确解析为 C# 数据类并加密保存。
一、表格结构
行号
内容说明
示例
第 1 行
字段名(C# 变量名)
id、name、position
第 2 行
字段类型
int、string、Vector3、ItemData[]
第 3 行
字段描述(可为空)
唯一ID、物品名称、出生坐标
第 5 行起
数据内容
实际数据行
字段名需为合法 C# 变量(字母/数字/下划线),建议首字母小写。
二、字段类型与写法
1. 基础类型
类型
示例
解析
说明
int
1001
内置解析
整数
float
3.14
内置解析
单精度浮点
double
2.71828
内置解析
双精度浮点
bool
true / false / 1 / 0
内置解析
布尔值
2. 数组类型
类型
示例
解析
说明
int[]
[1,2,3]
内置解析
可省略中括号
float[]
[0.1,0.2,0.3]
内置解析
支持浮点
string[]
["A","B","C"] 或 A,B,C
内置解析
自动去引号与空格
ItemData[]
[{"id":1,"name":"A"},{"id":2,"name":"B"}]
JSON 解析
解析为数组
3. Unity 常用结构
类型
示例
解析
说明
Vector2
(1,2)
内置解析
new Vector2(1,2)
Vector3
(1,0,2)
内置解析
new Vector3(1,0,2)
Color
#FF0000 或 (1,0,0)
内置解析
支持十六进制与浮点
4. 集合类型(List)
类型
示例
解析
说明
List<int>
[1,2,3] 或 1,2,3
内置解析
自动分割或 JSON 数组
List<string>
["A","B","C"]
内置解析
自动去引号
List<Vector3>
[(1,0,0),(0,1,0)]
内置解析
推荐使用括号或 JSON 格式
List<ItemData>
[{"id":1,"name":"A"},{"id":2,"name":"B"}]
JSON 解析
支持 JSON 数组
5. 自定义类
类型
示例
解析
说明
ItemData
{id:1,name:"Sword"}
JSON 解析
自动反序列化为类
MonsterData
{id:100,level:5,pos:(1,0,1)}
JSON 解析
支持嵌套结构
6. 字典类型
类型
示例
解析
说明
Dictionary<string,int>
{"gold":10,"diamond":5}
JSON 解析
最基础的键值对结构
Dictionary<int,string>
{1:"A",2:"B"}
JSON 解析
键值为数字,值为字符串
Dictionary<string,float[]>
{"Speed":[1.2,2.5,3.0],"Attack":[10,15,20]}
JSON 解析
值为数组
Dictionary<string,List<int>>
{"GroupA":[1,2,3],"GroupB":[4,5,6]}
JSON 解析
值为列表
Dictionary<string,ItemData>
{"Sword":{"id":1,"name":"Blade"},"Shield":{"id":2,"name":"Guard"}}
JSON 解析
值为自定义类
Dictionary<int,ItemData[]>
{1:[{"id":1,"name":"A"}],2:[{"id":2,"name":"B"}]}
JSON 解析
值为自定义类数组
Dictionary<string,Dictionary<string,int>>
{"PlayerA":{"HP":100,"MP":50},"PlayerB":{"HP":200,"MP":80}}
JSON 解析
多层嵌套字典
Dictionary<string,List<ItemData>>
{"LootA":[{"id":1,"name":"Coin"},{"id":2,"name":"Key"}],"LootB":[{"id":3,"name":"Gem"}]}
JSON 解析
值为自定义类列表
Dictionary<string,Vector3>
{"A":"(1,0,0)","B":"(0,2,0)"}
JSON 解析
值为向量对象(字符串形式)
7. 特殊类型
类型
示例
解析
说明
DateTime
2025-10-27 14:00:00
内置解析
转为 System.DateTime
Color
#RRGGBB 或 (r,g,b)
内置解析
支持两种格式
bool
true / false / 1 / 0
内置解析
不区分大小写
三、示例
id
name
position
drops
stats
bossData
int
string
Vector3
int[]
StatData
List
唯一标识
名称
坐标
掉落物
属性
Boss 数据
1
“Slime”
(0,0,0)
[1001,1002]
{hp:100,atk:10,def:5}
[{“id”:2001,“name”:“King”},{“id”:2002,“name”:“Queen”}]
对应类结构:
public class MonsterData
{
public int id;
public string name;
public Vector3 position;
public int[] drops;
public StatData stats;
public List<ItemData> bossData;
}
四、加载示例
// 默认数据(StreamingAssets)
var monsters = FilesUtil.LoadDefaultData<MonsterDataContainer>("Data/Monster/MonsterData");
// 本地数据(PersistentDataPath)
var player = FilesUtil.LoadLocalData<PlayerDataContainer>("Data/Player/PlayerData");
评论