Найти тему

Чубрик и яйца. Часть 7 "Создаем уровни игры"

Вся ниже представленная информация есть в Телеграмм и доступна всем по ссылке t.me/ded63russtudio
В ближайшее время данный канал в Дзене поддерживаться не будет!
Настоятельно рекомендуем воспользоваться указанной ссылкой...

Ранее были рассмотрены:
Часть 1 "Запуск и Канвас",
https://dzen.ru/a/ZU51Wf4lWB2MYXlG?referrer_clid=1400&
Часть 2 "Игровые элементы",
https://dzen.ru/a/ZVIckxHuJl5sFftG?referrer_clid=1400&

Часть 3 "Управление персонажем и игровыми элементами", https://dzen.ru/a/ZVjZIx4b0UGtAExF

Часть 4 "Статистика игры" https://dzen.ru/a/ZXSgh7UrMW9CkKD8

Часть 5 "Скрипты и все такое... Первая серия" https://dzen.ru/a/ZXSj8glxh1EgbI0y

Часть 6 "Скрипты и все такое... вторая серия" https://dzen.ru/a/ZXSpUWq6Wy127Asz

Итак, на сейчас мы имеем две сцены.
Идем во вкладку Project в папку Scenes, где это и наблюдаем.

А что нам надо?
Нам надо сделать следующие сцены:
1. Заставка игры
2. Правила игры
3. 1 уровень
4. 2 уровень
5. 3 уровень
6. 4 уровень
7. Сцена статистики игры по всем уровням
и это еще как минимум...

Как максимум, можно сделать и восемь основных уровней, но это уже не входит в план этого туториала. В отдельной части, в самом конце, мы рассмотрим возможности улучшения игры, ну сейчас займемся сценами по списку....

В папке Scenes создаем целую плеяду сцен с именами Start, Rules, Level_3, Level_4 и Finish
В итоге папка сцен должна иметь вот такой вид

Начнем со Старта
В сцене 1 уровня жмем ПКМ / BackGround / Copy
Открываем сцену Start и в Иерархию вставляем скопированное

-2

Далее нужно название игры.
Вариантов пара есть всегда: первый - пишем текст, форматируем и располагаем, второй - используем спрайт. Я пошел по второму пути, у меня есть уже готовый спрайт

-3

Тащим спрайт на сцену и форматируем по вкусу.

Затем что-то завлекающее внимание пользователя.
В моем случае у меня опять-таки есть спрайт, которым я и воспользуюсь

-4

И нужны две кнопки Start и Rules
Спрайты этих кнопок уже должны быть в папке спрайтов, поэтому создаем пустой объект с именем Buttons в иерархии и перетаскиваем туда обе кнопки.
Форматируем и расставляем по местам

-5

Вот так, простенько и понятно!
Кому надо, зайдет в Правила и почитает, что собственно от него требуется
Кому правила и так понятны, сразу идет в игру...

Кнопки обрабатываются аналогично кнопкам в предыдущей части, поэтому заострять внимание на это нет смысла.
А, вот на что надо обратить внимание - на расстановку сцен в билде и индексы каждой сцены!!!

Заходим в папку Scenes, затем жмем File / BuildSetting и распределяем сцены вот таким образом

-6

Всего имеем 7 сцен, стоящих в определенной последовательности.
Стоит заметить, что ранее полученные индексы сцен 1-го и 2-го уровней изменились!!!
Запомните или запишите нынешние индексы и пойдем настраивать сцену Start.
Исходя из новой информации в скрипте Rules ставим "1", в скрипте Start_new "2"

И вот еще что!!!
Мы скопировали папку BackGround в полном ее объеме. А в ней есть элемент Ground с лежащим в нем скриптом. Настраивать его тут нет никакого смысла, а без настройки Юнити выдаст ошибку при запуске игры. Поэтому элемент Ground должен умереть - удаляем его!!!

Запускаем игру и проверяем все-ли так...
Все так, как и должно быть - работает.

Пустым осталось нижнее поле канваса, который мы и не делали тут. Но в этом месте вы можете закатать свой логотип, например, или просто оставить его пустым. Да и канвас в этой сцене не нужен от слова совсем.

Переходим к сцене Rules
Также копируем папку BackGround, открываем сцену и вставляем скопированное в иерархию.
Тут надо что-то написать, дабы пользователь понимал последствия своих действий.
И вот тут без канваса не обойтись.

В иерархии - ПКМ / UI / Text и вот, что замечательно - канвас создался сам собой!!!
Не забываем в Инспекторе канваса Canvas Scaler / UI Scale Mode установить значение Scale With Screen Size
Прекрасно. Далее пишем туда нужную инфу
Каждый волен сочинить свое. Я сделал так

-7

Теперь, как и в предыдущем уровне на сцену тащим кнопку "Начать", выравниваем, настраиваем кнопку, вешаем уже известный скрипт и... не забываем в скрипте поставить номер нужной сцены = 2 (1 уровень)
Ву-а-ля!
Уровень готов.

-8

Запускаем игру и проверяем все ли так.

Дополнительно можно в иерархии сменить сцену Rules на сцену Start и уже запустив ее, проверить как работают кнопки перехода по всем направлениям.
Смею заверить, что именно при подобных манипуляциях всплывают иной раз некоторые проблемы, которых в итоговой игре быть не должно!

Дальше, по списку
1 уровень - 2 лотка уже готов, как пионер и вполне работоспособен.

Лезем выше - 2 уровень и в нем 4 лотка.
Приступим...

Вся прелесть создания этого уровня заключается в том, что практически и делать-то нечего!!!
Открываем сцену с 1 уровнем и в иерархии тупо копируем все, что видим? за исключением имени уровня

-9

Затем открываем 2 уровень и в там же в иерархии, жмем ПКМ / Paste

-10

Первый уровень в полном составе скопирован во второй. Лишний там элемент Main Camera_1, которую удаляем.

Остается добавить лотки второго яруса и немного изменить скрипты их спавнеров по своему усмотрению.
Дублируем в папке Lotoks оба лотка, растаскиваем по позициям

-11

и немного меняем им имена, присобачив к каждому индекс "2"

-12

В канвасе в папке Manager в скрипт в поля SpawnLeft_2 и SpawnRight_2 добавить новые лотки

В каждом SpawnLeft вновь созданных лотков, как помниться есть скрипт Spawner, где надо поменять - чисто по желанию!!! - количество элементов и частоту спавна SpawnDelay.

Вот, собственно почти и все с работой по второму уровню.
Остается малость - на этом уровне надо поймать для победы не 15, а 30 яиц!
Для этого надо совершить четыре действия:
* на элементе Player / korzinka / lovilka в скрипте строка ScoreMax изменить 15 на 30
* и в этом же скрипте заполнить поля лотков 2 яруса

-13

* и в канвасе в папке Zadacha в элементе Text опять-таки сменить 15 на 30
* в канвасе в папке Manager в скрипт в поля SpawnLeft_2 SpawnRight_2 добавить новые лотки

Все готово, запускаем игру и контролируем уровень на все возможные сценарии: победа, поражение ну и так далее... И для чистоты эксперимента запускаем второй уровня после победы на первом!!! А, кто сказал, что будет легко?

Игровой контроль вскрыл, что не все получается с первого раза, а гонять 15 яиц в первом и 30 во втором занимает много времени... Не так-ли?
Догадаемся для контроля в скрипте ловилки менять максимальное значение пойманных яиц. Поставим для первого - 3, для второго - 5 и будет нам счастье!!!
Механизм игры от этих показаний не меняется, зато существенно экономим время...

Два уровня игры плюс стартовые страницы готовы.

Создаем третий и четвертый уровни по аналогии со вторым: копируем, дублируем, меняем значения, настраиваем скрипты.
Это задание на самостоятельность. Все уже у Вас есть - создавайте.

Максимальное количество яиц для третьего - 60, для четвертого - 80... ну это по моему мнению!

Остается последняя сцена, которая отсутствует еще пока - сцена Finish

На этом Часть 7 окончена.
Далее Часть 8 "Работаем с рекордами"