Привет! Ваш корабль поврежден!
Сейчас мы настроили многие элементы пользовательского интерфейса. У нас есть система очков, визуализация здоровья через спрайты и мы просто добавили вражеские взрывы! Теперь пришло время добавить некоторые детали к плееру. Давайте визуализируем ущерб!
Позиционирование спрайта
Мы начинаем, как обычно, с создания нового анимированного спрайта. Самое первое, что нужно сделать, это переместить спрайт из представления Проект в Иерархию. После этого нам нужно расположить спрайт там, где, по нашему мнению, он подходит лучше всего. Перемещаем его на самое дно космического корабля.
- Нажмите на спрайт, который вы только что переместили в иерархию.
- Нажмите клавишу W на клавиатуре, чтобы переместить GameObject.
- Перемещайте спрайт с помощью двух показанных стрелок.
Это может быть ваш космический корабль игрока после перемещения спрайта:
Анимация спрайта
До сих пор мы анимировали некоторые спрайты. Здесь также необходимо создать анимацию, чтобы эффект был более ярким и естественным. Процедура такая же, как всегда:
- Откройте окно анимации
- Нажмите на спрайт, который мы используем для визуализации повреждений.
- Создать анимационный клип
- Включить режим записи ключевого кадра
- Перетащите спрайты на временную шкалу
Это должно быть конечным результатом:
Дублируйте спрайт
У нас есть три жизни. Если мы получим удар один раз, мы покажем один визуализатор повреждений. Поскольку осталась только одна жизнь, мы покажем ее и с правой стороны. Для этого нам понадобится еще один визуализатор повреждений.
Вам не нужно заново создавать еще один с нуля, как вы только что сделали. Дублирование также работает и экономит ваше (много) время! Просто нажмите CTRL + D (или CMD + D, если вы работаете на Mac), и GameObject будет продублирован!
- Переместите дубликат вправо
Совет. Поскольку проигрыватель находится в центре, вы можете просто удалить "-" координаты оси Y в компоненте "Преобразование". - Переименуйте дубликат.
Вы можете легко отличить дубликат от оригинала, обратив внимание на суффикс (1).
Создание логики триггера
Теперь все настроено в редакторе. Теперь пришло время создать логику для игры!
У нас три жизни. Если мы получим удар один раз, мы покажем один визуализатор повреждений. Поскольку осталась только одна жизнь, мы покажем ее и с правой стороны.
Это все, что нам нужно для создания метода. Но вместо использования нескольких операторов if-else мы будем напрямую использовать оператор switch.
Мы проверяем текущие жизни и хотим перейти к той части метода, которая представляет текущие жизни. У нас есть четыре возможности. Три жизни, две жизни, одна жизнь, ноль жизней / игра окончена. Следовательно, нам нужно четыре случая.
- Имея все три жизни, нам вообще не нужен визуализатор повреждений
- Осталось две жизни, включаем левый визуализатор
- По истечении одного оставшегося срока службы оба визуализатора будут активированы.
- Не оставив жизней, игрок исчезнет. Как и визуализаторы повреждений.
Unity упрощает включение и отключение GameObjects.
Метод, представляющий нашу логику, в конце будет выглядеть так:
Чтобы обновить визуализатор, нам нужно вызывать метод каждый раз, когда мы получаем урон. Поэтому мы также должны вызывать метод внутри метода Damage().
Чтобы избежать проблем при сборке и выпуске игры, вам также следует вызвать метод в void Start(). При этом вы обязательно отключите визуализаторы независимо от состояния игровых объектов в редакторе Unity. Если вы оставите правый визуализатор активным в редакторе, он останется включенным и во встроенной игре, пока вы не получите урон. Это может сбить с толку игрока, и мы не собирались этого делать.
Готовый конечный результат будет выглядеть внутри игры так: