Создание простого ИИ с помощью NavMesh(для FPS). Часть 2
Так... Сейчас мы будем работать с дополнительными эффектами для врага. Так как у нас враг для FPS (First Personal Shooter), мы сделаем только самое основное. Это эффекты выстрела (звуки, партиклы) и анимация. У нас есть готовый скрипт ИИ, написанный в предыдущем уроке. Вот, собственно, он:
Code
using UnityEngine; using System.Collections;
public class AINavMesh : MonoBehaviour { public Transform _target; // Указываем переменную, к которой будет двигаться наш агент NavMeshAgent _agent; // Указываем переменную агента
void Start () { _agent = (NavMeshAgent)this.GetComponent("NavMeshAgent"); // Указываем, что переменная _agent - это наш агент. }
void Fire(){ Rigidbody ins = Instantiate(_bullets, _weapon.position, _weapon.rotation) as Rigidbody; ins.rigidbody.AddForce(transform.forward * 5000); }
Приступим. Сначала мы рассмотрим анимацию. Тут я не рассказываю, как она создаётся, тут я рассказываю, как её воспроизвести её в скрипте. Но сразу предупрежу. У меня скелетная анимация, записанная в самой юнити. Я сделаю так, чтобы пригралась сначала анимация вскидки оружия. Но для начала нужно создать переменную public AnimationClip _handStart;. И я создаю новый метод. Это void Awake(){}. Поясняю. Awake - метод при загрузке. И в этом методе прописываем animation.AddClip(_handStart, "start");. Тут я добавляю новую анимацию в скрипт. Вот. теперь в void Start() прописываем animation.CrossFade("start");. То есть мы делаем смешанное произведение анимации. У меня теперь вскидывается оружие при старте. Теперь пошли дальше. Теперь создадим анимацию ходьбы и стрельбы. Всё делается таким же способом, что и анимация при старте. То есть для ходьбы public AnimationClip _walk;, добавляем в Awake() animation.AddClip(_walk, "walk"); и вызываем её в условии дистанции меньше 100: animation.CrossFade("walk");. Так же и со стрельбой (ток с именами другими) и вызываем в условии дистанции меньше 50. Теперь создадим звук стрельбы. Создадим в редакторе пустой GameObject и привяжем его к врагу. Добавим туда компонент AudioSource. Выберем звук. Теперь опять в скрипт. Создаём переменную public AudioSource _audioFire;. Теперь вызываем в методе Fire(). Всё! Со звуком всё просто (ток в инспекторе не забудьте указать). Сейчас создадим партикл искр при стрельбе. Тож привязываем к врагу. Теперь опять в скрипт. Там создаём переменную public ParticleRenderer _particleFire;. И в методе Start() прописываем отключение партикла. то есть _particleFire.enabled = false;. А в методе Fire() - _particleFire.enabled = true;. Всё! В общем всё готово. Наш ИИ с простенькими эффектами готов. Дальше будет статья про создание ИИ в RPG. До встречи! Ах да... Не забывайте всё указывать в инспекторе)
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Создание простого ИИ с помощью NavMesh(для FPS). Часть 2», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]