Сегодняшний урок подойдет для ребят 10–14 лет с минимальным опытом. Благодаря пошаговой инструкции можно разобраться в управлении персонажами на простых примерах и понять, как работать с некоторыми важными инструментами среды Unity.
Платформа «Юнити» предназначена для разработки игр. Она обрела популярность и стала востребованной благодаря ряду известных проектов, скажем, Pokémon GO с аудиторией более 65 млн игроков в месяц.
Отмеченная выше и многие другие игры были реализованы с помощью представленного движка. Он предназначен для профессиональной разработки, поэтому может показаться, что все сложно, но это не так: мы в школе Pixel успешно учим детей и подростков 10–14 лет работе в Unity и написанию кода на C#. Многие ребята отлично справляются даже со сложными индивидуальными проектами.
Сегодня хотим рассказать, как сделать движение персонажа в Юнити. Чтобы разобраться в этом, давайте изучим наглядную пошаговую инструкцию: в ней представлено описание основных действий и представлены картинки для простоты восприятия. В конце опубликовали видео: ролик поможет, если текстовый гайд покажется сложным.
Готовы? Тогда поехали. Впереди 3 интересных и важных шага.
Шаг № 1: скачиваем необходимое программное обеспечение
Перед тем как начать создавать движение персонажа в Unity 3D и управлять им, нужно скачать движок. В этом помогут обучающие ролики:
Выбор площадки за вами. В видеоуроках рассказано:
Где искать установочный файл;
Как его скачать и запустить.
Дополнительно преподаватель школы Pixel рассказал, как подключить вспомогательный инструмент Notepad и для чего он пригодится.
Шаг № 2: разбираемся в управлении персонажем в Юнити 3Д
В первую очередь давайте запустим движок и перейдем к сцене. Далее нам потребуется:
Создать виртуальную площадку и объект, которым мы будем управлять. Используем инструменты Plane (плоскость) и Sphere (сфера). Потребуется кликнуть на Hierarchy, иконке со знаком + и навести курсор на 3D Object. Справа откроется выпадающее меню, где и будут расположены интересующие нас инструменты. Сразу отметим, что перемещать сферу можно с помощью стрелок, показанных на втором скриншоте.
Подключить Collider. Если данная функция активна, столкновения будут заставлять сферу двигаться. Найти интересующую настройку можно в правой нижней части.
Добавить физику для нашего сферического объекта – альтернативы виртуальному персонажу. Нужен компонент Rigidbody. Снова обратимся к настройкам в правом нижнем меню и кликнем на Add Component, затем на Physics. В выпадающем списке будет расположен отмеченный компонент.
Приступить к скриптингу. Кликнем правой кнопкой мыши по сцене. Далее наведем курсор на Create и в появившемся перечне кликнем на C# Script. Обязательно нужно назвать скрипт с помощью латиницы. Пусть именем станет PlayerController.
О коде поговорим отдельно. Давайте:
Пропишем 4 переменные float. Они будут определять скорость сферы.
Установим параметры скорости для движения, поворота, горизонтального и вертикального перемещения. Это movement-, turningSpeed, а также vertical и horizontal.
На скриншоте видно, что в горизонталь записана операция умножения скорости поворота на Time.deltaTime. Цель действия – сглаживание движений и задание поворота по оси Y. Так же поступаем с вертикалью для случая с Z, указываем требуемые величины и параметры, как на скриншоте.
Не забудьте сохранить программу. Поможет сочетание клавиш Ctrl + Shift + S.
Наша мини-программа готова. Нужно применить ее в отношении сферы. Зажимаем левую кнопку мыши и перетаскиваем скрипт в специальное меню, как показано на скриншоте ниже.
Давайте кликнем на значок с иконкой треугольника, обозначающего запуск, чтобы увидеть результат.
Надеемся, все получилось. Если да, виртуальная сфера начнет передвигаться.
Шаг № 3: создаем передвижение 2D-персонажа в Unity
Теперь предлагаем выполнить проект в 2Д-версии. Будет несколько интереснее, потому что сферу предстоит заменить на более привлекательного персонажа.
Сначала предлагаем скачать необходимые объекты: дракона и землю. Если хочется использовать что-то другое, зайдите в Asset Store.
Предлагаем начать работать с объектами в виде дракона и земли. Если согласны, приступим. Понадобится:
Переместить персонажа на сцену. Также поступим с землей.
Продублировать части почвы и растянуть на всю сцену. Помогут клавиши Ctrl + D и Move Tool – инструмент, расположенный слева сверху.
Объединить части soil. Это упростит добавление компонентов на платформу. Создадим пустой объект (Hierarchy, +, Create Empty) и добавим в него все части почвы.
Теперь поверхность, по которой передвигается герой, будет единой. Она переместится в папку Game Object.
Далее обращаемся к отмеченной папке, кликаем на Add Component, затем – на Physics 2D и на Box Collider 2D.
Потребуется растянуть 2Д-коллайдер, в чем поможет инструмент Edit Collider. Он находится в Inspector в меню Box Collider 2D.
Осталось выполнить растягивание.
Для управления персонажем в Unity потребуется:
Выбрать дракона (dragon) в Hierarchy.
Добавить уже отмеченный коллайдер и растянуть его по персонажу так же, как с землей.
Реализовать виртуальную физику через Physics 2D и Rigidbody 2D, что мы уже делали, когда работали со сферой.
Осталось написать скрипт для передвижения персонажа в Юнити. Действуем так же, как и ранее:
Переходим в Create и кликаем на C# Script.
Задаем значение maxSpeed на уровне 10 и используем flipRight для отражения по осям.
Берем компонент Rigidbody и прописываем движение по горизонтали в виде его умножения на maxSpeed.
Применяем конструкцию if-else для скриптинга направлений перемещения. Используем move, задаем условие: нажатие на клавиши «влево» и «вправо» приводит к соответствующим действиям дракона. В первом случае скрипт будет возвращать значение -1, во втором – 1.
Осталось сохранить простую программу и применить ее по отношению к дракону так же, как мы уже делали со сферой. В завершение можно запустить проект и оценить результат.
Так, наша инструкция подошла к концу. Мы совершили три важных шага и поняли, как делать движения с помощью ряда инструментов движка и C#.
До реализации более сложных проектов и управления камерой в Unity еще далеко, но в некоторых основах анимации мы разобрались.
Если не получилось что-то сделать, посмотрите обучающее видео. В нем преподаватель подробно описал процесс.
Чтобы узнать больше о Юнити и программировании на C#, можно:
Изучить плейлист с интересными проектами и советами опытных преподавателей;
Записаться на курс для детей от 10 до 14 лет.
Материал подготовлен школой Pixel. Вместе с учениками мы каждый день выполняем простые и сложные проекты в Unity, пишем код на C# и используем другие инструменты для разработки и кодинга.
Комментарии (4)
wichid
16.10.2024 23:33Здравствуйте, почему вы называете поля, переменными?
Почему у вас табуляция кривая? Зачем разделять, конструкцию if.. else if
Почему не соблюдается правила наименования полей, у вас что private то и public с маленькой буквы.
Зачем делать такую глупую конструкцию с flipRight? В чем проблема сделать более логичную логику? К примеру turnDirection? С указанием в -1 и 1, -1 это лево и 1 это право.
Зачем делать vertical и horizontal поля публичными и статичными? Если можно просто сделать локальную переменную внутри метода, т.к. она больше негде не используется
Отсутствие отдельного метода для поворота, все в Update кучей лежит.
Какая вы школа, если вы базу не можете грамотно сделать, создавая таких специалистов, если учить нужно правильно с нуля.
Sasa111222333
16.10.2024 23:33так а поле это и есть переменная если не вдаваться в детали. бэйсик тот же вспомните. я не ругаться пришел а к теме коммента просто
про конструкции в целом понимаю ваше замечание но опять же к основам код все по-разному пишут и почему вы решили что что-то лучше а что-то нет? только с аргументами пожалуйста) учил примерно в 2010 C++ и нам препод даже в уши лил + напрактике показывал что одни и те же вещи можно делать по-разному и всегда будут те кто "верят в свет" и "верят в тьму" это если образно
Petya_krut
Отличная статья, к сожалению, пока только читаю, до практики еще не дошел)
Sasa111222333
вам сейчас напишут что вы бот школы или что вы комментите статьи за деньги)))