Попытка создать сетку простого кругового игрового объекта, как только начнется игра. Пространство между каждым кругом должно быть 1.41 и 1.34 в 2D. Поэтому с небольшими математическими соображениями я бы подумал, что этот скрипт создаст эту сетку относительно исходного ссылочного объекта.Instantiate Freezing 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' следует заменить с 'transform', так как это только что созданный экземпляр объекта в этой строке' Instantiate (gameObject, ' – MethodMan
Из этого я думаю, что функция Awake работает на каждой копии и никогда не проходит мимо 1 на итераторе, бесконечно зацикливаясь любой способ остановить это? –
@JamesHughes Вы правы, это называется один раз на каждой копии, так что вы только что создали бесконечный цикл. Просто отдельное создание сетки и объект вашего круга. – juniperi