Unity 5. Простой ИИ. Часть 3

Искусственный интеллект в Unity Уроки

Простой искусственный интеллект.

Продолжаем создавать простой искусственный интеллект в бесплатном игровом движке 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 5 | Урок #3 - Главное меню. Часть 1Скачать

Как сделать игру на Андроид Unity 5 | Урок #3 - Главное меню. Часть 1
[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Скачать

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 (патрулирование, погоня и атака)Скачать

Искуственный интеллект врага в Unity (патрулирование, погоня и атака)
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Скачать

Делаю эволюцию ИИ в Unity
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 , для того чтобы наша крыса не провалилась сквозь землю.

boxrigit

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

pers

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

cube

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

logoII

Как видим крыса при достижении определенной дистанции двигается к персонажу и атакует его при приближении к нему. На этом серию уроков про простой искусственный интеллект можно завершить, к скрипту написанному выше можно добавить так же нанесение урона крысой и другие функции. Удачных проектов!

🎬 Видео

Уроки Unity Урок 6-3 Простой искусственный интеллект [универсальный] AI Simple C#Скачать

Уроки Unity Урок 6-3 Простой искусственный интеллект [универсальный] AI Simple C#

Научу создать игру на Unity за 5 минут!!! | GamicleСкачать

Научу создать игру на Unity за 5 минут!!! | Gamicle

Создание простой 3D игры в Unity | #3 - Движение игрокаСкачать

Создание простой 3D игры в Unity | #3 - Движение игрока

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тебе не нужны Unity и Unreal Engine
Поделиться или сохранить к себе:
Технологичная помощь
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных, принимаю Политику конфиденциальности и условия Пользовательского соглашения.