2022年8月30日 星期二

Unity 遊戲資料存取

 2022.08.29 能夠跨平台在遊戲中存取資料,存檔資料為 JSON 且可選擇是否加密。

範例下載:github

範例使用:

1.下載後用 Unity 開啟,並開啟預設場景,點選 GameObject 物件,可以修改  TestData Component > File Settings 的內容。

2.執行後點選 GameObject 物件,可以修改 TestData Component > Data Settings 的內容。

3.停止執行,可以看到檔案在 Application.persistentDataPath 中。

4.再度執行,可以發現 TestData Component 內容已經更改。

套件下載:github

套件使用:

1. 開啟 Unity 後 Assets > Import Package > Custom Package 安裝。

2.更改 GameData.cs 的 public class GameData,改成需要的資料結構,注意下方 GameData() 要跟上方式對應修改,注意 Dictionary 要使用 SerializableDictionary。示範:

  public class GameData
{
    public Vector3 playerPosition;
    public GameData()
    {
    this.playerPosition = Vector3.zero;
   }
}

3.使用前要先讀取檔案,建議放在 Start()

private FileDataHandler dataHandler;
private void Start()
{   
     dataHandler = new FileDataHandler(Application.persistentDataPath, fileName, encryptionCodeWord);     
     StaticGameData.gameData = dataHandler.Load();
}

4.讀取出資料中的變數,任一個 class 均可讀取。

playerPosition = StaticGameData.gameData.playerPosition;

5.設定資料中的變數,任一個 class 均可設定。

StaticGameData.gameData.playerPosition=playerPosition ;

6.存檔,建議放在 OnApplicationQuit()

dataHandler.Save(StaticGameData.gameData);






沒有留言:

張貼留言