如何在 Unity C# 中创建多数组?
How To Make Multi Array in Unity c#?
如何将下面的变量转换成多数组变量?
代码示例:
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# 怎么样?
谢谢
I want that gameobject Mayonnaise contain Qty, Price, Have;
游戏对象不能包含这些。看起来您正在寻找一种方法来保存这些变量,并且使用脚本来执行此操作是合适的。
So I no need to create too many variable name with the same one
您只需要一个包含每种食物类型的脚本。然后,您可以创建每种食物类型的数组。这就是这个问题对我来说的意思,希望我没看错。
如果仔细观察您的问题,您会发现 Qty
、Price
和 Have
变量出现在所有脚本中。这是应该使用 inheritance
的地方。
Food
class:
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;
}
}
然后您可以创建 Mayonnaise
、Cheese
、Flour
和 Sugar
classes 并从 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;
}
如何将下面的变量转换成多数组变量?
代码示例:
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# 怎么样?
谢谢
I want that gameobject Mayonnaise contain Qty, Price, Have;
游戏对象不能包含这些。看起来您正在寻找一种方法来保存这些变量,并且使用脚本来执行此操作是合适的。
So I no need to create too many variable name with the same one
您只需要一个包含每种食物类型的脚本。然后,您可以创建每种食物类型的数组。这就是这个问题对我来说的意思,希望我没看错。
如果仔细观察您的问题,您会发现 Qty
、Price
和 Have
变量出现在所有脚本中。这是应该使用 inheritance
的地方。
Food
class:
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;
}
}
然后您可以创建 Mayonnaise
、Cheese
、Flour
和 Sugar
classes 并从 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;
}