我在 Unity 中的保存状态的字典替代品

Alternative to Dictionary for my savestate in Unity

抱歉,如果问题很奇怪,我刚开始使用 Unity 并开始编写代码。

我正在使用 XML 序列化系统来创建一个保存状态。这是我的保存状态内容:

public int item1_owned;
public int item1_price;
public int item2_owned;
public int item2_price;

item1_owned 是玩家实际拥有的 item1 数量。 item1_price 定义 item1 的价格(存储在这里是因为它在每次购买后上涨,就像 Cookie Clicker 系统一样)

我试着说得更简单,以避免每次创建新项目时都创建一个新的 int 项目X。所以我试着放一本字典,但它似乎需要对 XML 序列化进行更改,而且我没有足够的实验来尝试这个。 我想要的是将我的物品放在 class 中,带有价格,名称...... 但我不知道如何创建无限数量的 class 以及如何使用它。

谢谢你的帮助,请不要刻薄,我真的试过了:(

在 Unity 中序列化 Dictionary 确实存在问题。您可以使用 Object 来表示 itemOwneditemPrice 这使得序列化变得容易。

[Serializable]
public class PriceSystem
{
    public int itemOwned;
    public int itemPrice;
}

创建它的列表并添加任意数量的对象:

List<PriceSystem> pSystemList = new List<PriceSystem>();

PriceSystem pSystem = new PriceSystem();
pSystemList.Add(pSystem);

然后将pSystemList序列化为json或xml。