unity序列化和反序列化怎么實(shí)現(xiàn)

小億
136
2024-05-29 13:20:11

在Unity中,序列化和反序列化可以通過對(duì)對(duì)象進(jìn)行標(biāo)記和使用JsonUtility類來(lái)實(shí)現(xiàn)。

  1. 序列化:在需要序列化的類或結(jié)構(gòu)體前面加上[System.Serializable]標(biāo)記,這樣Unity就可以將該對(duì)象轉(zhuǎn)換為JSON格式。例如:
[System.Serializable]
public class PlayerData
{
    public string playerName;
    public int playerLevel;
}

然后,可以使用JsonUtility.ToJson方法將對(duì)象序列化為JSON格式的字符串:

PlayerData player = new PlayerData();
player.playerName = "Alice";
player.playerLevel = 10;

string jsonData = JsonUtility.ToJson(player);
  1. 反序列化:同樣地,在需要進(jìn)行反序列化的類或結(jié)構(gòu)體前面加上[System.Serializable]標(biāo)記。然后,使用JsonUtility.FromJson方法將JSON格式的字符串轉(zhuǎn)換回對(duì)象:
string jsonData = "{\"playerName\":\"Bob\",\"playerLevel\":15}";

PlayerData player = JsonUtility.FromJson<PlayerData>(jsonData);

Debug.Log("Player Name: " + player.playerName);
Debug.Log("Player Level: " + player.playerLevel);

這樣就可以實(shí)現(xiàn)對(duì)象的序列化和反序列化操作。需要注意的是,JsonUtility類只支持Unity內(nèi)置類型的序列化,對(duì)于自定義類型,需要手動(dòng)實(shí)現(xiàn)序列化和反序列化方法。

0