Unity C# Json技巧(下)
敘述:
上一篇已經學會如何把Class中的遊戲資訊儲存成Json文檔,這篇要教大家如何去讀取這個檔案並呈現
【正文開始】
資料讀取:
1.繼續上一篇的專案
2.在資料夾下新增一個C#程式碼(這裡我叫做JsonLoad)
3.開啟這隻程式碼並貼上下列的code (註記解說程式碼用途)
//引述API
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class JsonLoad : MonoBehaviour
{
//宣告一個字串讀取檔案,宣告一個Data物件(上一篇定義的可用來存放遊戲資訊)來取得字串轉換後的物件
string LoadData;
Data MyData;
void Start()
{
//讀取指定路徑的Json檔案並轉成字串(路徑同上一篇)
LoadData = File.ReadAllText("G:/JsonDemo/Assets/file1");
//把字串轉換成Data物件
MyData = JsonUtility.FromJson<Data>(LoadData);
//印出物件中的數值
Debug.Log("玩家生命為 " + MyData.health);
Debug.Log("玩家金錢為 " + MyData.money);
Debug.Log("玩家有" + MyData.equip.Count + "個裝備");
}
}
4.接下來我們移除MainCamer上的JsonDemo,並新增我們剛剛寫的JsonLoad
5.按下Play後我們可以在Console中看到印出來的存檔資訊
6.完成
【結語】
在Unity中我們可以利用Json Utility 來輕易的做到資料的存取,但是Json Utility有些缺點,例如不能存取Dictionary這個資料型態我就覺得很不方便,所以如果真的要用Jason做存取我還是推薦其他的Json API這我就下一篇再分享了!!! 感謝您的閱讀

您好,感謝您的教學,我試著操作了一下,卻出現了以下訊息。 似乎是Data MyData 這一行找不到資料,謝謝。 Assets\GameData\JsonLoad.cs(10,5): error CS0246: The type or namespace name 'Data' could not be found (are you missing a using directive or an assembly reference?)
解決了,原來是我前一篇的 void update(){}整段沒刪除,謝謝教學
^_^