Простой искусственный интеллект.
Продолжаем создавать простой искусственный интеллект в бесплатном игровом движке Unity5. В прошлых частях мы разобрались с анимацией нашей крысы, теперь создадим скрипт, который будет вызывать определенную анимацию в зависимости от внешних факторов, например если дистанция от крысы до персонажа больше заданной, то крыса будет стоять на месте и будет проигрываться анимация бездействия, если дистанция меньше заданной, то крыса будет направляться в сторону персонажа.
Давайте приступим. Откроем предыдущий проект и добавим новый скрипт (RatII) и напишем такой код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class RatII : MonoBehaviour {
[Serializable]
public class Animation_Rat //подключаем наши анимации
{
[SerializeField]
private AnimationClip _idle;
[SerializeField]
private AnimationClip _walk;
[SerializeField]
private AnimationClip _run;
Видео:Искуственный интеллект врага в Unity (патрулирование, погоня и атака)Скачать
[SerializeField]
private AnimationClip _death;
[SerializeField]
private AnimationClip[] _attack;
}
[SerializeField] //подключаем наши параметры, которые создавали в Animatore
private float _horiz;
[SerializeField]
private float _vert;
[SerializeField]
private float _attack;
[SerializeField]
private bool _stun;
Видео:Unity3D Rus Tutorials - AI(ИИ) + Открытие дверей Часть #3Скачать
[SerializeField]
public bool _death;
private GameObject player;// наш персонаж
public int rotationSpeed; //переменная скорости поворота
public Transform target; // на этот объект будет реагировать наша крыса
private Transform myTransform; // координаты крысы
private Animator AnimRat = new Animator();
Видео:Как сделать игру на Андроид Unity 5 | Урок #3 - Главное меню. Часть 1Скачать
private void SetValue()
{
this.AnimRat.SetFloat("VertMov", this._vert);
this.AnimRat.SetFloat("HorizMov", this._horiz);
this.AnimRat.SetFloat("attack", this._attack);
this.AnimRat.SetBool("Idle", this._stun);
this.AnimRat.SetBool("death", this._death);
}
private void Awake()
{
this.myTransform = base.transform; //определяем текущее положение крысы
this.player = GameObject.FindGameObjectWithTag("Player"); // определяем объект на который будет реагировать крысы
this.target = player.transform;
}
void Start () {
this.AnimRat = base.GetComponent();
}
private void FixedUpdate()
{
this.SetValue();
Видео:Научу создать игру на Unity за 5 минут!!! | GamicleСкачать
if (this.player != null)
{
float num = Vector3.Distance(base.transform.position, this.player.transform.position); // если дистанция до персонажа будет меньше 8, то крыса будет двигаться в сторону персонажа
if (num < 8f && num > 1.2f)
{
this._attack = 0f;
this._vert = 2f;
this.rotationSpeed = 2;
this.myTransform.rotation = Quaternion.Slerp(this.myTransform.rotation, Quaternion.LookRotation(this.target.position - this.myTransform.position), (float)this.rotationSpeed * Time.deltaTime);
this._stun = false;
this.myTransform.position += this.myTransform.forward * ((float)this.rotationSpeed * Time.deltaTime);
}
if (num >= 8f) //если больше, крыса будет стоять
{
this._attack = 0f;
this._stun = true;
}
if (num <= 1.2f)
{
this._vert = 0f;
this._attack = 20f;
this._stun = false;
}
}
}
}
Далее, перемещаем этот скрипт на нашу крысу. Теперь нужно добавить компоненты BoxCollider и Rigidbody , для того чтобы наша крыса не провалилась сквозь землю.

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

Изменим размеры Plane(земли) по которой будет передвигаться крыса, сделаем размеры равные 10. Так же можно добавит другие элементы, например кубы в виде стен.

Теперь можно проверить игру

Как видим крыса при достижении определенной дистанции двигается к персонажу и атакует его при приближении к нему. На этом серию уроков про простой искусственный интеллект можно завершить, к скрипту написанному выше можно добавить так же нанесение урона крысой и другие функции. Удачных проектов!
🌟 Видео
Уроки Unity Урок 6-3 Простой искусственный интеллект [универсальный] AI Simple C#Скачать
![Уроки Unity Урок 6-3 Простой искусственный интеллект [универсальный] AI Simple C#](https://i.ytimg.com/vi/Vp3Su_XBwSw/0.jpg)
Создание простой 3D игры в Unity | #3 - Движение игрокаСкачать

Делаю эволюцию ИИ в UnityСкачать

Изучение Unity для начинающих / Урок #3 – Работа с объектами и компонентамиСкачать

Оптимизация игры на Unity, часть 3 - Код. ProfilerСкачать

Unity для новичков за 20 минут | Gamicle #unity #gamedev #gamicleСкачать

Сделал одинаковую игру на Unreal/Unity/GodotСкачать

КАК СОЗДАТЬ ПРОСТУЮ 3D ИГРУ НА UNITY? || Unity 3D C# Уроки Создание ИгрСкачать

КАК СОЗДАТЬ ИГРУ НА UNITY ЗА 20 МИНУТ ? | Gamicle | Unity 3D C# Уроки Создание ИгрСкачать

Тебе не нужны Unity и Unreal EngineСкачать

Можно ли сделать игру, если ты ничего не умеешь?Скачать













