Вы должны инициализировать массив roadCoordinates
, иначе вы получите ошибку NullReferenceException
.Кроме этого ваша логика в порядке.Вы можете решить эту проблему, добавив эту строку после присваивания loopCount
:
roadCoordinates = new Vector3[loopCount];
Что происходит, когда вы не инициализируете свой массив, вы создаете переменную с именем roadCoordinates
, но естьнет памяти, выделенной или указанной для этой переменной.Следовательно, он не указывает на что-либо в памяти, и когда вы пытаетесь использовать его, он говорит, что не может сослаться на какой-либо блок памяти.
Как вы упомянули в своем вопросе, у вас есть список всех порожденныхЕсли вы можете сохранить эти точки в списке, вам не нужно выделять память, вы можете просто добавить элементы в список.
List<Vector3> roadCoordinates = new List<Vector3>()
Затем вы можете добавлять элементы, используяroadCoordinates.Add(spawnedObjects[i].transform.position)
Если вам нужно сохранить индексы порожденного объекта, который имеет Road Tag
, вы можете использовать Dictionary
Dictionary<int, Vector3> roadCoordinates = new Dictionary<int, Vector3>()
Тогда вы можетедобавить элементы, такие как roadCoordinates.Add(i,spawnedObject[i].transform.position)