我正在用c#学习数组,并且在分配变量时遇到问题。
第一堂课
public int H = 10;
public int V = 10;
//BlaBlaBla MonoBehaviour class with variables
public BlaBlaBla[,] blablabla;
void Start()
{
blablabla = new BlaBlaBla[H,V];
for (int i = 0; i < X; i++)
{
for (int j = 0; j < Y; j++)
{
blablabla[i, j] = new BlaBlaBla();
}
}
第2类的第2类从第1类的第3类开始...实例化(blablabla,H,V)
三等舱
public BlaBlaBla[,] azaza;
public void Instantiated(BlaBlaBla[,] wakawakawaka, int HH, int VV)
{
azaza = wakawakawaka;
for (int i = 0; i < HH; i++)
{
for (int j = 0; j < VV; j++)
{
GameObject sss = Instantiate(sssGameObject);
sss.GetComponent<BlaBlaBla>() = azaza [i, j]; // ERROR:The left-hand side of an assignment must be a variable, a property or an indexer
}
}
如果我这样分配变量,则效果很好:
sss.GetComponent<BlaBlaBla>().text = azaza [i, j].text;
sss.GetComponent<BlaBlaBla>().someINT = azaza [i, j].someINT;
据我了解,数组不存储该类的实例。仅变量等等,但是如果有数百个变量该怎么办。如何分配它们?
答案 0 :(得分:0)
在没有看到您的sssGameObject
和GetComponent()
的定义的情况下,我只能从高层次而不是详细地确定问题。问题是您正在尝试将该值分配给无效的方法调用的结果。
您需要标识要分配的属性,或找到要使用的相应SetComponent<Blablalba>(azaza[I, j]);
。
您后面的调用使set text属性起作用,因为这样做时,编译器会创建一个引用,您可以为该引用寻址并为其设置属性。简而言之,您的GameObject需要一个SetObject方法。