【问题标题】:How To Make Multi Array in Unity c#?如何在 Unity C# 中制作多数组?
【发布时间】:2016-07-12 09:59:53
【问题描述】:

如何将下面的变量转换为多数组变量?

代码示例:

public GameObject Mayonnaise;
    Text Qty;
    Text Price;
    Text Have;

    public GameObject Cheese;
    Text Qty;
    Text Price;
    Text Have;

    public GameObject Flour;
    Text Qty;
    Text Price;
    Text Have;

    public GameObject Sugar;
    Text Qty;
    Text Price;
    Text Have;

我希望该游戏对象蛋黄酱包含数量、价格、数量;

所以它看起来像:蛋黄酱["qty","Price","Have"]

所以我不需要用同一个变量名创建太多变量名。

Unity C# 中的情况如何?

谢谢

【问题讨论】:

  • 您可以像这样创建GameObjects 的数组。 @ 987654325@ 但如果我不正确地理解你的问题,你会尝试制作@ 987654326@s 的游戏对象数组。你也可以查看Dictionary这里有更多信息:link
  • 能否让示例转换上面的代码?
  • 首先我需要知道你为什么想要这样的结构。你为什么要创建例如public GameObject Mayonnaise 而不是Text Qty ,Text Price?也许你应该考虑创建类。例如public class Product { public Text Qty; public Text Price; public Text Have; } 然后创建对象例如:public Product Mayonnaise = new Product(); Mayonnaise.Qty = //your text componentlink

标签: c# unity3d unityscript


【解决方案1】:

我希望该游戏对象蛋黄酱包含数量、价格、数量;

游戏对象不能包含这些。看起来您正在寻找一种方法来保存这些变量并使用脚本来执行此操作是合适的。

所以我不需要用同一个变量名创建太多变量名

您只需要一个包含每种食物类型的脚本。然后,您可以创建每种食物类型的数组。这就是我对这个问题的看法,希望我没看错。

如果您仔细查看您的问题,您会看到 QtyPriceHave 变量出现在所有脚本中。这是应该使用inheritance 的地方。

Food类:

public class Food
{
    protected Text Qty;
    protected Text Price;
    protected Text Have;

    public void setQty(Text Qty)
    {
        this.Qty = Qty;
    }

    public void setPrice(Text Price)
    {
        this.Price = Price;
    }

    public void setHave(Text Have)
    {
        this.Have = Have;
    }

    public Text getQty()
    {
        return this.Qty;
    }

    public Text getPrice()
    {
        return this.Price;
    }

    public Text getHave()
    {
        return this.Have;
    }
}

然后,您可以创建您的 MayonnaiseCheeseFlourSugar 类并从 Food 继承所有这些类。

public class Mayonnaise : Food
{

}

public class Cheese : Food
{

}

public class Flour : Food
{

}

public class Sugar : Food
{

}

现在,要回答您关于创建多个数组的问题,下面就是您要查找的内容。

const int Size = 4;

Mayonnaise[] mayonnaise;
Cheese[] cheese;
Flour[] flour;
Sugar[] sugar;

void Start()
{
    mayonnaise = new Mayonnaise[Size];
    cheese = new Cheese[Size];
    flour = new Flour[Size];
    sugar = new Sugar[Size];

    //Create instance of of them
    for (int i = 0; i < Size; i++)
    {
        mayonnaise[i] = new Mayonnaise();
        cheese[i] = new Cheese();
        flour[i] = new Flour();
        sugar[i] = new Sugar();
    }

    mayonnaise[0].setHave(SomeTextComponent);
    mayonnaise[0].getHave().text = "Some Text";
    string text = mayonnaise[0].getHave().text;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多