Привет! Ваш корабль поврежден!

Сейчас мы настроили многие элементы пользовательского интерфейса. У нас есть система очков, визуализация здоровья через спрайты и мы просто добавили вражеские взрывы! Теперь пришло время добавить некоторые детали к плееру. Давайте визуализируем ущерб!

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

  • Нажмите на спрайт, который вы только что переместили в иерархию.
  • Нажмите клавишу W на клавиатуре, чтобы переместить GameObject.
  • Перемещайте спрайт с помощью двух показанных стрелок.

Это может быть ваш космический корабль игрока после перемещения спрайта:

Анимация спрайта
До сих пор мы анимировали некоторые спрайты. Здесь также необходимо создать анимацию, чтобы эффект был более ярким и естественным. Процедура такая же, как всегда:

  • Откройте окно анимации
  • Нажмите на спрайт, который мы используем для визуализации повреждений.
  • Создать анимационный клип
  • Включить режим записи ключевого кадра
  • Перетащите спрайты на временную шкалу

Это должно быть конечным результатом:

Дублируйте спрайт
У нас есть три жизни. Если мы получим удар один раз, мы покажем один визуализатор повреждений. Поскольку осталась только одна жизнь, мы покажем ее и с правой стороны. Для этого нам понадобится еще один визуализатор повреждений.

Вам не нужно заново создавать еще один с нуля, как вы только что сделали. Дублирование также работает и экономит ваше (много) время! Просто нажмите CTRL + D (или CMD + D, если вы работаете на Mac), и GameObject будет продублирован!

  • Переместите дубликат вправо
    Совет. Поскольку проигрыватель находится в центре, вы можете просто удалить "-" координаты оси Y в компоненте "Преобразование".
  • Переименуйте дубликат.
    Вы можете легко отличить дубликат от оригинала, обратив внимание на суффикс (1).

Создание логики триггера
Теперь все настроено в редакторе. Теперь пришло время создать логику для игры!

У нас три жизни. Если мы получим удар один раз, мы покажем один визуализатор повреждений. Поскольку осталась только одна жизнь, мы покажем ее и с правой стороны.

Это все, что нам нужно для создания метода. Но вместо использования нескольких операторов if-else мы будем напрямую использовать оператор switch.

Мы проверяем текущие жизни и хотим перейти к той части метода, которая представляет текущие жизни. У нас есть четыре возможности. Три жизни, две жизни, одна жизнь, ноль жизней / игра окончена. Следовательно, нам нужно четыре случая.

  • Имея все три жизни, нам вообще не нужен визуализатор повреждений
  • Осталось две жизни, включаем левый визуализатор
  • По истечении одного оставшегося срока службы оба визуализатора будут активированы.
  • Не оставив жизней, игрок исчезнет. Как и визуализаторы повреждений.

Unity упрощает включение и отключение GameObjects.

Метод, представляющий нашу логику, в конце будет выглядеть так:

Чтобы обновить визуализатор, нам нужно вызывать метод каждый раз, когда мы получаем урон. Поэтому мы также должны вызывать метод внутри метода Damage().

Чтобы избежать проблем при сборке и выпуске игры, вам также следует вызвать метод в void Start(). При этом вы обязательно отключите визуализаторы независимо от состояния игровых объектов в редакторе Unity. Если вы оставите правый визуализатор активным в редакторе, он останется включенным и во встроенной игре, пока вы не получите урон. Это может сбить с толку игрока, и мы не собирались этого делать.

Готовый конечный результат будет выглядеть внутри игры так: