我試圖創建多個引用稱爲Ball
對象,這樣就會出現在屏幕上多個球的時候,是時候採取這樣的行動實例化對象的特定對象。但是,我似乎無法弄清楚如何做到這一點。這裏是我正在試圖做到這一點:問題統一
private GameObject reference;
private Ball[] ballArray;
void Start() {
reference = GameObject.FindGameObjectWithTag("ball");
ballArray = new Ball[amountOfBalls - 1];
start = false;
for (int i = 0; i < ballArray.Length + 1; i++)
{
ballArray[i] = Instantiate(reference);
print("Initialized: " + (i + 1) + " times.");
}
}
當我這樣做,我得到以下錯誤
Cannot implicitly convert type 'UnityEngine.GameObject' to 'Ball'
但是,如果我改變的ballArray
類型Object
它的工作原理,並拋出沒有錯誤,但是如果它的類型爲Object
,我不能訪問Ball
的方法。我需要這些方法。
問題:如何使這項工作仍然可以訪問我的Ball
類方法?
下面是一個例子來進一步明確什麼,我需要能夠做到
void Update() {
for (int i = 0; i < ballArray.Length + 1; i++) {
if (ballArray[i].isOffScreen()) {
print("Ball #" + (i+1) + " is off screen");
}
}
}
我需要能夠從Ball
類訪問isOffScreen
方法。
在先進的感謝您的幫助!
'ballArray [i] = new Ball()'有什麼問題;'? – Idos
@Idos號。如果你的班級繼承了Monobehaviour,你就無法做到這一點。 – Programmer