flowchart LR
Unity.Serialization{Unity.Serialization} --> W(Write) & R(Read)
click Unity.Serialization "https://docs.unity3d.com/Packages/com.unity.serialization@3.1/manual/index.html" _blank
Data[("Data <br> Profile 0<br>.<br>.<br>.<br> Profile N <br> Dictionary<string,byte[]>")] --> |Default use profile 0| ChangeProfile(ChangeProfile)
Data --> |Save on Application pause or quit| SaveToFile(SaveToFile)--> Unity.Serialization
Data --> |Load when startup| LoadFromFile(LoadFromFile)--> Unity.Serialization
Data --> Get(Get<T>) & Set(Set<T>) & DeleteKey(DeleteKey) & HasKey(HasKey) & DeleteAll(DeleteAll)
File{{File Data}} --- W & R
- System data for game unity (Unity 2022.3)
- Using Unity.Serialization to serialize binary data
- Data allows you to store data in byte[] form in blocks called profiles. Each profile is a Dictionary with the key as a string and the value
for version 1.0.2
"com.wolf-org.game-data":"https://github.com/unity-package/game-data-unity.git#1.0.2",
- Initialize data when loading the game:
GameData.Init()
Data will be init (Load Data) automatically when game starts - Change Profile:
GameData.ChangeProfile(int profile)
- Load Data:
GameData.Load()
Load all data from file for game - Get Data:
GameData.Get("KEY", valueDefault);
Use similar to PlayerPrefs - Set Data:
GameData.Set("KEY", value);
Use similar to PlayerPrefs - Save Data:
GameData.Save()
Save data to file (You should save when pausing or quitting the game)
private void OnApplicationPause(bool pauseStatus)
{
if(pauseStatus) GameData.Save();
}
- Has Key:
GameData.HasKey(string key)
To check if the profile has a key, - DeleteKey:
GameData.DeleteKey(string key)
To delete the key from the profile - DeleteAll:
GameData.DeleteAll()
To delete the entire key - Backup:
GameData.Backup()
Get raw byte[] of all data of profile - Restore:
GameData.Restore(byte[] bytes)
Load from byte[]