моя проблема заключается в том, чтобы сохранить одинаковый интервал между префабами разного размера в случайно сгенерированном 2-мерном бегуне.
я хочу порождать новый игровой объект каждую секунду
скажем, у меня есть простой спрайт под названием квадрат
я порождаю его с помощью сопрограмм, и расстояние всегда равно 1 с движения
я добавил в качестве префаба массивы квадратов разного размера, и когда я создаю их с квадратами в 1 единицу, я бы хотел иметь одинаковое расстояние между префабами, как если бы я порождал отдельные квадраты один за другим.
в основном я хотел бы создавать префабы разных размеров и порождать их с одинаковым интервалом, сохраняя одинаковое расстояние между разными префабами.
возможно, решение состоит в том, чтобы порождать префабы на основе измеренного расстояния между префабами вместо порождения в зависимости от времени
как бы вы подошли к этой проблеме?
я могу вычислить ширину пустого gameObject на основе ширины массива его дочерних элементов?
я надеюсь, вы понимаете, о чем я спрашиваю
спасибо!
void Start() {
stvaranjeFunkc();
}
// Update is called once per frame
void Update() {
if (privremeniNiz.tag == "zamka")
{
if (privremeniNiz.transform.position.x + privremeniNiz.transform.localScale.x / 2 < stvarac.transform.position.x - vrijednostGranice)
stvaranjeFunkc();
}
if (privremeniNiz.tag == "nizPreprekaZamka")
{
// if ((privremeniNiz.GetComponent<nizKutija>().niz[privremeniNiz.GetComponent<nizKutija>().randomBrKutija].transform.position.x + privremeniNiz.GetComponent<nizKutija>().niz[privremeniNiz.GetComponent<nizKutija>().randomBrKutija].transform.localScale.x / 2)
//> stvarac.transform.position.x - vrijednostGranice)
if ((privremeniNiz.gameObject.GetComponent<nizKutija>().niz[0].transform.position.x + privremeniNiz.GetComponent<nizKutija>().niz[0].transform.localScale.x / 2)
> stvarac.transform.position.x - vrijednostGranice)
return;
// if (privremeniNiz.GetComponent<nizKutija>().niz[privremeniNiz.GetComponent<nizKutija>().randomBrKutija].transform.position.x + privremeniNiz.GetComponent<nizKutija>().niz[privremeniNiz.GetComponent<nizKutija>().randomBrKutija].transform.localScale.x / 2 < stvarac.transform.position.x - vrijednostGranice)
stvaranjeFunkc();
}
//if (!cekanje)
// StartCoroutine(stvaranje());
//else return;
}
void stvaranjeFunkc()
{
int poz = Random.Range(0, prepreka.Length);
GameObject temp =Instantiate(prepreka[poz], stvarac.transform.position, stvarac.transform.rotation);
privremeniNiz = temp;
}
у меня это работает, когда у меня есть простой gameobject (tag = zamka), но когда я
spawn gameobject тега nizPreprekaZamka, который является пустым gameobject, к которому прикреплен скрипт, который создает массив простых объектов spawner просто порождает сотни игровых объектов одновременно