@mlbot

Как убрать ошибку что переменная не задана?

Есть лист:

public List<GameObject> maps = new List<GameObject>();

Есть кусок кода:

public void Awake() {
    instance = this;
    mapSize =  itemCountInMap* itemSpace;
        maps.Add(MakeMap1());
        maps.Add(MakeMap1());
        maps.Add(MakeMap1());
        foreach ( GameObject map in maps){
            map.SetActive(false);
        }

    
}

Вроде проект даже запускается, но потом выдает ошибку:

UnassignedReferenceException: The variable maps of obstacleGenerator has not been assigned.
You probably need to assign the maps variable of the obstacleGenerator script in the inspector.
obstacleGenerator.Awake () (at Assets/Scripts/obstacleGenerator.cs:36)

Хотя в соседнем скрипте похожий код работает корректно. Непонятно.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
У вас переменная публичная и пытается через инспектор сериализоваться .Или в инспекторе ее инициализируйте, или уберите паблик
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
freeExec
@freeExec
Участник OpenStreetMap
Присвоить значение переменной, очевидно же.
Ответ написан
Комментировать
NikFaraday
@NikFaraday
Student full-stack Developer
List это вроде бы дженерик...
https://metanit.com/sharp/tutorial/4.5.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы