TGViewer
aks2dio | Unity и геймдев aks2dio | Unity и геймдев @aks2dio · 492 subscribers
Post #35 209
Про хранение конфигураций уровня и не только
Уровень материала: 🐣 #junior

Сегодня в рекомендации отправляю видео, которое показывает два любопытных подхода:
1. Хранение конфигурации уровня в ScriptableObject, а не в отдельной сцене.
2. Анимированное появление тайлов уровня.
И внутри есть ряд ещё более мелких интересных деталей.

📋 1. Хранение конфигурации уровня:
С этим я столкнулся в самом начале своей карьеры, т.к. начал с матч-3 направления, которое славится большим количеством уровней. По неопытности я хранил каждый настроенный уровень в отдельной сцене. Это привело к тому, что 10 таких уровней раздули билд без существенного контента до 100Мб.
Поизучав предметную область подробнее, я пришёл к тому, чтобы для уровня иметь одну сцену, а её наполнение формировать по данным из некоторого файла. Я использовал XML, т.к. тогда это было популярно (позднее для настройки уровня был подключен Tiled, который как раз умел экспортировать в XML). Билд тут же сдулся до 20Мб. А подход подарил невероятное количество всяческих бенефитов.
ScriptableObject — это тоже некоторый файл с данными (а точнее YAML или Binary, в зависимости от настроек Unity), который Unity умеет красиво отрисовывать в инспекторе.
А вот пример ассета (с ёмким описанием), который конвертирует уровень в JSON.

🎲 2. Анимированное появление тайлмапа:
Если уровень строится из тайлов, то это отличная возможность за "дёшево" сделать его эффектное появление. Например, как в видео, от точки позиции игрока плавно появить все тайлики в порядке удаления. Также можно и в целом оживить тайловое окружение, реагируя на разнообразные действия игрока.

✨ 3. Полезные мелочи:
В видео можно подглядеть:
• Как удалять элементы из списка, чтобы в for не делать лишних декрементов и в foreach не получить исключение InvalidOperationException “Collection was modified”. Подробнее про это можно также почитать в этом материале.
• Использование sqrMagnitude при сравнении дистанций для оптимизации вычислений. Про сравнение с обычным magnitude — тут (я тоже проводил подобные замеры: данные всё ещё актуальны).
• Как оформлять Coroutine для анимаций: нейминг, аргументы, содержание.
• Использование AnimationCurve для контроля плавности анимации.
• Использование Lerp для реализации анимации.

P.S.: теперь у постов будут лычки с обозначением направленности материала для удобной навигации по каналу.
—————————————
#gamedev #development #animation #scene #loading #геймдев #разработка #анимации #загрузка #рекомендация #видео
  • 🔥 4
  • 👍 3
More from @aks2dio
  1. Sep 28, 2026Обновление UniText v3 Уровень материала: 📢 #news #tool В этом месяце состоялся релиз ново…
  2. Sep 2, 2026Content Directories в Unity 6.6: закат Asset Bundles Уровень материала: 📢 #news #tool Uni…
  3. Jul 21, 2026😎 Unity CLI & Pipeline 😎 Уровень материала: 📢 #news #tool Действительно стоящая внимани…
  4. May 30, 2026Инструменты для экстремальной разработки Уровень материала: ☕️ опять #ai и #offtop В этом…
  5. Apr 25, 2026Обновление, которое вы тоже могли пропустить Под сильно возросшей нагрузкой немного выпал…
  6. Apr 5, 2026Большое обновление текстового движка UniText Уровень материала: 📎 #tool #news Пару месяце…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →