Как сделать управление персонажем в Unity – урок для детей и подростков

cbd6e8f460c210e2c90f543f6cfe1ead.png

Сегодняшний урок подойдет для ребят 10–14 лет с минимальным опытом. Благодаря пошаговой инструкции можно разобраться в управлении персонажами на простых примерах и понять, как работать с некоторыми важными инструментами среды Unity.

Платформа «Юнити» предназначена для разработки игр. Она обрела популярность и стала востребованной благодаря ряду известных проектов, скажем, Pokémon GO с аудиторией более 65 млн игроков в месяц.

Отмеченная выше и многие другие игры были реализованы с помощью представленного движка. Он предназначен для профессиональной разработки, поэтому может показаться, что все сложно, но это не так: мы в школе Pixel успешно учим детей и подростков 10–14 лет работе в Unity и написанию кода на C#. Многие ребята отлично справляются даже со сложными индивидуальными проектами.

Сегодня хотим рассказать, как сделать движение персонажа в Юнити. Чтобы разобраться в этом, давайте изучим наглядную пошаговую инструкцию: в ней представлено описание основных действий и представлены картинки для простоты восприятия. В конце опубликовали видео: ролик поможет, если текстовый гайд покажется сложным.

Готовы? Тогда поехали. Впереди 3 интересных и важных шага. 

Шаг № 1: скачиваем необходимое программное обеспечение

Перед тем как начать создавать движение персонажа в Unity 3D и управлять им, нужно скачать движок. В этом помогут обучающие ролики:

Выбор площадки за вами. В видеоуроках рассказано:

Дополнительно преподаватель школы Pixel рассказал, как подключить вспомогательный инструмент Notepad и для чего он пригодится.

Шаг № 2: разбираемся в управлении персонажем в Юнити 3Д

В первую очередь давайте запустим движок и перейдем к сцене. Далее нам потребуется:

  1. Создать виртуальную площадку и объект, которым мы будем управлять. Используем инструменты Plane (плоскость) и Sphere (сфера). Потребуется кликнуть на Hierarchy, иконке со знаком + и навести курсор на 3D Object. Справа откроется выпадающее меню, где и будут расположены интересующие нас инструменты. Сразу отметим, что перемещать сферу можно с помощью стрелок, показанных на втором скриншоте. 

9f2b6ba34c52ba44e52ef6c290efad60.pngc435b8fb73eb116b5c171509b23305d6.png

  1. Подключить Collider. Если данная функция активна, столкновения будут заставлять сферу двигаться. Найти интересующую настройку можно в правой нижней части.

fd1d13474769ced15407b3765421365f.png

  1. Добавить физику для нашего сферического объекта — альтернативы виртуальному персонажу. Нужен компонент Rigidbody. Снова обратимся к настройкам в правом нижнем меню и кликнем на Add Component, затем на Physics. В выпадающем списке будет расположен отмеченный компонент.

a051f76116b6b7028abe17cc9b071e55.png

  1. Приступить к скриптингу. Кликнем правой кнопкой мыши по сцене. Далее наведем курсор на Create и в появившемся перечне кликнем на C# Script. Обязательно нужно назвать скрипт с помощью латиницы. Пусть именем станет PlayerController.

3791f3ab9c7a90ae910cf8c4396b25a8.png

О коде поговорим отдельно. Давайте:

  1. Пропишем 4 переменные float. Они будут определять скорость сферы.

6602ca11c7b138c1ab6ef7133bd47fdb.png

  1. Установим параметры скорости для движения, поворота, горизонтального и вертикального перемещения. Это movement-, turningSpeed, а также vertical и horizontal.

e485fe0a08f4b7e72343a0963e259dfa.png

На скриншоте видно, что в горизонталь записана операция умножения скорости поворота на Time.deltaTime. Цель действия — сглаживание движений и задание поворота по оси Y. Так же поступаем с вертикалью для случая с Z, указываем требуемые величины и параметры, как на скриншоте. 

Не забудьте сохранить программу. Поможет сочетание клавиш Ctrl + Shift + S.

Наша мини-программа готова. Нужно применить ее в отношении сферы. Зажимаем левую кнопку мыши и перетаскиваем скрипт в специальное меню, как показано на скриншоте ниже.

66c0085b3729138c1de16582ab780812.png

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

a283f33f70078462747565f456b06555.png

Надеемся, все получилось. Если да, виртуальная сфера начнет передвигаться.

Шаг № 3: создаем передвижение 2D-персонажа в Unity

Теперь предлагаем выполнить проект в 2Д-версии. Будет несколько интереснее, потому что сферу предстоит заменить на более привлекательного персонажа. 

Сначала предлагаем скачать необходимые объекты: дракона и землю. Если хочется использовать что-то другое, зайдите в Asset Store.

28248a6a6a5a63bca3cf3e4f6f4af56b.png

Предлагаем начать работать с объектами в виде дракона и земли. Если согласны, приступим. Понадобится:

  1. Переместить персонажа на сцену. Также поступим с землей.

  2. Продублировать части почвы и растянуть на всю сцену. Помогут клавиши Ctrl + D и Move Tool — инструмент, расположенный слева сверху.

d4a755028ca1e719ee141d03d96b8666.png

  1. Объединить части soil. Это упростит добавление компонентов на платформу. Создадим пустой объект (Hierarchy, +, Create Empty) и добавим в него все части почвы.

8664a69443294dfbfc7f229125bd878a.png

Теперь поверхность, по которой передвигается герой, будет единой. Она переместится в папку Game Object.

04e6f4969a389e488b12a0848e0c6b6c.png

Далее обращаемся к отмеченной папке, кликаем на Add Component, затем — на Physics 2D и на Box Collider 2D.

3d627e0a81f3d337d8fba25439933971.png3e2f5bbe2c4dfb6767ffc2ea5a3a5e8f.png

Потребуется растянуть 2Д-коллайдер, в чем поможет инструмент Edit Collider. Он находится в Inspector в меню Box Collider 2D.

37172b29c3c6769ab4070a13a70ad662.png

Осталось выполнить растягивание.

4e18a4f765c1e6fdc4b1f368a3bb10a2.png

Для управления персонажем в Unity потребуется:

  1. Выбрать дракона (dragon) в Hierarchy.

32bc1854dc5ef1befa08d862acc87094.png

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

  2. Реализовать виртуальную физику через Physics 2D и Rigidbody 2D, что мы уже делали, когда работали со сферой. 

ddf34346ded88cc2a6812dd55a3c5bce.png865f9600689169a3ed424f4fc71b4c25.pngb366f0fd556717714810a70acd8ad971.png

Осталось написать скрипт для передвижения персонажа в Юнити. Действуем так же, как и ранее:

  1. Переходим в Create и кликаем на C# Script.

  2. Задаем значение maxSpeed на уровне 10 и используем flipRight для отражения по осям.

0f6b4cbea961436e97e3bf294f31008a.png

  1. Берем компонент Rigidbody и прописываем движение по горизонтали в виде его умножения на maxSpeed.

  2. Применяем конструкцию if-else для скриптинга направлений перемещения. Используем move, задаем условие: нажатие на клавиши «влево» и «вправо» приводит к соответствующим действиям дракона. В первом случае скрипт будет возвращать значение -1, во втором — 1.

b10d0831139f56774acc29684fe7c69f.pngea6e7389d591cb0234b970fb107018ea.png

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

Так, наша инструкция подошла к концу. Мы совершили три важных шага и поняли, как делать движения с помощью ряда инструментов движка и C#. 

До реализации более сложных проектов и управления камерой в Unity еще далеко, но в некоторых основах анимации мы разобрались.

Если не получилось что-то сделать, посмотрите обучающее видео. В нем преподаватель подробно описал процесс.

Чтобы узнать больше о Юнити и программировании на C#, можно:

  • Изучить плейлист с интересными проектами и советами опытных преподавателей;

  • Записаться на курс для детей от 10 до 14 лет.

Материал подготовлен школой Pixel. Вместе с учениками мы каждый день выполняем простые и сложные проекты в Unity, пишем код на C# и используем другие инструменты для разработки и кодинга. 

Habrahabr.ru прочитано 1744 раза