我有一個名爲ball的對象,並在按下按鈕「b」時,我希望在那裏有三個對象。這三個將基於第一球的位置。這是我正在嘗試這樣做的代碼。生成一個gameobject的三個實例
public class TripleBall : MonoBehaviour {
public Ball firstBall;
private int amountOfBalls = 2;
private Ball[] ballArray;
private bool start, avail, located;
void Start() {
ballArray = new Ball[amountOfBalls - 1];
start = false;
for (int i = 0; i < ballArray.Length; i++)
ballArray[i] = gameObject.AddComponent<Ball>();
}
// Update is called once per frame
void Update() {
if (Input.GetKeyDown(KeyCode.B))
start = true;
if (start)
{
//Begin locator: Makes it so when the balls spawn they spawn where the first ball
if (!located) {
for (int i = 0; i < ballArray.Length; i++)
{
ballArray[i].transform.position = firstBall.transform.position;
}
located = true;
}
//End locator : if statement and loop
}
}
}
我想在那裏,當我點擊 「B」 是在屏幕上三個球。我知道他們會處於相同的位置,但沒關係。另外,當我說三個球時,我的意思是代碼執行後會有三個球。上面的代碼應該創建兩個。下面是檢查球物體的圖像:
的Ball
腳本是得到了切出的圖像的唯一的事情。
當我嘗試的代碼,它說以下內容:
問:我怎樣才能解決這個問題並得到所需的三個球露面。謝謝你的幫助!
你叫RigidBody附加到Tripleball對象,所以檢查你是否有附加到TripleBall的RigidBody :)你的圖片只顯示球對象。 –
代碼中有一個不相關的問題是'Ball [amountOfBalls - 1];'。這應該是'Ball [amountOfBalls];'如果你真的想讓amountOfBalls成爲amountOfBalls。 – Programmer
另一個問題是'ballArray [i] = gameObject.AddComponent();'只在對象gameObject(當前對象)上創建一個新的腳本Ball。如果你想複製球對象,你應該做這個'ballArray [i] =(Ball)Instantiate(firstBall);' –
Matriac