Добавить в корзинуПозвонить
Найти в Дзене

Unity 3D. John Lemon's Jount. Part 14

Part 13 https://dzen.ru/a/Y8BB6EhaPkJfPVNR Теперь создадим агента, который перемещается по навигационной сетке - персонаж привидения. В окне проекта перейдите в папку Assets > Models, найдите объект «Ghost»и перетащите его на сцену. Поскольку в доме с привидениями нужно несколько привидений, мы создадим из этого объекта префаб, чтобы потом можно было его использовать многократно без лишней работы. Перетащите игровой объект «Ghost» из окна иерархии (именно из него, а не с игровой сцены) в папку Assets > Prefabs в окне Project. Когда появится диалоговое окно Create Prefab, кликните кнопку «Original Prefab». Давайте откроем созданный префаб призрака и настроим его. И первое, что необходимо обязательно сделать - это изменить свойство Position компонента Transform на (0, 0, 0), чтобы экземпляры префаба создавались без смещения. Следующим шагом будет анимация вашего нового врага. Привидение также будет иметь простой контроллер анимации, так как он будет воспроизводить одну анимацию в цикле.

Part 13 https://dzen.ru/a/Y8BB6EhaPkJfPVNR

Теперь создадим агента, который перемещается по навигационной сетке - персонаж привидения. В окне проекта перейдите в папку Assets > Models, найдите объект «Ghost»и перетащите его на сцену. Поскольку в доме с привидениями нужно несколько привидений, мы создадим из этого объекта префаб, чтобы потом можно было его использовать многократно без лишней работы. Перетащите игровой объект «Ghost» из окна иерархии (именно из него, а не с игровой сцены) в папку Assets > Prefabs в окне Project. Когда появится диалоговое окно Create Prefab, кликните кнопку «Original Prefab».

Давайте откроем созданный префаб призрака и настроим его. И первое, что необходимо обязательно сделать - это изменить свойство Position компонента Transform на (0, 0, 0), чтобы экземпляры префаба создавались без смещения.

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

В окне «Project» перейдите в папку Assets > Animation > Animators щелкните правой кнопкой мыши и выберите Create > Animator Controller. Назовите новый контроллер анимации «Ghost» и дважды щелкните по созданному контроллеру , чтобы открыть окно аниматора.

В окне «Project» перейдите в Assets > Animation > Animations и перетащите анимацию «Ghost@Walk» из окна Project в окно Animator. Это создаст состояние Idle Animator. И осталось связать созданный контроллер с объектом призрака.

Создание префаба призрака
Создание префаба призрака

Точно так же, как Джон Лимон и горгульи, призраки нуждаются в физическом присутствии на сцене, хотя, возможно, это несколько парадоксально! Это означает, что им понадобится коллайдер.

В Инспекторе добавьте компонент Capsule Collider к игровому объекту Ghost. Скорректируйте настройки коллайдера, чтобы Collider лучше подходил к модели призрака:

  • Измените свойство Center Capsule Collider на ( 0, 0.6, 0 )
  • Измените свойство Radius на 0.25 .
  • Измените свойство Высота на 1.2.
Коллайдер призрака
Коллайдер призрака

Призраку также понадобится Rigidbody, потому что он движется.

Здесь есть один момент, который нужно исправить - когда два физических тела сталкиваются между собой, то они отталкиваются друг от друга. Представьте два мяча, которые катятся друг другу на встречу. Что произойдет, когда они столкнутся? То же самое произойдет с котом и привидением. Но в игре этого надо избежать. Мы установим у Rigidbody призрака тип тела как кинематическое. В инспекторе найдите компонент Rigidbody у призрака и установите флажок Is Kinematic. При включении этого флажка объект не будет управляться физическим движком, но он все же может сталкиваться с другими игровыми объектами.

Отлично, мы собрали префаб призрака, но пока он не может еще обнаружить кота. Нам необходимо создать область зрения призрака. Такую область мы создали уже для горгульи, поэтому давайте ее и используем, чтобы не создавать еще одну. Для этого откройте префаб горгульи, выберите объекта ViewArea и перетащите мышкой его из окна иерархии в папку префабов.

Создание префаба ViewArea
Создание префаба ViewArea

Теперь созданный префаб нужно перенести на префаб призрака. Для этого откройте префаб призрака и перетащите префаб ViewArea из папки Assets > Prefabs на игровой объект Ghost в окне иерархии.

Добавление префаба ViewArea призраку
Добавление префаба ViewArea призраку

Теперь призрак также имеет ViewArea и может использовать все его функции! Тем не менее, необходимо внести несколько изменений - горгулья стоит на постаменте смотрит вниз, а Призраку нужно смотреть прямо вперед.

В окне иерархии префаба призрака выберите объект ViewArea. В инспекторе измените свойства компонента Transform:

  • свойство Position на ( 0, 0.75, 0.4 ) .
  • свойство Rotation на ( 0, 0, 0 )

Теперь можно настроить префаб Ghost, чтобы он мог перемещаться по игровой среде. Для этого нам понадобится два компонента:

  • агент навигационной сетки, который позволит призраку находить пути по навигационной сетке
  • скрипт, который сообщает агенту NavMesh, куда следует направить призрака.

Начнем с создания агента Nav Mesh. Для этого в Инспекторе добавьте компонент Nav Mesh Agent к префабу Ghost.

Компонент Nav Mesh Agent
Компонент Nav Mesh Agent

Вокруг Ghost появится цилиндрическое представление Nav Mesh Agent.

Представление Nav Mesh Agent
Представление Nav Mesh Agent

Цилиндр немного великоват, поэтому в инспекторе измените свойство Radius у компонента Nav Mesh Agent на 0.25. Высота цилиндра в данном случае не имеет значения, поскольку в окружающей среде нет потолка.

Измените свойство Speed ​​компонента Nav Mesh Agent на 1.5, так как скорость по умолчанию 3.5 метра в секунду довольно высока и сделает нашу игру слишком сложной.

Измените свойство Stopping Distance компонента Nav Mesh Agent на 0.2. Остановиться точно в целевой точке пути ИИ удается редко, поэтому это свойство используется для установки приемлемого радиуса, в пределах которого агент должен остановиться.

На этом настройка компонента Nav Mesh Agent закончена.

В следующей части напишем скрипт для перемещения агента-призрака.

Part 15 https://dzen.ru/a/Y81E1qAphACVZftY