Блог онлайн школы Пиксель

Как сделать диалоги в Unity

Школа "Пиксель" продолжает публиковать бесплатные уроки по Unity и C#. На наших последовательных занятиях мы разбираемся, как создать игру на Unity: что нужно учесть и какие детали проработать. В этом уроке мы разберем, как сделать диалоги в Юнити.

Нам понадобится четыре спрайта:
  • персонаж;
  • земля;
  • объект (от которого будет высвечиваться диалог);
  • диалоговое окно.

Мы уже подготовили все спрайты для тренировки, вы можете скачать их по ссылке.

Загружаем спрайт персонажа, добавляем коллайдер, затем RigidBody и скрипт "Движение персонажа" (его мы разбирали здесь).

Далее добавляем землю, на нее — коллайдер. Дублируем объект CTRL+D, чтобы увеличить площадь. Добавляем объект, от которого будет высвечиваться диалог.


Создаем канвас и на нем — панель, масштабируем ее и добавляем текст. Настраиваем размер текста. Далее добавляем еще один текст — он будет давать пользователю подсказку, как пролистнуть текст.


Создаем скрипт, называем его DialogManager.
Объявляем переменные:
  • panelDialog - панель;
  • dialog - текст на панели, куда мы будем выводить текст;
  • message - массив сообщений;
  • dialogStart - состояние, идет сейчас диалог или нет.


Массив — это упорядоченный набор данных, который имеет свой идентификатор, но которому присвоено одно имя. Массив всегда начинается с нуля.

В старте заполняем массив и скрываем панель.


Далее пишем метод OnTriggerEnter2D, который будет отслеживать соприкосновение коллайдеров. Проверяем, что если почтового ящика коснулся объект с тэгом Player, то мы активируем диалоговое окно и записываем туда первое значение. Далее записываем состояние, что мы находимся в диалоге.


Возвращаемся в Юнити, добавляем тэг персонажу.


Кликаем на почтовый ящик и в компоненте коллайдера ставим галку рядом с IsTrigger, это позволит нам проходить сквозь его коллайдер.

Возвращаемся в скрипт. Пишем новый метод OnTriggerExit2D. Он нам нужен для того, чтобы фиксировать выход персонажа из коллайдера почтового ящика. Когда персонаж выйдет из коллайдера, панель скроется, а состояние диалога будет false.


Далее в Update, мы будем проверять состояние диалога, и если оно будет равно true, то, когда пользователь нажмет клавишу R, будет выводится второе сообщение.


Сохраняем и проверяем.

Скрипт:



Если вы хотите получше познакомиться с Unity, узнать, как создать 2D- и 3D-игру, научиться писать скрипты с помощью языка программирования С#, приходите на полный курс по разработке игр на Unity 3D в школе "Пиксель". Мы научим вас создавать сложные многоуровневые игры, покажем, как сделать NPC в Unity, как создать анимацию, настроить камеру, добавить много различных деталей в игры. Вы создадите много новых проектов и научитесь делать их самостоятельно в будущем.

2021-11-07 17:34 Бесплатные видеоуроки Unity для детей