Unity Tilemap Persistance

时间:2019-12-16 17:16:50

标签: unity3d serialization

我正在为我的2D平铺游戏创建地图编辑器,我需要一种将地图保存为JSON的方法。对此必须有一个简单的解决方案,因为这似乎是一件很基本的事情,但是我遇到的问题是字典或对象数组都不是可序列化的。

我的代码如下:

[CreateAssetMenu(menuName = "Map")]
public class Map : ScriptableObject
{
    [SerializeField]
    public Tile[,] tiles;
}

[System.Serializable]
public class Tile
{
    [SerializeField]
    public string name;
}

public class MapView: MonoBehaviour {
    private Tilemap tilemap;   // unity Tilemap reference
    public Map map;   // Map instance to save

    void Start()
    {
        tilemap = GetComponent<Tilemap>();
    }

    public void Save()
    {
        map.tiles = GetTiles();
        string json = JsonUtility.ToJson(map);
        Debug.Log(json);
    }

    public Tile[,] GetTiles() {
        // loops through each Tilemap position and appends to tile array
    }
}

当我尝试保存MapView并将Map scriptableobject转换为Json时,它仅打印:{}

0 个答案:

没有答案