Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unity_в_действии_Джозеф_Хокинг_Рус.pdf
Скачиваний:
82
Добавлен:
21.06.2022
Размер:
26.33 Mб
Скачать

86      Глава 3. Добавляем в игру врагов и снаряды

благодаря строке Translate() полетит вперед, но триггер не сработает, а вместо этого будет запрошен новый шар путем разрушения уже существующего. Требуется внести в компоненты огненного шара еще пару дополнений. Прежде всего, нужно превратить коллайдер в триггер. Для этого установите флажок Is Trigger в разделе Sphere Collider.

СОВЕТ  После превращения в триггер компонент Collider продолжит реагировать на соприкосновение/перекрытие с другими объектами, но уже не будет препятствовать физическому пересечению с этими объектами.

Огненному шару также требуется компонент Rigidbody, относящийся к системе моделирования законов физики. Именно он позволит этой системе зарегистрировать триггеры столкновений для рассматриваемого объекта. Щелкните на кнопке Add Component на панели Inspector и по очереди выберите команды Physics и Rigidbody. После добавления указанного компонента сбросьте флажок Use Gravity, как показано на рис. 3.12, чтобы на огненный шар перестала действовать сила тяжести.

Сбросьте этот флажок

Рис. 3.12. Отключение гравитации для компонента Rigidbody

Воспроизведите сцену, и вы увидите, как огненные шары разрушаются после столкновения с каким-либо объектом. Так как код генерации этих шаров запускается сразу после исчезновения очередного экземпляра, обстрел игрока теперь становится непрерывным. Осталось добавить всего одну деталь: заставить игрока реагировать на попадание.

3.5.3. Повреждение игрока

Ранее мы создали сценарий PlayerCharacter, но оставили его пустым. Теперь введите в него из следующего листинга код реакции на попадание.

Листинг 3.13. Игрок может получать повреждения

using UnityEngine;

using System.Collections;

public class PlayerCharacter : MonoBehaviour { private int _health;

void Start() {

_health = 5; ¬ Инициализация переменной health.

}