Максим
Искусственный Интеллект
(218678)
2 года назад
1. Видимо, нужно через редактор назначить объект.
2. Изучай Clean Code (чистый код), старайся не делать код с большой глубиной (много блоков вправо), с большим количеством повторений (DRY) и божественными объектами и функциями. Старайся код делить на более мелкие функции.
МаксимИскусственный Интеллект (218678)
2 года назад
Например, вместо того, чтобы делать if (GameMap[xPos, yPos, zPos] != 0f), ты можешь написать наоборот:
if (GameMap[xPos, yPos, zPos] == 0f) continue; И тогда ты завершишь цикл досрочно, вместо того чтобы писать весь основной код смещённым вправо.
Exorcist
Мудрец
(10022)
2 года назад
конечно ругается, у тебя private GameObject inst_Obj; и все. просто пустое поле. Вот он и говорит, что "не могу создать копию объекта, так как там пустота, я хз че мне создавать". Ты этому полю ничего не присвоил через оператор "=". Для этого в любом случае нужна либо ссылка на объект, который будешь создавать, либо подгрузить его из проекта во время выполнения.
Самый простой вариант для начинающего:
добавь атрибут и поле станет видимым в инспекторе, затем в это поле перетащи префаб, который надо создать. запусти игру и тогда всё заработает.
вот так:
[SerializeField] private GameObject inst_Obj;
Есть предположение что из-за того что класс с этой ошибкой хранится в массиве List
Проблема в этой функции