跳到主要内容
版本:4.x

类型系统速查

类型写在 bean 字段的 type、Excel ##type 行,或校验标签里。本页给可直接套用的写法;单元格怎么填见 Excel 基础

基础类型

类型说明数据表示例
bool大小写不敏感true / false / 0 / 1 / /
byte / short / int / long整型1001
float / double浮点1.5
string字符串hello;空串填 ""
text语法糖,等价 string#text=1本地化 key,会校验合法性
datetime导出为 UTC 秒(long)2024-01-01 12:00:00

自定义类型

类型说明
enum枚举;可填项名或 alias
bean复合类型;可继承 / 多态

在 schema 中引用时写类型全名或本模块简名,例如 Qualityitem.CostShape

容器

写法说明
array,T数组
list,T列表
set,T集合
map,K,V映射;K 一般为基类型或 enum

约束:元素 / key / value 都不可空(不能写 list,int?map,int?,string)。

Schema 示例:

<bean name="Bag">
<var name="id" type="int"/>
<var name="item_ids" type="list,int"/>
<var name="tags" type="set,string"/>
<var name="attrs" type="map,int,int"/>
<var name="costs" type="list,Cost"/>
</bean>

带分隔符、长度等标签时,容器标签加在容器上,常用括号:

写法含义
(list#sep=\|),int单元格内用 \| 分隔
(list#size=4),int长度须为 4
(list#sep=;),Cost#sep=,列表用 ;,元素 Cost 用 ,
(map#sep=,),int,string紧凑 map

Excel 分列 / 多行填法见 嵌套与容器

可空

写法含义
int? / string? / Cost?原子或非多态 bean 可空
Shape多态且非可空:必须给出具体子类,不能 null
Shape?可空多态:才允许空 / null

容器本身不支持 list,T? 这种元素可空写法。

字段上的常用标签

写在类型字符串中(Excel ##type 或 XML type="..."):

写法作用
int!不能为默认值(如 0)
int#ref=item.TbItem引用校验
int#ref=item.TbItem?0 / 空可忽略引用
int#ref=a.TbA,b.TbB多表引用
string#path=unity资源路径校验
int#range=[1,100]范围
int#set=1;2;3允许值集合
(list#index=id),Foo对 list 元素按 id 建辅助索引(如 C#)

完整说明见 校验器

特殊类型

类型说明
table每张配置表对应的管理类(如 TbItem
Tables入口类,名由 targets[].manager 决定

外部类型映射(TypeMapper)

可把 bean/enum 映射到工程已有类型(如 UnityEngine.Vector3UnityEngine.AudioType)。完整写法、匹配规则与示例见 外部类型映射(TypeMapper)

相关链接