Данин В.Н. преподаватель СПО Чебоксарский кооперативный Институт, Российский университет кооперации СОЗДАНИЕ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА В UNITY3D Аннотация: : в данной статье рассмотрен пример создания новой сцены с ИИ (искусственным интеллектом) в среде Unity3d. Перемещение в разные позиции. Создание навигации по полю. Ключевые слова: Unity3d, Искусственный Интеллект, программирование, разработка приложений Danin V.N. Lecturer, SPO Cheboksary Cooperative Institute, Russian University of Cooperation CREATING ARTIFICIAL INTELLIGENCE IN UNITY3D Abstract: This article describes an example of creatin g a new scene with AI (artificial intelligence) in the Unity3d environment. Moving to different positions. Creation of field navigation. Key words: Unity3d, Artificial Intelligence, programming, application development Введение Компьютерное приложение — компьютерная программа, служащая для организации процесса взаимодействия человека с миром математического моделирования с помощью языков программирования и сред разработки. Создание нового проекта Запускаем Unity3d. После Для этого в верхнем левом углу необходимо нажать на File и выбрать New Project, откроется окно создание проекта, укажем его имя и расположение, затем нажмем Create Project. Рисунок 1. Создание нового проекта. Создание новой сцены в проекте Нажать на File и выбрать New Scene, откроется окно создание проекта, укажем его имя и расположение, затем переименуем новый файл и назовем его Новая Сцена. Рисунок 2. Создание сцены Создание Платформы в проекте Нажать на GameObject и выбрать 3D Object, откроется вкладка создание объектов, выбираем Plane и в среде у нас появляется поверхность, далее выравниваем ее выбирая нулевую позицию в разделе позиции в инспекторе ставим по векторам нули. Рисунок 3. Создание Платформы Создание Объекта и заготовка поля для движения Нажать на GameObject и выбрать 3D Object, откроется вкладка создание объектов, выбираем Cube, данный куб будет нашим прототипом ИИ. Добавляем его на поле, так же в разделе инспектор добавляем свойства NavMeshAgent и RigidBody Рисунок 3. Добавление макета ИИ. Настройка поля для движения В разделе Windows находим вкладку AI и выбираем Navigation там выбираем Object и на объект Plane ставим галочку Navigation Static и во вкладке Bake жмем Bake. И наша сетка для перемещения запекается поле становится объектом для перемещения AI Рисунок 4, 5 . Параметры объекта Plane и Navigation. Установка Скрипта с ИИ на объект Cube Добавим на объект Cube, скрипт AI.cs написанный на языке C# с кодом в скобках написано пояснение к строкам кода: Суть скрипта что при запуске программы объект начинает двигаться по точкам заданным в разделе MoveSpots, это могут быть объекты или позиции при приближении player на определенную дистанцию chaseRadius ИИ начинает двигаться в сторону player при выходе player из дистанции chaseRadius , ИИ возвращается к патрулированию. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; (подключение библиотеки ИИ) public class AI : MonoBehaviour { public Transform player; данном случае MainCamera) public патрулирования ) Transform[] ( сюда добавляем нашего персонажа в moveSpots; (Точки private int randomSpot; NavMeshAgent nav; (Компонент Нав Меш) public float distToPlayer = 5.0f; public float chaseRadius = 20f; ( Радиус выбора) public float facePlayerFactor = 20f; private float waitTime; public float startWaitTime = 1f; void Start() { waitTime = startWaitTime; движения или randomSpot = Random.Range(0, moveSpots.Length); nav.speed = 5f; } private void Awake() { nav = GetComponent<NavMeshAgent>(); nav.enabled = true; } void Update() { float transform.position); distance = Vector3.Distance(player.position, if(distance > chaseRadius) { Patroling(); } else if(distance <= chaseRadius) { ChasePlayer(); } } void Patroling() { nav.SetDestination(moveSpots[randomSpot].position); if(Vector3.Distance(transform.position, moveSpots[randomSpot].position) < 2.0f) { if(waitTime <= 0) { randomSpot = Random.Range(0, moveSpots.Length); waitTime = startWaitTime; } else { waitTime -= Time.deltaTime; } } } void ChasePlayer() { float transform.position); distance = Vector3.Distance(player.position, if (distance <= chaseRadius && distance > distToPlayer) { nav.SetDestination(player.transform.position); } } } Для примера добавим еще 2 куба которые будут точками патрулирования и переместим данные кубы в MoveSpots. Дальше скрипт можно модернизировать добавляя или отключая анимацию или другие компоненты. После запуска программы объект будет патрулировать между двумя точками. Рисунок 6. Добавлении скрипта и точек патрулирования Заключение В результате работы было показано создание нового проекта и сцены, добавление объектов, способ установки скрипта с ИИ для приложения, разрабатываемого в Unity3d. Использованные источники: 1. Unity Game Development in 24 Hours. Mike Geig (2015) 2. Learning C# Programming with Unity 3D. Alex Okita (2014) 3. Unity 2D Game Development. Dave Calabrese (2014) 4. https://gcup.ru/publ/gamedev/sozdanie_prostogo_ii_s_pomoshhju_navmesh_dlja _fps_chast_1/1-1-0-364 5. https://docs.unity3d.com/Manual/index.html