Unity 5: Оптимизация 2D сцены с кубиками

Переработка главной сцены 2D игры, разработанной на Unity 5, значительно улучшила её визуальное оформление и динамику.

Геометрия и кубики

Изначально сцена содержала один неудовлетворительный кубик. Для улучшения были внесены следующие изменения: изменена позиция и размеры исходного кубика; созданы дополнительные кубики, формирующие подобие ступенек; кубики повернуты для эффекта трехмерности; все кубики объединены в пустой родительский объект «Cube».

Свет и материалы

Настройка освещения существенно повлияла на восприятие сцены. Были созданы два материала: белый для главного кубика и красный для остальных. Добавлен дополнительный источник света, а яркость источников настроена для оптимального визуального результата.

Анимация

Для динамики были созданы анимации: для главного кубика – сжатия и расширения; эта анимация скопирована и применена к родительскому объекту «Cube»; трансформ родительского объекта «Cube» обнулен для расположения кубиков относительно его центра; кубики перерасставлены с учётом новых координат родительского объекта. Также создана анимация прыжков главного кубика по ступенькам, с определением ключевых позиций и настройкой таймингов для плавного перемещения по осям X, Y и Z. Анимация «Cube_Start_Position» обеспечивает плавное появление остальных кубиков, задавая их начальные координаты и используя функцию Play() для запуска.

Доработка и исправления

В процессе тестирования были исправлены ошибки в движении главного кубика. Добавлена анимация плавного уменьшения яркости света с помощью переменной dirLight в функции Update(). Настроен размер главного кубика под размер остальных. Уменьшена яркость второго источника света (dirLight2). Функциональность удаления промежуточных кубиков после анимации прыжков реализована с помощью массива cubes и цикла for, с задержкой перед удалением (yield return new WaitForSeconds(0.5f)). Скрипт переименован из DetectClicks в GameManagement.

Анимация исчезновения и трансформации

Создан скрипт FallYouDo для анимации исчезновения кубиков, перемещая их вверх с помощью transform.position -= new Vector3(0, 0.1f, 0). Скорость перемещения настроена для плавного исчезновения за пределами экрана. Скрипт добавлен к трём промежуточным кубикам. В GameManagement вместо уничтожения кубиков вызывается отключение скрипта FallYouDo. Для последнего кубика добавлена анимация трансформации в платформу с помощью компонента Animator, анимационного клипа CubeToBlock и корутины StartCoroutine(ToBlock()), запущенной после анимации прыжков.

Проведённые изменения значительно улучшили визуальное оформление и динамику главной сцены, благодаря комплексной работе над геометрией, освещением, анимацией и игровой логикой.

Что будем искать? Например,программа