我有一些數據需要序列化/反序列化,但JsonUtility只是沒有做它應該做的。下面是我的工作對象:統一C#JsonUtility不序列化列表
public class SpriteData {
public string sprite_name;
public Vector2 sprite_size;
public List<Vector2> subimage;
}
public class SpriteDataCollection
{
public SpriteData[] sprites;
}
如果我創建一個SpriteDataCollection,並嘗試與JsonUtility序列化,我只是得到一個空對象{}。下面是它如何被構建的:
SpriteData data = new SpriteData();
data.sprite_name = "idle";
data.sprite_size = new Vector2(64.0f, 64.0f);
data.subimage = new List<Vector2> { new Vector2(0.0f, 0.0f) };
SpriteDataCollection col = new SpriteDataCollection();
col.sprites = new SpriteData[] { data };
Debug.Log(JsonUtility.ToJson(col));
調試日誌只打印「{}」。爲什麼它沒有序列化任何東西?我已經測試了它,並且序列化一個SpriteData並完成它應該做的事情,但它在SpriteDataCollection中不起作用。
我想這是某種魔術標籤或我不得不做的,謝謝。它現在按預期工作。 –
我剛碰到這個,對我來說問題是5.我的領域沒有被標記爲公開的。我知道這是在規則,只是滑了我的腦海。 –
@KylePostlewait這是一個常識性的事情,如果它是私人的,它不會被序列化。雖然,您可以將'[SerializeField]'放在專用字段的頂部以使其序列化。 – Programmer