0
試圖在遊戲開始時立即創建一個簡單的圓形遊戲物體的網格。每個圓之間的空間需要是2D的1.41和1.34。所以用一點數學,我會認爲這個腳本會創建相對於初始參考對象的這個網格。實例化凍結Unity
但是,在編輯器中單擊遊戲時,遊戲就會凍結,我必須用命令提示符殺死Unity。
任何想法?
下面是代碼:
void Awake()
{
Transform transform = gameObject.GetComponent<Transform>();
for (float i = 1; i < 8; i++)
{
for (float j = 1; j<8;j++)
{
Instantiate(gameObject, transform.position + new Vector3(i * 1.41f, 0, j * 1.34f), new Quaternion(0, 0, 0, 0));
}
}
}
嘗試使用調試器,然後逐步通過代碼我相信它會凍結在有問題和/或問題的線上。你有沒有調試過,但我會認爲這個'gameObject'應該被替換因爲這是這一行中新創建的對象實例'Instantiate(gameObject,' – MethodMan
由此我認爲Awake函數正在每個副本上運行,並且永遠不會在迭代器上超過1,循環不休,在那裏任何方式來阻止這種情況? –
@JamesHughes你說得對,每次複製都會調用一次,所以你剛剛創建了無限循環,只是單獨創建網格和創建圓形對象。 – juniperi