Найти тему

Простая 2D игра на Юнити "Улучшения" (Часть 4)

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

Едут машинки и туда и обратно, но все равно как-то скучно выглядит.
Давайте разбавим скуку какой-то целью для Игрока. Самой простой на мой взгляд - сделать спавн монеток разного номинала и щедро разбрасывать их по дороге. Ну, а игрок, увлеченный стяжательством будет их собирать с риском для жизни.


Приступим...

Для начала лезем опять в интернет и качаем монетки трех видов (это у меня, Вы можете ставить сколь угодно). Закидываем монетки в папку MySprites.
Переносим монетки в Сцену, придаем им нужный размер и в поле Order in Layer ставим 2, добавляем каждой монетке компонент CircleCollider триггерный.

Чтобы монетки не смотрелись мусором на дороге, наверное стоит их малость сделать подвижными, то есть задать вращение. Пишем скрипт RotateMoney

-2

Закидываем на каждую монетку, ставим скорость вращения по своему усмотрению.
Каждой монетке надо сделать уникальный Tag - монетки будут разного достоинства и нам надо их различать. Я сделаю Good, Good+ и Good++. В скрипте, который напишем позже установим Good = 10, Good+ = 20 и Good++ = 30.

Для движения монеток тоже нужен скрипт, как для машин. Пишем скрипт MoneyRun.

Мне опять было лень менять имена...
Мне опять было лень менять имена...

Кидаем на каждую монетку, выставляем скорость, у меня 2, как у дороги. И на каждую монетку ставим компонент Rigidbody2D.
После этого монетки перетаскиваем в префабы и удаляем из Иерархии.

Пишем скрипт PremiumPlayer.

Вторая часть скрипта ниже
Вторая часть скрипта ниже
-5

Скрипт закидываем на игрока и заполняем его поля.
Находим где-то звук для монетки и кидаем его в папку Audio.

Теперь нам нужно сделать отображение полученных очков. Для этого в Канвасе в PanelUp надо создать новый элемент Text и назвать его Score, но проще дублировать, например, минуты, сменить имя и передвинуть элемент вправо

-6

Надо сделать спавн монеток. Пишем скрипт MoneySpawn

-7

В Иерархии создаем пустой объект Money. В нем создаем пустые объекты MoneyLeft и MoneyRight. Левую позицию ставим в крайнем левом положении экрана, правую - в крайнем правом. На MoneyLeft вешаем созданный скрипт, заполняем его поля.
Запускаем, смотрим...

Стало малость интереснее.....

Нам остается сделать рабочими кнопки рестарта и выхода из игры после проигрыша.
В Канвасе верните активность полю Buttons.
Пишем два скрипта. Первый - выход из игры с именем OutGame

-8

Второй - рестарт с именем Restart для повтора игры.

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


Оба скрипта вешаем на элемент Manager в Канвасе. В Инспекторе видим оба скрипта.
Скрипт выхода ничего не требует, а вот скрип рестарта просит сообщить ему номер сцены, которую он должен включить.
Давайте с этим разберемся.

У нас пока одна сцена. Но их может быть несколько. Поэтому переименуем нашу единственную сцену в Level_1. Можно в Инспекторе, можно в Прожекте, можно в Иерархии - как кому удобно, я предпочитаю в окне Прожект

-10

При смене имени соглашаемся с выпадающим меню и все ровно.

Теперь открываем меню File / BuildSetting

-11

и видим, что наша единственная сцена имеет индекс "0". Вот этот ноль и надо внести в скрипт Restart в Менеджере.
Закрываем меню билдинга и вносим нужное изменение в скрипт.

Далее делаем кнопки активными.
Для этого выбираем кнопку Restart , в самом низу видим пустое поле OnClick. Жмакаем на "+" - поле изменилось. В поле None (Object) перетаскиваем наш Manager

-12

Потом раскрываем поле No Function и видим список, в котором нажимаем скрипт Restart и выбираем методу OnMouseDrag. Все - кнопка активирована.
Для того, чтобы кнопки пропадали при старте и появлялись после поражения следует в Иерархии элемент Buttons сделать дочерним к элементу GameOver.
Можно запустить игру, быстренько три раза столкнуться и потом нажать игровую кнопку "Начать снова" и игра начнется снова.
Аналогичным образом активируется кнопа "Выход". Но надо иметь ввиду, что пока работает в Юнити, никакого выхода из игры не будет. Тем не менее все будет нормально после билдинга проекта...
Маленький тест на сообразительность!!!

При активации кнопки выхода из игры Вы не найдете нужной команды в скрипте Менеджера. Откройте сначала скрипт Restart, потом скрипт OutGame и найдите отличие между методами. Как только Вы исправите скрипт - все сразу будет видно...

Итак, игра создана и вполне исправно функционирует в Юнити.
Остается добавить, что это простейший вариант. Как можно усложнить иргу и сделать ее более залипающей?


* сделать несколько уровней со сменой скоростей дороги, машин и монеток
* добавить новые препятствия, например ремонт полосы
* показать в верхнем табло оставшиеся жизни Игрока

* показать потерянные монетки
* добавить фоновую музыку и звуки машин
* в меню проигрыша сделать статистику результатов и рекордов


Одним словом впереди еще поле не паханное...
* ну и самое сложное - сделать сложную сеть дорог

Остается самая малость - сбилдить игру для Андроида!

В Части 5 https://dzen.ru/a/ZD6sHovHRBu5sepI рассмотрим процесс билдинга. Для Андроида это не просто!

В Части 1 https://dzen.ru/a/ZC72XqomHCK7maPA были рассмотрены Запуск и Канвас проекта.

В Части 2 https://dzen.ru/a/ZDBiSIkRGhr2Rxad были рассмотрены Элементы игры.

В Части 3 https://dzen.ru/a/ZD0ubCQa9FnoFurv все стало двигаться.

P.S. Читатель! Если не затруднит, напишите в комментарии мнение об изложении материала. Заранее благодарен!

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц