Онлайн-обучение. Урок 6 Учим Enemi
Продолжаем создавать свою первую компьютерную игру. Если вы только подключились, все что вам необходимо - изучить внимательно материалы предыдущих уроков.
Содержание всех постов:
- Вступительный пост
- Обучение разработке на Unity3D. Установка, настройка и описание окон
- Обучение разработке на Unity3D. Написание небольшого шутера. Разбираемся с террейном.
- Онлайн-обучение. Урок 3. Разработка игр на Unity3D: создание персонажа
- Онлайн-обучение. Урок 4. Разработка игр на Unity3D: продолжаем создавать персонажей
- Онлайн-обучение. Урок 5 Разбор скрипта Enemy
- Онлайн-обучение. Урок 6 Учимся стрелять
Сегодня мы добавим жизней врагам, добавим индикатор жизней, научим наше оружие наносить урон, а не только взрываться, а так же сделаем эффект смерти для Enemy. Поехали!
Добавим в скрипт Enemy дополнительную переменную, которая будет хранить количество жизней:
Теперь научим наше оружие наносить урон врагам. Изменяем скрипт Bullet:
Теперь мы уже можем убивать нашего врага, но это никак не видно визуально.
Давайте добавим индикатор жизней. Для этого мы будем использовать Canvas. Добавим его внутрь одного из врагов на сцене. Делается это через нажатие ПКМ на Enemy объекте на сцене и выбором UI -> Canvas.Теперь нам нужно указать тип Канваса. Так как это буде индикатор жизней и он будет двигаться вместе с врагом по сцене, нам надо выбрать режим рендеринга World Space. Так же надо уменьшить scale и настроить ширину и высоту полоски с жизнями. Так же нужно подтянуть Канвас так, чтобы он был над врагом.
Теперь добавляем UI элемент внутрь Canvas под названием Image (UI -> Image), который настроим так, как на скриншоте. Это позволит нам с помощью изменения scale этого Image, изменять длину полоски.
Сразу же, по традиции, изменим цвет Image на зеленый. Так же нужно добавить дополнительное поле в скрипт Enemy, чтобы хранить в нем ссылку на Image:
Теперь нужно перетащить Image в новое поле Enemy. Сразу же задаем стартовое количество жизней. Я поставил 300:
Обновим теперь метод HitEnemy в скрипте Enemy, чтобы полоска с ХП обновлялась соответственно с текущим количеством ХП:
Теперь выберем префаб Bullet и добавим урона в поле Damage:
Почти все готово. Теперь при запуске, когда мы будем попадать по врагу, мы будем наносить ему 50 урона. При стартовом количестве ХП 300 надо попасть 6 раз по врагу, чтобы его убить. Нам осталось только сделать эффект смерти врага, так как сейчас после убийства ничего не происходит и никак не влияет на врага - он все равно продолжает двигаться на игрока. Добавляем ссылку на эффект смерти вот так:
А так же изменяем метод Die:
Осталось только выбрать эффект смерти. Я взял EffectExamples/FireExplosionEffects/Prefabs/BigExplosionEffect:
Готово. Можно запустить и посмотреть что получилось. Нужно проделать те же манипуляции с Enemy2. Так же, чтобы обновить префаб после изменения (добавления Canvas и т.д.) нужно выбрать префаб на сцене и нажать Apply в инспекторе:
После этого индикатор с ХП появится у всех Enemy на сцене, которые были созданы из этого префаба, что очень удобно.
Всем фана!
Автор поста @litovets
—