尝试使用统一的JsonUtility来序列化多维数组

时间:2019-01-23 11:31:15

标签: c# unity3d

我正在尝试将通用多维数组另存为json(这不是主要功能,只是最终目标),我想将原始位置保留在多维数组中,以便可以将其解析回去。

这是我的代码:

[Serializable]
public class Serializable2DArray<T>
{
    public Serializable2DObject<T>[] data;

    public Serializable2DArray(T[,] t)
    {
        List<Serializable2DObject<T>> tt = new List<Serializable2DObject<T>>();
        for (int x = 0; x < t.GetLength(0); x++)
        {
            for (int y = 0; y < t.GetLength(1); y++)
            {
                Serializable2DObject<T> td = new Serializable2DObject<T>(t[x, y], x, y);
                tt.Add(td);
            }
        }
        data = tt.ToArray();
    }
}

[Serializable]
public class Serializable2DObject<T>
{
    public int x;
    public int y;
    public T obj;

    public Serializable2DObject(T d, int _x, int _y)
    {
        obj = d;
        x = _x;
        y = _y;
    }
}

谢谢您的协助!

编辑: 我实际上使用功能在另一端:

Serializable2DArray<TileData> md = new Serializable2DArray<TileData>(Mapdata);
string a = JsonUtility.ToJson(md, true);
File.WriteAllText(Application.persistentDataPath + "/map.json", a);

Tiledata类:

[System.Serializable]
public class TileData
{
    public int tileNumber;
    public Vector3 position;
    public int toughness;
    public int health;
}

这一切都返回“ {}” 我希望它返回正确的对象数组

对不起,如果我的问题不清楚。

0 个答案:

没有答案