JsonUtility是5.3新增的用于序列化及反序列化的工具
用法为
using System;
using System.Collections.Generic;
[Serializable]
public class Enemy
{
[SerializeField]
string name;
[SerializeField]
List skills;
public Enemy(string name, List skills)
{
this.name = name;
this.skills = skills;
}
}
var enemies = new List();
enemies.Add(new Enemy("スライム", new List() { "攻撃" }));
enemies.Add(new Enemy("キングスライム", new List() { "攻撃", "回復" }));
Debug.Log(JsonUtility.ToJson(enemies));
它能序列化类但是不能序列化泛型List及字典等
为了解决这个问题,可以把不可序列化的类型以可序列化的类型进行存储并保存到类中
例如我们不可以直接序列化list,但可以序列化存在list类型的类
我们不可以直接序列化字典,但可以将其分成存在两个list类型的类
需要在类中声明保存的类型对象,并使其继承自ISerializationCallbackReceiver
然后实现OnBeforeSerialize