Как я сделал первую игру и загрузил на Яндекс.Игры. Часть 3 (Сбор и сохранение звездочек, немного UI и работа со светом)

Дисклеймер

В этой серии записей расскажу как делал первую игру от идеи до загрузки в Яндекс.Игры. Это не пошаговый туториал, но и не поверхностный рассказ. Буду рассказывать о этапах разработки, интересных решениях и небольших особенностях. Буду писать кратко или вообще не буду об очевидных вещах. Результат ниже по ссылке, а пока приступим.

Сбор и сохранение звездочек

При срабатывании триггера звездочки игроком срабатывают 3 события:

  1. Отключается коллайдер, чтобы не собрать звезду второй раз, пока проигрывается анимация.
  2. Добавляется ключ в PlayerPrefs - "1-1" это номер уровня и порядковый номер звездочки.
  3. Активирование триггера для анимации звездочки.
Как я сделал первую игру и загрузил на Яндекс.Игры. Часть 3 (Сбор и сохранение звездочек, немного UI и работа со светом)

В Collect Star вносил в каждой звездочке ключ вручную(по-другому не придумал как). Такой ключ используется скриптом Check and Destroy Object. Он на старте сцены проверяет существует ли такой ключ, и если да (звездочка собрана), то удаляет ее.

Как я сделал первую игру и загрузил на Яндекс.Игры. Часть 3 (Сбор и сохранение звездочек, немного UI и работа со светом)

Немного UI

Добавил в меню окошко настроек звука и вибрации(пока они ничего не делают), выход из игры, кол-во собранных звезд. Для подсчета всех звезд используется еще ключ-значение "stars" - число, при сборе звезды прибавляет +1 к значению.

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

Весь UI рисовал в иллюстраторе, т.к. не смог найти ничего подходящего в стилистике игры. За пару часов, весь UI был отрисован.

Все картинки черно-белые, т.к. не знал, какой именно цвет подойдет, а потом переделывать неудобно. Поэтому делал так, а потом красил их в юнити.

Меню

Нашел фоны для двух локаций и сделал рандомный фон для меню. Также теперь красиво отображаются скрины, которые хранятся и подтягиваются из ScriptableObject. Также с помощью компонента Scroll Rect уровни красиво ездят по меню:)

Теперь собранные звездочки отображаются на каждом уровне. Все звездочки имеют на себе следующий скрипт:

[SerializeField] string _key; // вручную вписывается ключ звездочки private Image _imageStar; void Start() { _imageStar = GetComponent<Image>(); _imageStar.color = Color.grey; CheckStar(); } public void CheckStar() { Color newColor = new Color(0.9889122f, 1f, 0.5509434f, 1f); if (PlayerPrefs.GetInt(_key) == 1) //если ключ равен 1, то она собрана и цвет меняется { _imageStar.color = newColor; } }

Два новых уровня с освещением

Тематика следующих уровней — ночь, которая потребовала "немного" освещения. Пришлось переделать проект под URP и вручную поменять материалы на освещенные (автоматически не получилось).

Как я сделал первую игру и загрузил на Яндекс.Игры. Часть 3 (Сбор и сохранение звездочек, немного UI и работа со светом)

Разные мелочи

  1. Партиклы — добавил небольшой коллайдер на низу карандаша, при соприкосновении с тегом Trace (у всех объектов трассы) вылетает графит.
  2. Параллакс — из двух слоев полупрозрачных объектов как и на трассе.
  3. Обучение на 1 уровне. Так себе обучение, но тут только две кнопки, даже без него можно было обойтись:)

Четвертая часть тут

55
2 комментария

А чё все минусят? Спизженный пост?

Ответить

Только что сидел сам писал :(

Ответить