我正在为我的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时,它仅打印:{}