Разработка игры на Unity в 2023. Как мы создали нашу первую игру | Часть 1

Всем привет! Сегодня расскажу вам о том как проходило создание нашей первой игры с последующим подключением YandexSDK и попытками залить на Яндекс Игры
Идею мы придумали довольно быстро, концепт был простым, главный персонаж должен отбиваться от врагов, в нашем случае это дед и мародёры, на название тоже времени ушло немного - ShotBuyRun.
Все началось с подготовки спрайтов, выбрали размеры для камеры (128x72px) и под них уже подстраивали размеры спрайтов, изначально подготовили некий стартер пак из спрайтов

Первоначальные спрайты
Первоначальные спрайты

После этого создали репозиторий на GitHub (работаем кстати в интерфейсе Fork) и проект в Unity. Первым делом были добавлены спрайты на сцену, игровое поле получилось в 3 раза больше области камеры

Разработка игры на Unity в 2023. Как мы создали нашу первую игру | Часть 1

Далее конечно же пошёл процесс написания базовых скриптов (управление, спавн врагов и преследование ими игрока)

Кстати, самую актуальную информацию вы можете увидеть в нашем Telegram - канале, туда мы постим и будем постить разные инсайды и новости!

Управление игроком
Управление игроком

На самом игроке прикреплен коллайдер и Rigidbody 2D

Спавнер врагов
Спавнер врагов

Касаемо спавна, скрипт был немного другим (добавился WavesManager), это уже его окончательная версия, но изменения будут понятны немного позже
Сам скрипт работает с счетчиком и спавнит врагов в одной из точек, которые стоят на сцене, как только время счетчика выходит, появляется новый враг и таймер сбрасывается, начиная считать по новой

Собственно, сами точки спавна на сцене
Собственно, сами точки спавна на сцене
Разработка игры на Unity в 2023. Как мы создали нашу первую игру | Часть 1

В инспекторе эти точки выбираются в этом месте, потом просто закидываются в список на объекте со скриптом

Преследование игрока
Преследование игрока

Довольно простой скрипт, суть вся реализовывается паре строчек, остальное уже для визуала, ищем таргет с тегом Player и объект врага перемещается к положению игрока

Большой промежуток времени был потрачен на синхронный поворот игрока и пистолета, так как пистолет вращается за курсором, но также ещё должен разворачиваться по направлению движения игрока

Скрипт поворота оружия
Скрипт поворота оружия

Желание разбить что-то повышалось с каждой минутой потраченной на то, чтобы работали нормально развороты (до конца у нас это не вышло, есть небольшая зона, при которой дед будто пытается взлететь в стратосферу)

Далее мы реализовали системы здоровья и урона, добавили систему волн, о которой упоминалось в скриптах (волны повышают скорость врагов и скорость их спавна), добавили коины, которые можно потратить на восстановление ХП и повышение урона, магазин появляется между волнами
Если интересен подробный разбор скриптов и настройки этих систем в Unity, пишите в комментариях, сделаю отдельную статью на эту тему, рассказать явно есть о чём.
И так, по итогу этой части опишу механику игры и её суть, игра сама по себе аркадная, игрок спавнится, спавнятся враги, за их убийство игрок получает коины, при смене волны можно подлечиться или увеличить свой урон, при смерти игроку показывается статистика и его рекорд, это уже немного затрагивая следующую часть)

На этом первая часть подходит к концу. В следующей части расскажу о добавлении UI и подключение YandexSDK(ещё один круг ада)

Ну и в конце хотелось бы напомнить про наши социальные сети, это только начало, и скоро вы увидите еще миллиард контента от нас!

1111
15 комментариев

Привет, уже гораздо лучше написано)

Что касается взлетающего деда: угол поворота Euler считается от 0 до 360 градусов, так что если вам нужно указать поворот по оси "-20", то это будет 340. Скорее всего в моменте перехода через ноль его и лагает (скрипт не сморел, сорян, но это частая проблема)

3
Ответить

1 скрин - Это вызывается в Update. Это ест много ресурсов, не говоря уже о Update

2
Ответить

2 скрин - Зачем вообще так много поиска через Find? Можно на крайний случай использовать [SerializeField] или какой-нибудь метод Initialize(...)

1
Ответить

Комментарий недоступен

1
Ответить

Че за проблемы с Юнити и Яндекс? Это какая-то новая религия здесь?)

2
Ответить

Хотелось бы разбор скриптов и настройку) Недавно начал изучать юнити с сишарпом

1
Ответить

брат, ты лучше изучай по документации и примерам от самой Unity.

У них неплохие уроки на Unity Learn.
К тому же, они бесплатные, регаешься и проходишь.

Держи ссылку - https://learn.unity.com/

2
Ответить