如何在 Unity3D 中保存自定义变量?
How do I save custom variables in Unity3D?
我正在为我在 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);
}
但是接下来就是我想保存自定义变量的部分。
这是包含它们的 class 的样子:
[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 脚本中获取这些统计数据的值?
只是为了说明问题
1) 在 Unity 中
完全忘记序列化。就是这么简单。
我什至懒得讨论原因。就是这样!
2) 通常这些天在 games/mobile 你应该
与JSON
一起工作
故事结束。幸运的是,这非常简单。
3) 前后转换为JSON,
按照@Programmer 所说的去做。
4) 终于挽回了,老实说没有错:
只需使用 PlayerPrefs 来保存长 JSON 字符串。不用担心。
请注意,如果您只想将其保存为文本文件,这很好,将其保存为文本文件非常容易:
只需这样做:
(注意:切勿出于任何原因在 Unity 中使用 "streamwriter"。这对 save/read 文本文件来说完全微不足道。)
重复。不要 >> 不要 << 在 Unity 中触摸、思考或使用 "serialization"!出于任何原因,永远!
享受生活!
我正在为我在 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);
}
但是接下来就是我想保存自定义变量的部分。 这是包含它们的 class 的样子:
[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 脚本中获取这些统计数据的值?
只是为了说明问题
1) 在 Unity 中
完全忘记序列化。就是这么简单。
我什至懒得讨论原因。就是这样!
2) 通常这些天在 games/mobile 你应该
与JSON
一起工作故事结束。幸运的是,这非常简单。
3) 前后转换为JSON,
按照@Programmer 所说的去做。
4) 终于挽回了,老实说没有错:
只需使用 PlayerPrefs 来保存长 JSON 字符串。不用担心。
请注意,如果您只想将其保存为文本文件,这很好,将其保存为文本文件非常容易:
只需这样做:
(注意:切勿出于任何原因在 Unity 中使用 "streamwriter"。这对 save/read 文本文件来说完全微不足道。)
重复。不要 >> 不要 << 在 Unity 中触摸、思考或使用 "serialization"!出于任何原因,永远!
享受生活!