我正在 Unity 中創建一個游戲,該游戲使用 Tilemaps 以程式方式生成一個類似于 2D Minecraft 作業方式的世界。我有兩個類:Chunk 是包含 tile 資訊的 16x16 int 陣列,以及 Region 是 3x3 Chunk 陣列。塊用于將圖塊加載到圖塊地圖上,區域用于將資料保存和加載到 JSON 檔案。當玩家正在玩游戲時,會在他們當前的區塊周圍加載一個 3x3 的區塊區域,并在其當前區域周圍加載一個 3x3 的區域區域。以下是課程:
//Stores tile data of a chunk
[Serializable]
public class Chunk
{
public int[,] tiles = new int[CHUNK_SIZE, CHUNK_SIZE];
}
//Stores Chunk data of a region
[Serializable]
public class Region
{
public Vector2Int location;
public Chunk[,] chunks = new Chunk[REGION_SIZE, REGION_SIZE];
}
以下是生成區域,填充塊,然后對其進行序列化的代碼:
Region region = new Region();
region.location = new Vector2Int(x, y);
for (int i = 0; i < REGION_SIZE; i )
{
for (int j = 0; j < REGION_SIZE; j )
{
region.chunks[i, j] = GenerateChunk();
}
}
string regionJson = JsonUtility.ToJson(region);
我遇到的問題是生成的 regionJson 字串僅包含位置資訊而不包含塊資訊。我知道 JsonUtility 很小并且有陣列問題,但是我認為將陣列包裝在一個類中可以解決這個問題。我想弄清楚的是問題是否來自包含陣列的 Chunk 類、包含一個 Chunk 陣列的 Region 類,或者其他完全不同的東西。非常感謝任何幫助!
uj5u.com熱心網友回復:
JsonUtility當 JsonNet 只是為我做的時候,我不會拉我的頭發來制定在這種情況下使用的解決方法。
using Newtonsoft.Json;
string regionJson = JsonConvert.SerializeObject(region);
我已經通過生成一些假資料測驗了您的場景,它與多維陣列完美配合。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338816.html
上一篇:如何從json讀取陣列
