C# 使用数组的基本库存系统

C# 使用数组的基本库存系统,c#,arrays,unity3d,C#,Arrays,Unity3d,我试图用Unity C创建一个非常基本的库存系统,但在决定如何使用数组时遇到了困难。是否最好为每个库存时段使用不同的多维数组,每个维度携带项目数据的整数值?或者使用锯齿状数组,每个锯齿状数组表示项目数据的不同值?还是有更好的解决方案不使用阵列?我计划有大约40-50个库存槽,每个项目有大约10-15个方面,所以这两个选项看起来都不简单。任何帮助都将不胜感激。提前谢谢 分割对象越多越好。您应该尽可能规范化对象,将椅子对象分离为多个部分,并让椅子继承/实例化一些通用属性。我相信下面的解释会更好 cl

我试图用Unity C创建一个非常基本的库存系统,但在决定如何使用数组时遇到了困难。是否最好为每个库存时段使用不同的多维数组,每个维度携带项目数据的整数值?或者使用锯齿状数组,每个锯齿状数组表示项目数据的不同值?还是有更好的解决方案不使用阵列?我计划有大约40-50个库存槽,每个项目有大约10-15个方面,所以这两个选项看起来都不简单。任何帮助都将不胜感激。提前谢谢

分割对象越多越好。您应该尽可能规范化对象,将椅子对象分离为多个部分,并让椅子继承/实例化一些通用属性。我相信下面的解释会更好

class Item
{
    public string Name { get; set; }
    public int Quantity { get; set; }
    public Properties Props { get; set; }
}

class Properties
{
    public int Weight { get; set; }
    public int Height { get; set; }

    // All of the possible properties here...

}
该项目有一个名为“道具”的字段,它是游戏中许多对象/项目的全局字段,该项目是一个可以引用许多东西的对象。如果你像这样构造你的对象,你可以一遍又一遍地使用它们,而不是为游戏中的每个特征创建单独的对象

然后,您最终可以按照以下方式创建库存:

var Inventory = new List < Item > {
    new Item {
        Name = "Bullet", Quantity = 100, Props = new Properties {
            Height = 10, Weight = 10
        }
    }
};
编辑:

根据您的要求,我将尝试进一步解释代码。列表是为您保存数据的泛型类。您也可以创建一个数组,但列表更具动态性,最终可能会出现数组的大小调整问题,而不是列表的大小调整问题。请查看列表中的更多信息

我相信第二部分是你可能很难相处的部分。下面的伪代码应该能更好地解释它

Class Item { Fields, Properties }
Class Properties { Fields }

new Inventory = List of <Items> ( New Item Class(es))
正如您在上面看到的,我们创建了项目列表,并且库存类型也将是列表,因为它将承载项目


我希望它现在更有意义。

分割对象越多越好。您应该尽可能规范化对象,将椅子对象分离为多个部分,并让椅子继承/实例化一些通用属性。我相信下面的解释会更好

class Item
{
    public string Name { get; set; }
    public int Quantity { get; set; }
    public Properties Props { get; set; }
}

class Properties
{
    public int Weight { get; set; }
    public int Height { get; set; }

    // All of the possible properties here...

}
该项目有一个名为“道具”的字段,它是游戏中许多对象/项目的全局字段,该项目是一个可以引用许多东西的对象。如果你像这样构造你的对象,你可以一遍又一遍地使用它们,而不是为游戏中的每个特征创建单独的对象

然后,您最终可以按照以下方式创建库存:

var Inventory = new List < Item > {
    new Item {
        Name = "Bullet", Quantity = 100, Props = new Properties {
            Height = 10, Weight = 10
        }
    }
};
编辑:

根据您的要求,我将尝试进一步解释代码。列表是为您保存数据的泛型类。您也可以创建一个数组,但列表更具动态性,最终可能会出现数组的大小调整问题,而不是列表的大小调整问题。请查看列表中的更多信息

我相信第二部分是你可能很难相处的部分。下面的伪代码应该能更好地解释它

Class Item { Fields, Properties }
Class Properties { Fields }

new Inventory = List of <Items> ( New Item Class(es))
正如您在上面看到的,我们创建了项目列表,并且库存类型也将是列表,因为它将承载项目


我希望它现在有更好的意义。

您可以创建一个简单的对象来保存项目方面。该对象将表示单个库存槽,并且只包含这些对象的数组。看看这个类,它可能比使用数组更容易。你可以创建一个简单的对象来保存项目方面。这个对象将表示一个单独的库存槽,并且只有一个这些对象的数组。看看这个类,它可能比使用数组更容易,是不是C?它看起来很像JavaScript。好的,谢谢你的帮助,但是如果你能再解释一下这段代码就太好了。我对列表/数组没有什么经验,也不知道操作符、命令等。谢谢你的帮助。虽然类项和类属性之间有什么区别,但它只是字段。它们都是具有不同字段的类。例如,如果您能很好地对item进行泛化,则可以对item以外的内容使用属性。对类的划分越深入,就越能利用它们。在这个例子中,你可以将物品用于游戏中的很多东西,以及属性。因此,这些物品就像文件夹一样,可以组织和包含不同类型的信息,我可以根据自己的意愿对它们重新命名,使类物品成为类物品。这是C吗?它看起来很像JavaScript。好的,谢谢你的帮助,但是如果你能再解释一下这段代码就太好了。我对列表/数组没有什么经验,也不知道操作符、命令等。谢谢你的帮助。虽然类项和类属性之间有什么区别,但它只是字段。它们都是具有不同字段的类。例如,如果您能很好地对item进行泛化,则可以对item以外的内容使用属性。对类的划分越深入,就越能利用它们。在本例中,您可以将项用于
游戏中有很多东西,还有属性。所以这些东西就像文件夹一样可以组织和包含不同类型的信息,我可以随意给它们重新命名,让类项目成为类拾取?