Задать вопрос
Dan83
@Dan83
Программист самоучка, разработчик одиночка

Добавление элемента в список (list)?

Доброго времени суток!
Сразу прошу прощения, более пяти лет не трогал Юнити, так что мог по глупости что то упустить.
Взялся переделывать игру со словами на javascript для Юнити на C#.
Есть список слов, из него выбирается случайное и выводится на экран.
Что бы слова не повторялись, помещал выбранное слово во временный список и на следующем выборе должен был проверять вновь выбранное слово на наличие его во временном списке.
public List listOldWord = new List(){};
Добавление во временный список - listOldWord.Add(selectedWord);
Проверка на наличие слова во временном списке - listOldWord.Contains(selectedWord);
НО! Временный список не растет, выбранное слово не сохраняется во временном списке, а заменяется новым. Так показывает Юнити при запуске игры, список то публичный. Получается временный список постоянно из одного элемента. Естественно, далее вся проверка идет в баню... Как такое получается и как это исправить? Или еще как то можно проверку сделать, что бы повторения слов не было? Юнити 6. Спасибо!
  • Вопрос задан
  • 30 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    Разработчик игр на Unity + ИИ
    6 месяцев
    Далее
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Stepik
    PRO C#. Профессия "Backend разработчик"
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
Add() элементы не заменяет, так что если в инспекторе вечно одно слово, список где-то сбрасывается. Поищи по проекту listOldWord = new и listOldWord.Clear(), часто это сидит в Start/OnEnable или прямо в методе выбора слова, который дёргается каждый раз. Второй вариант: скрипт висит на объекте, который пересоздаётся (Instantiate, перезагрузка сцены), и список каждый раз новый. Проверка: перед Add() выведи
Debug.Log(GetInstanceID() + " " + listOldWord.Count);
. ID тот же, а Count снова 0 - значит Clear/new. ID каждый раз другой - значит пересоздаётся сам компонент.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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