Процесс создания в среде разработки Unity обучающей английскому языку игры

Автор: Сафина Г.Ф., Кириллова Е.А.

Журнал: Бюллетень науки и практики @bulletennauki

Рубрика: Технические науки

Статья в выпуске: 12 т.10, 2024 года.

Бесплатный доступ

Приведены пошаговые компоненты и результаты процесса разработки обучающей игры с помощью кроссплатформенной среды Unity - редактора (движка) для разработки компьютерных игр. Игра призвана оказать помощь обучающимся в первичном знакомстве и освоении английского языка посредством взаимодействия с миром и его изучения. Кодовая часть игры реализована с помощью библиотек и функционала языка программирования C#, для визуализации проекта (игры) привлечены возможности 3d-моделирования.

Движок unity, разработка игр, английский язык, язык программирования c#, компьютерные игры, 3d-моделирование, игровое обучение

Короткий адрес: https://sciup.org/14131719

IDR: 14131719   |   УДК: 004.946   |   DOI: 10.33619/2414-2948/109/21

Текст научной статьи Процесс создания в среде разработки Unity обучающей английскому языку игры

Бюллетень науки и практики / Bulletin of Science and Practice

УДК 004.946                                       

Видеоигры могут приносить много пользы, быть не только развлечением. Они помогают развивать различные когнитивные навыки. Например, многие игры требуют стратегического мышления и быстрого реагирования, что тренирует мозг и позволяет улучшить реакцию. Играя в игры на иностранном языке, вы усваиваете новые слова и фразы в контексте, что может помочь развить навыки чтения, понимания текста на другом языке [1, 2].

Рассмотрим процесс создания компьютерной игры, идея которой заключается помощи игроку в изучении английского языка посредством построения связи визуально знакомого объекта с его названием на иностранном языке. Для реализации проекта используется среда разработки компьютерных игр Unity, позволяющая создавать приложения для разных платформ, операционных систем, устройств и обладающая богатым магазином готовых наборов ресурсов. Первоначально в разработке создаем новый 3d-проект (модель) под названием “Learn English” [2, 3]. Процесс создания представлен на Рисунке 1.

Рисунок 1. Создание нового проекта

Далее нужно реализовать игрока, локацию и тестовые предметы. Для создания игрока помещаем куб, который будет являться телом, внутрь камеры, названной Main Camera (Рисунок 2). Ей добавляем свойство RigidBody, позволяющее стать физически твердым объектом, благодаря которому мы не сможем проходить сквозь другие твердые объекты. Телу игрока добавляем свойство Box Collider, который помогает установить границы предмета в пространстве [3, 4].

Рисунок 2. Иерархия компонентов игрока

Для перемещения игрока создаем и закрепляем следующий скрипт на Main Camera:

public class move : MonoBehaviour

{ public float speed = 1.5f;

public Transform head;

public float sensitivity = 5f; // чувствительность мыши public float headMinY = -40f; // ограничение угла для головы public float headMaxY = 40f; // ограничение угла для головы private Vector3 direction; // хранит вектор направления движения private float h, v;

private int layerMask;

private Rigidbody body;

private float rotationY;

void Start() { body = GetComponent();

body.freezeRotation = true;

Cursor.visible = false; //скрываем курсор

} void FixedUpdate()

{ body.AddForce(direction * speed, ForceMode.VelocityChange);

}

} void Update()

{ h = Input.GetAxis("Horizontal");

v = Input.GetAxis("Vertical");

// управление головой (камерой)

float rotationX = head.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivity;

rotationY += Input.GetAxis("Mouse Y") * sensitivity;

head.localEulerAngles = new Vector3(-rotationY, rotationX, 0); // применение вращения к голове

// вектор направления движения direction = new Vector3(h, 0, v);

direction = head.TransformDirection(direction);

direction = new Vector3(direction.x, 0, direction.z);

}

Добавим возможность совершать прыжки с помощью следующего скрипта, который также помещаем на Main Camera:

public class JumpScript : MonoBehaviour

{ public float speed = 10f; // скорость прыжка public Rigidbody rb;

private bool isJumping; //флаг, указывающий на то, происходит ли сейчас прыжок void Start()

{ rb = GetComponent();

isJumping = false; // сброс флага прыжка

} void Update()

{ rb.velocity = new Vector3(0, 5, 0);

isJumping = true;// установка флага прыжка в значение true

}

} private void OnCollisionEnter(Collision collision)

{ isJumping = false;// сброс флага прыжка

}

Следующим шагом создаем несколько параллелепипедов – пол и ограждения локации, а также тестовые предметы, в данном случае это куб, шар и капсула (Рисунок 3). Добавляем им свойство Box Collider, чтобы нельзя было пройти сквозь них [3].

Рисунок 3. Тестовая локация

Далее разрабатываем интерфейс обучающей игры. Для этого создаем Canvas и текстовый объект, который называем OnHoverText (Рисунок 4).

^ Canvas

► J OnHoverText

Рисунок 4. Иерархия объекта Canvas

Следующие два скрипта реализуют функциональность наведения курсора на объект: // скрипт для Canvas public class UIManager : MonoBehaviour

{ private static TextMeshProUGUI OnHoverText;

void Start()

{

OnHoverText =

} public static void SetOnHoverText(string objName)

Бюллетень науки и практики / Bulletin of Science and Practice Т. 10. №12 2024

{

} public static void OffOnHoverText()

{

}

}

// скрипт для объектов public class Hoverable : MonoBehaviour

{ private void OnMouseEnter()

{

} private void OnMouseExit()

{

UIManager.OffOnHoverText();

}

Когда курсор мыши находится в области объекта, он вызывает метод SetOnHoverText в классе UIManager для отображения названия объекта. Когда курсор мыши покидает область объекта, вызывается метод OffOnHoverText, который удаляет текст. Приступаем к тестированию. Запускаем игру и подходим к объектам, их названия успешно выводятся на экран. Далее добавим больше элементов локации и снова протестируем. Некоторые результаты тестирования представлены на Рисунке 5 (а, б, в, г).

в)                                                      г)

Рисунок 5. Тесты распознавания объектов

Таким образом, с помощью редактора Unity и языка программирования C# была успешно разработана компьютерная игра, помогающая в обучении английскому языку. Проект оснащен яркой графикой и интуитивно понятным интерфейсом, что делает его привлекательным, способствует изучению английского языка.

Список литературы Процесс создания в среде разработки Unity обучающей английскому языку игры

  • Корнилов А. В. Unity полное руководство. СПб.: Наука и техника, 2021. 496 с.
  • Ларкович С. Н. Unity на практике. Создаем 3D-игры и 3D-миры. М.: Наука и техника, 2022. 384 с.
  • Мэннинг Д. Unity и для разработчика. СПб: Питер, 2018. 352 с.
  • Гейг М. Разработка игр на Unity 2018 за 24 часа. М.: Эксмо, Бомбора, 2020. 461 с.