我正在为Unity3D中的游戏设置保存和加载系统。像位置这样的基础很简单,我只是
public void Save() {
PlayerPrefs.SetFloat ("X", transform.position.x);
PlayerPrefs.SetFloat ("Y", transform.position.y);
PlayerPrefs.SetFloat ("Z", transform.position.z);
}
public void Load() {
float x = PlayerPrefs.GetFloat ("X");
float y = PlayerPrefs.GetFloat ("Y");
float z = PlayerPrefs.GetFloat ("Z");
transform.position = new Vector3 (x, y, z);
}
但是当我想要保存自定义变量时,它就出现了。 以下是包含它们的类的外观:
[SerializeField] private Stat health;
public static Stat Health { get; set; }
[SerializeField] private Stat exp;
public static Stat Exp { get; set; }
[SerializeField] private Stat oxygen;
public static Stat Oxygen { get; set; }
[SerializeField] private Stat playerLevel;
public static Stat PlayerLevel { get; set; }
所以我的问题是,如何在SaveLoad脚本中获取这些统计数据的值?
答案 0 :(得分:5)
只是为了把这一点带回家
1)在Unity中
我甚至无法讨论为什么这么做。它就是这样的!
2)一般来说,游戏/手机的这些日子应该
故事结束。幸运的是,这非常容易。
3)要转换回JSON,
https://stackoverflow.com/a/40097623/294884
4)最后为了保存,老实说没有错:
请注意,如果您只想将其保存为文本文件,这很好,将其另存为文本文件非常容易:
这样做:https://stackoverflow.com/a/35941579/294884
(Notte:在任何情况下都不会在Unity中使用“streamwriter”。保存/读取文本文件非常简单。)
享受生活!