gpt4 book ai didi

c# - 如何在 Unity3D 中保存自定义变量?

转载 作者:行者123 更新时间:2023-12-03 03:33:45 25 4
gpt4 key购买 nike

我正在为 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 脚本中获取这些统计数据的值?

最佳答案

只是为了让大家明白这一点

1) 在统一中

完全忘记序列化。就这么简单。

我什至懒得讨论原因。就是这样!

2)一般来说,现在在游戏/移动设备中您应该

使用 JSON

故事结束。幸运的是,这非常简单。

3)要前后转换为 JSON,

完全按照@Programmer所说的去做。

https://stackoverflow.com/a/40097623/294884

4)最后要保存的是,老实说没有什么问题:

只需使用 PlayerPrefs 来保存长 JSON 字符串。不用担心。

请注意,如果您确实只想将其保存为文本文件,这很好,将其保存为文本文件非常容易:

就这样做:https://stackoverflow.com/a/35941579/294884

(注意:无论出于何种原因,切勿在 Unity 中使用“streamwriter”。保存/读取文本文件是完全微不足道的。)

重复。做>>不要<<触摸、思考或在Unity中使用“序列化”!无论出于何种原因,永远!

享受生活!

关于c# - 如何在 Unity3D 中保存自定义变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40694869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com