Найти в Дзене

Платформер для Андроида "Чубрик и Сундук" 3 уровеньЧасть 1 "Все в одной куче"

Создание 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 - что-то близкое к оригиналу, хотя это на вкус Автора. У меня есть оригинальный фон, его и применю

-2

Следующая папка Wells.
Саму папку оставим, а все содержимое в мусор. Мои деревяшки на моем фоне как-то выглядят не комильфо...
Заодно, по ходу, почистим папку Enemy до стерильности.
Результат вполне ожидаемый

-3

Теперь будем созидать.
Сначала создадим ступеньки. На прошлом уровне я использовал готовый спрайт, но говорил о втором варианте, который сделаю сейчас.
Для этого создаем элемент 2DObject / Sprites / Square

-4

Даем имя Well, форматируем в нужный габарит, Layer и Tag присваиваем Ground, Color - что-нибудь яркое, Order in Layer = 1 и добавляем BoxCollider2D

-5

Затем берем все элементы, связанные с дверью, и переносим в левый нижний угол, чтобы определить примерную высоту ступеней первого яруса, и по высоте двери ставим нужное количество ступеней. Тут все зависит от Автора и его фантазии...
Кстати перед расстановкой ступень лучше сразу разместить в ее папке Wells

-6

Сверимся с оригиналом... Похоже!

Путем дублирования размножаем ступени и расставляем в художественном порядке по полю и игрока переносим в правый нижний угол

-7

Раскидаем монетки по полю и запускаем игру пока без противников. Проверяем как собираются монетки, работу двери, прыжки игрока. При необходимости вносим нужные корректировки.

И вот, что видим - после окончания уровня переход на следующий уровень не получается, хотя уровень уже есть в билде!
Это будет задание на сообразительность: в скриптах кнопок надо поменять значения, а вот в каких и на какие - дерзайте...
Во всем остальном все ровно.
Продолжаем!

Приступим к противникам...
Первым будет "Огненный дождь". Для этого подбираем нужный спрайт, у меня есть оригинал, и кидаем сначала его в папку Sprites / Enemy, а потом выносим на сцену и даем имя FireSky

-8

Кстати, чтобы не иметь лишних проблем, сразу обработайте спрайт в любой графической программе и придайте ему нужную направленность - сейчас нас интересует направление сверху / вниз...

Затем форматируем его до нужного размера, Order in Layer как обычно 1, компонент BoxCollider2D триггерный, компонент Rigidbody2D с такими настройками

-9

Пишем скрипт RainControl в папке Scripts / Enemy

-10

Скрипт вешаем на созданный объект и малость настраиваем

-11

После этого отправляем созданный объект в папку Prefabs / Enemy (последнюю еще надо создать) и удаляем FireSky со сцены.

Надо создать спавнер этих дождинок огненных, по русски говоря, генератор случайного появления.
Для этого создаем пустой объект SpawnRain и сразу делаем его дочерним объектом элемента Enemy. Располагем его в левой верхней части игрового поля.
Потом создаем еще один пустой объект с именем RightPoint, делаем его дочерним объектом SpawnRain и располагаем в правой верхней части поля

-12

В папке Scripts / Enemy пишем скрипт SpavnRain

-13

Скрипт вешаем на SpawnRain и настраиваем

-14

Пришло время испытаний - запускаем игру и смотрим...
Забавно, не так-ли?
Сейчас будет еще забавнее!!!

Сделаем почти тоже самое, только в горизонтальной плоскости.
Для этого я использую другой спрайт - чуть больше и наряднее.
Даем ему имя FireSkyHor.
Повторяем процедуру работы со спрайтом с небольшим исключением, что в компоненте Rigidbody2D в строке Gravity Scale должен быть "0".
Спавн будет работать слева на право, потому сразу определяемся с направленность спрайта

-15

Естественно снаряду нужен скрипт, который несколько отличается от скрипта движения дождевого снаряда - у него вообще нет скрипта движения, он падает под воздействием физики Юнити!!!

И тут есть маленький вопрос!?
Дождь даже при касании монеток и ступеней никак на них не реагирует, реакция исключительно на игрока. А, вот горизонтальные "ракеты" реагируют на все подряд и самоуничтожаются от касания всего. Это в оригинале есть.
Давайте сделаем их так же, как и дождь.

В папке Enemy пишем скрипт RoketControl

-16

-17

Скрипт вешаем на FireSkyHor, настраиваем так

-18

Переносим элемент в папку префабов и удаляем со сцены.

Опять нужен спавнер для этой группы. Пишем скрипт SpawnRoket

-19

Следует отметить, что это почти точная копия скрипта SpawnRain с совсем небольшими изменениями. Найдите отличия для интереса...

Точно так же создаем два пустых объекта SpawnRoket (ставим в нижний левый угол) и UpPoint (в левый верхний угол).
На SpawnRoket вешаем скрипт и настраиваем так же, как его дождевой аналог, запускаем игру и проверяем.
Работает.
Наверное скорость горизонтальных ракет надо чуть убавить, но это уже все по решению Автора.

Дело за малым - фоновая музыка.
Этот процесс уже дважды озвучен, потому, думается мне, каждый справится
самостоятельно.

Вот и готов 3-й уровень!!! Мои поздравления Авторам!!!

Далее Уровень 4