Я пытаюсь создать плоский мир из кубов, у меня есть несколько вложенных циклов для циклического перемещения по координатам и поместить каждый блок. Когда я запускаю приложение, механизм игры единства зависает. Из того, что я могу сказать, петли правильные, должны работать и выходить должным образом. Первоначально я думал, что, возможно, я пытался создать слишком много объектов, поэтому я значительно уменьшил количество, но я все равно получаю ту же проблему. Я смотрел на этот код некоторое время и не могу найти проблему, поэтому мне было интересно, знает ли кто-нибудь, что это за проблема?Unity freeze on run, looped Instantiate
using UnityEngine;
using System.Collections;
public class Chunk : MonoBehaviour {
public readonly int chunkWidth = 2;
public readonly int chunkHeight = 2;
public GameObject TestBlock;
// Use this for initialization
void Start() {
spawnChunk (0,0);
}
// Update is called once per frame
void Update() {
}
public void spawnChunk(int posX, int posZ){
for(int x = 0; x <= chunkWidth; x++){
for(int y =0; y <= chunkHeight; y++){
for(int z = 0; x <= chunkWidth; z++){
//create object
Instantiate(TestBlock, new Vector3(x + posX, y, z + posZ), Quaternion.identity);
}
}
}
}
}
Вы уверены, что это не просто исключение? 'TestBlock' будет null. –
TestBlock назначается в движке, вы перетаскиваете скрипт на объект, в этом случае пустой объект, а затем в инспекторе вы перетаскиваете объект в тип gameObject (TestBlock) в этом скрипте. – user2395615
Но в какой момент он назначен во время выполнения? Вы пробовали отлаживать свой код, чтобы проверить значение в 'spawnChunk'? Можете ли вы перешагнуть вызов 'Instantiate' в отладчике? –