Создание 1-го уровня тут: https://dzen.ru/suite/0bdea864-aac0-4b2d-a8c5-b68c436fdb32
2 уровень Часть 1 "Концепция и архитектура" тут https://dzen.ru/a/ZZ1VK3T9hVQpBm5W
2 уровень Часть 2 "Игрок: Стрельба и здоровье" https://dzen.ru/a/ZaPSbIr0BxRnMS-6
При создании данного уровня вряд-ли понадобится много Частей.
Уровень совсем не сложный с точки зрения его создания. Зато очень даже заводной с точки зрения прохождения...
Обратимся к Части "Концепция игры" (ссылка) и внимательно посмотрим, а лучше качнем фотку, чтобы была под рукой.
Как видно из фото есть некие ступеньки, есть конечно монетки, есть дверь и в качестве активных противников выступает "Огненный дождь" и "Огненный ракетный обстрел" - я не знаю, как назвать точнее.
Начнем, пожалуй...
В первую очередь в уже созданную пустую пока сцену Level_3 из сцены Level_2 переносим путем копирования все, кроме MainCamera и SoundFon_2.
Сразу в Scenes создаем сцену Level_4 и прописываем ее в Build Setting
Перерабатываем созданную сцену под наши нужды.
В канвасе все остается, как есть. Игрок - тоже. Ну и в Дверях изменений нет.
Остается только BackGround...
Убираем Fon_2 и взамен ему создаем Fon_3 - что-то близкое к оригиналу, хотя это на вкус Автора. У меня есть оригинальный фон, его и применю
Следующая папка Wells.
Саму папку оставим, а все содержимое в мусор. Мои деревяшки на моем фоне как-то выглядят не комильфо...
Заодно, по ходу, почистим папку Enemy до стерильности.
Результат вполне ожидаемый
Теперь будем созидать.
Сначала создадим ступеньки. На прошлом уровне я использовал готовый спрайт, но говорил о втором варианте, который сделаю сейчас.
Для этого создаем элемент 2DObject / Sprites / Square
Даем имя Well, форматируем в нужный габарит, Layer и Tag присваиваем Ground, Color - что-нибудь яркое, Order in Layer = 1 и добавляем BoxCollider2D
Затем берем все элементы, связанные с дверью, и переносим в левый нижний угол, чтобы определить примерную высоту ступеней первого яруса, и по высоте двери ставим нужное количество ступеней. Тут все зависит от Автора и его фантазии...
Кстати перед расстановкой ступень лучше сразу разместить в ее папке Wells
Сверимся с оригиналом... Похоже!
Путем дублирования размножаем ступени и расставляем в художественном порядке по полю и игрока переносим в правый нижний угол
Раскидаем монетки по полю и запускаем игру пока без противников. Проверяем как собираются монетки, работу двери, прыжки игрока. При необходимости вносим нужные корректировки.
И вот, что видим - после окончания уровня переход на следующий уровень не получается, хотя уровень уже есть в билде!
Это будет задание на сообразительность: в скриптах кнопок надо поменять значения, а вот в каких и на какие - дерзайте...
Во всем остальном все ровно.
Продолжаем!
Приступим к противникам...
Первым будет "Огненный дождь". Для этого подбираем нужный спрайт, у меня есть оригинал, и кидаем сначала его в папку Sprites / Enemy, а потом выносим на сцену и даем имя FireSky
Кстати, чтобы не иметь лишних проблем, сразу обработайте спрайт в любой графической программе и придайте ему нужную направленность - сейчас нас интересует направление сверху / вниз...
Затем форматируем его до нужного размера, Order in Layer как обычно 1, компонент BoxCollider2D триггерный, компонент Rigidbody2D с такими настройками
Пишем скрипт RainControl в папке Scripts / Enemy
Скрипт вешаем на созданный объект и малость настраиваем
После этого отправляем созданный объект в папку Prefabs / Enemy (последнюю еще надо создать) и удаляем FireSky со сцены.
Надо создать спавнер этих дождинок огненных, по русски говоря, генератор случайного появления.
Для этого создаем пустой объект SpawnRain и сразу делаем его дочерним объектом элемента Enemy. Располагем его в левой верхней части игрового поля.
Потом создаем еще один пустой объект с именем RightPoint, делаем его дочерним объектом SpawnRain и располагаем в правой верхней части поля
В папке Scripts / Enemy пишем скрипт SpavnRain
Скрипт вешаем на SpawnRain и настраиваем
Пришло время испытаний - запускаем игру и смотрим...
Забавно, не так-ли?
Сейчас будет еще забавнее!!!
Сделаем почти тоже самое, только в горизонтальной плоскости.
Для этого я использую другой спрайт - чуть больше и наряднее.
Даем ему имя FireSkyHor.
Повторяем процедуру работы со спрайтом с небольшим исключением, что в компоненте Rigidbody2D в строке Gravity Scale должен быть "0".
Спавн будет работать слева на право, потому сразу определяемся с направленность спрайта
Естественно снаряду нужен скрипт, который несколько отличается от скрипта движения дождевого снаряда - у него вообще нет скрипта движения, он падает под воздействием физики Юнити!!!
И тут есть маленький вопрос!?
Дождь даже при касании монеток и ступеней никак на них не реагирует, реакция исключительно на игрока. А, вот горизонтальные "ракеты" реагируют на все подряд и самоуничтожаются от касания всего. Это в оригинале есть.
Давайте сделаем их так же, как и дождь.
В папке Enemy пишем скрипт RoketControl
Скрипт вешаем на FireSkyHor, настраиваем так
Переносим элемент в папку префабов и удаляем со сцены.
Опять нужен спавнер для этой группы. Пишем скрипт SpawnRoket
Следует отметить, что это почти точная копия скрипта SpawnRain с совсем небольшими изменениями. Найдите отличия для интереса...
Точно так же создаем два пустых объекта SpawnRoket (ставим в нижний левый угол) и UpPoint (в левый верхний угол).
На SpawnRoket вешаем скрипт и настраиваем так же, как его дождевой аналог, запускаем игру и проверяем.
Работает.
Наверное скорость горизонтальных ракет надо чуть убавить, но это уже все по решению Автора.
Дело за малым - фоновая музыка.
Этот процесс уже дважды озвучен, потому, думается мне, каждый справится
самостоятельно.
Вот и готов 3-й уровень!!! Мои поздравления Авторам!!!
Далее Уровень 4