平常写代码的时候就应该习惯性的加【SerializeField】System.Serializable 如果是公有变量可以不加 泛型就要用<>
JSon语法
Excel转Json
https://www.bejson.com/json/col2json
记得检查一下,得到的Json格式是否有问题
Excel -json文件-读取文件-新建对应类-litJson转列表
Jsonutility
写入时会自动创建文件。
如果要在前面加一个文件夹,得保证有一个文件夹(也要加 / )
读取路径字符串
序列化
注意区分,类的需要点出命名空间System,而且是Serializable,变量才是普通的SerializeField
公开的变量不需要加。 而保存的类本身也可以不加,只有当他内部存在其他类作为成员时,作为成员变量的类要加。
反序列化
用 JsonUtility.FromJson<>(); 更推荐用泛型
或者用 JsonUtility.FromJson( , Typeof);
如果Json中数据少了,读取到内存中不会报错。缺少的类对象会使用初始值。 比如不能存字典,那字典就会是默认值。
想要读取集合则必须包裹一层,不能直接读
这个RoleDate里面包裹了玩家列表,读取它就是读取玩家列表。
Json练习题
数据保存的文件名由玩家决定 保存同理
Litjson
,不需要将整个文件全部导入, 只需要导入litjson-0.19.0 \src \LitJson 中的c#脚本部分
JsonMapper.ToJson() JsonMapper.ToObject()
不能保存私有,只能存键为string的字典,类需要有无参构造函数
8.字典键必须是字符串
Json数据管理类
总览
前期准备
存储 因为这个函数不是泛型,所以参数不能用泛型,只能用object
读取 这个是泛型函数,但这里它却并不需要用到泛型参数
因为外部对象需要初始化的,不能直接拿个默认值赋给它
复习