Я пытаюсь создать 2-й бегун, и у меня возникает следующая проблема: я хочу порождать другой массив игровых объектов, когда значение xValueForArray
- представляющее конец ранее созданного массива - становится меньше значения spawnerVal
по оси X.
Что происходит с этим кодом, так это то, что xValueForArray
всегда сохраняет значение от первого update()
, и камера перемещается по оси x
.Так, в update
значение xValueForArray
всегда меньше, чем spawnerVal
.Как следствие, создатель массива просто создает сотни массивов в секунду, потому что условие в update
всегда истинно.
Как я могу сделать xValueForArray
значение последнего порожденного массива?
void Start ()
{
creatingArray(); //creating first array
}
void Update ()
{
xValueForArray = tempArray.GetComponent<arrayOfBoxes>().Xvalue; // position on x of the last element in array
spawnerVal = spawner.transform.position.x - valX; // position from which I spawn arrays of elements
if (xValueForArray < spawnerVal) // if value of xValueForArray is less than value of spawnerVal call creatingArray();
creatingArray();
}
void creatingArray()
{
int poz = Random.Range(0, obstacle.Length);
GameObject temp = Instantiate(obstacle[poz], spawner.transform.position, spawner.transform.rotation);
tempArray = temp;
}