問題總結一句話:在遊戲中修改了 TileMap 之後該如何儲存?
思路上是把 Gid 陣列 parseJson 後存進 localStorage,下次載入之後一個個比對預設 TileMap,不一樣就 setTileGIDAt,但想想這方法有些笨,有更高效的解法嗎?
實行的前提是在極大的地圖(例如 2048*2048)下兼顧效能,盡可能不要在進遊戲之後重繪整張地圖,我之前的嘗試實驗過程是這樣的:
在 2.4.8 中讀取 Json 用 Sprite 一塊塊拚地圖,效能有夠差……
↓
在 3.4.1 中讀取 Json 嘗試用多邊形遮罩來合併連接的每個 Tile,結果被 3.x 的各種 BUG 氣到去載 Unity
↓
讀了 Unity 的文檔之後發現 Unity 和 2.4 一樣不支援多邊形遮罩。
↓
回到 2.4.8(真香)覺得還是 tileMap 直接拉進遊戲裡效率最高,讀取也快,但如果像 Terraria 或 Oxygen not included 玩家在遊戲中大範圍修改了地圖,該如何儲存呢?我上面的思路正確嗎?