Зависает Unity при инстанциации MonoBehaviour скриптов в Start
Пытаюсь создать c Instantiate массив объектов из selector. Но код создаёт огромное число объектов (видно слева пару объектов как Cube(Clone), затем идут пару как Cube (Clone)(Clone) и т.д) и через секунду юнити (2018.4) намертво виснет.
Что не так с кодом?
public class Bgr : MonoBehaviour
{
public int numSelectors = 2;
public GameObject[] selectorArr;
public GameObject selector; //selected in the editor
void Start()
{
selectorArr = new GameObject[numSelectors];
for (int i = 0; i < numSelectors; i++)
{
GameObject go = Instantiate(selector, new Vector3((float)i, 1, 7), Quaternion.identity) as GameObject;
go.transform.localScale = Vector3.one;
selectorArr[i] = go;
}
}
}
Ответы (1 шт):
Автор решения: Suvitruf says Reinstate Monica
→ Ссылка
У вас в Start вызывается Instantiate, который создаёт копию selector. Как я понимаю, на этом selector висит скрипт Bgr.
В итоге, после создания нового объекта на сцене на нём будет также висеть скрипт Bgr, у которого вызовется Start, у которого вызывается Instantiate и так до бесконечности создаются копии, пока Юнити не умрёт.