Unityを使っている最中、ゲームオブジェクトを複製するためにInstantiate関数を使っていると、ゲームオブジェクトが複製され続けてしまって画面が固まってしまったのでその原因と対処法を書き残しておきます。
下の画像みたいに、Cubeを複製して並べたい。
複製する元となるCubeを用意して、そのCubeにスクリプトをアタッチして実行したところ、画面が固まってしまいました。仕方がないので強制終了してもう一度Unityを起動しました。
画面が固まってしまったのは、複製するCubeにスクリプトをアタッチしてしまったことが原因でした。
つまり、元となるCubeが4つCubeを複製 → 複製された4つのCubeがさらにそれぞれ4つずつCubeを複製・・・というような複製ループの入ってしまっていたわけです。
スクリプトをアタッチする場所が原因だったので、空のオブジェクトを用意して、そのオブジェクトにスクリプトをアタッチすれば良いです。
public GameObject original;
int count = 1;
// Start is called before the first frame update
void Start()
{
while(count < 5){
Instantiate(original, new Vector3(3f * count, 0, 0), Quaternion.identity);
count++;
}
}
// Update is called once per frame
void Update()
{
}