Как сделать светофор unity

Добавил пользователь Дмитрий К.
Обновлено: 05.10.2024

Unity — это среда, которая позволит детям почувствовать себя настоящими разработчиками игр! На движке Unity 3D ребята могут создавать анимацию, запрограммировать игровую сцену и полноценные игры. А также познакомиться с языком программирования "Си шарп", на котором в Unity пишутся скрипты.

Школа программирования для детей "Пиксель" подготовила бесплатные уроки Unity 3D, которые познакомят детей с программой и научат создавать первые игры. Поддержите нас, ставьте палец вверх, если наш бесплатный курс по Юнити окажется полезным для ваших детей.

Как скачать Unity 3D на ПК

Для начала скачаем и установим программу на компьютер.

Урок 1. Как сделать анимации в Unity 3D

Начинаем уроки по Юнити. Первый шаг — анимирование персонажа. Мы добавим нашего дракона на сцену, изменим его размеры, научим его двигаться и бегать с заданной скоростью. Напишем наш первый скрипт.

Урок 2. Как сделать телепорт в Unity 3D

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

Урок 3. Как сделать спавн объектов в Unity 3D

Мы изучим 2 способа создания спавна объектов: на канвасе (canvas) и в пределах камеры. А еще узнаем, как создавать префабы.

Урок 4. Триггеры в Unity 3D | Столкновение персонажей

Триггеры чаще всего нужны, чтобы собирать бонусы в игре или наносить урон персонажу. Поэтому в этом видео мы научимся программировать сбор бонусов и сталкивать персонажей.

Урок 5. Как создать таймер в Unity 3D

Таймер нужен для почти любой игры, мы научимся создавать его с помощью корутины (Coroutine) и команды InvokeRepeating.

Урок 6. Перемещение объекта мышью в Unity 3D

Функция Mouse Drag или, по-другому, метод перетаскивания нужен для того, чтобы перетаскивать объекты в игре. Например, как мы показываем в видео, чтобы перемещать еду на персонажа и кормить его.

Урок 7. Как сделать полосу здоровья персонажа в Unity 3D

Health Bar или полоса здоровья тоже неотъемлемая часть любой игры. Мы научимся ее программировать, так чтобы полоса плавно увеличивалась и уменьшалась.

Урок 8. Как сохранить игру в Unity 3D

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

Урок 9. Создаем игру "Раннер" в Unity за 30 минут

Урок 10. Как экспортировать игру из Unity на ПК или Android (как настроить для Play Market)

В этом видео расскажем, как собрать игру под ПК или под Android: в каком порядке собрать сцены, какие им дать номера, а еще какие настройки нужны, чтобы загрузить игру Play Market.

Урок 11. Как загрузить игру в Play Market

Мы собираем игру и заполняем все настройки для Play Market. Теперь другие пользователи смогут сыграть в вашу игру, а вы будете на этом зарабатывать.

Урок 12. Как сделать прыжок в Unity 3D

В этом уроке мы разберем, как сделать прыжок персонажа в 2D- и в 3D-проекте. Для этого мы создадим две сцены, напишем скрипты на языке Си Шарп.

Урок 13. Как управлять персонажем в Unity 3D

Давайте научим нашего персонажа двигаться. Для этого мы зададим переменные типа float, они будут отвечать за скорость, поворот и перемещение по горизонтали и по вертикали. И, конечно, напишем скрипты для 2D- и 3D-версии игры.

Урок 14. LineRenderer в Unity 2D

LineRenderer позволяет упростить рисование линий. В этом видео мы напишем два скрипта: Line Point позволит проводить прямую линию между любыми двумя точками, а с помощью Draw Line мы сможем рисовать неотрывную линию.

Урок 15. Как сделать автосимулятор в Unity 3D | Как сделать гонки в Unity 3D

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

Наши плейлисты регулярно пополняются, подписывайтесь на наш YouTube-канал , чтобы следить за выходом новых видео и открывать для себя мир IT-технологий!

Если же вам нужен наставник, загляните в Школу программирования для детей “Пиксель”: запишитесь на полный курс по разработке игр на движке Unity 3D .





Так что же такое Bolt? А главное – зачем и кому может пригодится?

Зачем же тогда Unity создали этот инструмент?

На самом деле все довольно просто. Основная задача визуального программирования – это наладить тесное сотрудничество между программистами и теми членами команды, которые далеки от понимания кода (художники и дизайнеры). Используя визуальные сценарии будет намного проще выполнять такие задачи как:

  • создание события диалога между персонажами
  • добавление новых навыков игрока
  • создание визуальных эффектов
  • добавление ловушек на уровни
  • регулирование триггеров
  • подбор анимации для сцены и многое другое.

При этом Bolt дает возможность совмещать и визуальные сценарии и код, если это необходимо. Либо открывать и редактировать код уже готовых визуальных узлов. Вся суть сводится к тому, чтобы предоставить разработчику возможность и инструменты для наиболее быстрого и оптимального создания игр тем методом, который ему представляется наиболее удобным.

Практически сразу после релиза первой версии Bolt, Unity анонсировали разработку Bolt 2, которая учтёт все возможные замечания и недостатки первой версии и расширит его базовые возможности, масштабируемость, производительность и простоту использования. Примечательно, что новые версии Bolt будут автоматически добавляться во все текущие Unity планы для всех пользователей совершенно бесплатно.

Но если Вы графический дизайнер, либо обладаете самыми начальными знаниями в написании кода, то это именно то, что Вам нужно. Этот инструмент даст Вам возможность целиком и полностью сосредоточится на визуальных эффектах и логике построения игры.

Пошаговая инструкция по работе с Bolt доступна в официальном туториале от Unity. Но чтобы сделать этот инструмент понятным русскоязычной аудитории, UNITY3DSCHOOL обязательно запишет обучающий курс, посвященный данной теме.

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

  1. Скорируйте картинку в папку "Textures"
  2. Создайте новый спрайт и назовите его "Player"
  3. Настройте спрайт так, чтобы он отображался в свойстве "Sprite" компонента "Sprite Renderer"

Если у вас возникли проблемы, обратитесь к предыдущему уроку. Мы проделали точно такие же действия для фона и "реквизита".

  1. Поместите игрока в слой "2 - Foreground"
  2. Измените масштаб на (0.2, 0.2, 1)

Теперь несколько слов о компонентах. Мы только что говорили о компоненте "Sprite Renderer". Если вы еще не заметил, объект игры состоит из нескольких компонентов, видимых в панели "Инспектор".

По умолчанию пустой объект игры выглядит так:

Компоненты пустого игрового объекта

Этот объект имеет только один компонент: Transform . Этот компонент является обязательным и не может быть отключен или удален. Вы можете добавить к объекту столько компонентов, сколько захотите. Например, скрипты добавляются в качестве компонента. Большинство компонентов может быть включено или отключено пока существует объект.

Включить компонент игрового объекта

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

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

Sprite Renderer является компонентом, который способен отображать спрайт-текстуру. Теперь, когда мы узнали о концепции компонента, давайте добавим один к игроку!

Добавляем бокс-коллайдер (Box Collider)

Нажмите на кнопку "Добавить компонент" объекта игрока. Выберите "Box Collider 2D". Вы можете увидеть коллайдер в редакторе "Сцена" зрения и настройки его размера в "Инспекторе" в поле "Размер" (Size).

Существует еще один способ редактирования бокс-коллайдера. Выберите игровой объект с помощью бокс-коллайдера и зажмите клавишу shift на клавиатуре. Вы увидите, что на бокс-коллайдере (зеленый прямоугольник ) появились четыре маленьких рычажка. Перетащите один из них, чтобы изменить форму бокс-коллайдера. Будьте осторожны, синий прямоугольник представляет собой компонент Transform вашего игрового объекта, а не коллайдер.

Мы будем устанавливать размер коллайдера равным (10, 10) .

Это слишком много для настоящего шмапа, но все же меньше, чем спрайт:

Хитбокс игрока

В настоящее время, этого вполне достаточно.

Совет: Если вы планируете создать шмап, вам придется уделить много времени настройке хитбоксов – они должны точно соответствовать маленькому элементу внутри игрового спрайта. Вы также можете изменить такой параметр коллайдера, как shape – например, с помощью "Circle Collider 2D". Благодаря Unity, его поведение при этом не меняется, но это позволяет немного улучить геймплей.

Сохраним объект игрок как префаб. Теперь у вас есть базовую сущность игрока!

Добавляем спрайт игрока

2D полигональный коллайдер

Если вы хотите супер точный и произвольный формы хитбокс, воспользуйтесь компонентом Unity "Полигоннальный коллайдер 2D" (Polygon Collider 2D). Эффект от этого будет незначительный, но зато вы получите такую форму, какую вы хотите.

"Polygon Collider 2D" похож на остальные коллайдеры: вы можете изменять форму с помощью мышки в режиме "Scene". Для удаления точки зажмите cmd или ctrl , а чтобы отрегулировать положение точки или добавить ее в форму коллайдера, используйте shift

Магия Rigidbody

Последний компонент, необходимый для добавления на нашего игрока: "Rigidbody 2D". Это поможет физическому движку правильно задействовать объект в игровом пространстве. Более того, это позволит вам использовать столкновения в скрипте.

  1. Выберите объект Player в "Hierarchy".
  2. Добавьте компонент "Rigidbody 2D".

Теперь, нажмите кнопку "играть" и смотрите, что у нас вышло:

Корабль падает! И как падает! Передвайте привет нашей любимой силе тяжести. По мере того, как сменяются кадры с заранее заданной гравитацией и rigidbodies прибавляет объекту массы, корабль притягивается к нижней части экрана.

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

Гравитация может быть использована в любой игре, но нам она не нужна. К счастью, гравитацию на Rigidbody можн легко отключить. Просто установите "гравитационный масштаб" равным нулю. Вот и все, корабль снова летит. Не забудьте поставить галочку в окошке "Fixed Angles", чтобы предотвратить вращение корабля, обусловленное такой физикой.

Настройки твердого тела игрока

Перемещение игрока

"Sync MonoDevelop Project": Это подменю немного странное.Во-первых, невозможно изменить имя, даже если сменить редактора.
Мы также рекомендуем использовать это меню при создании первого скрипта, так как Unity создаст решения и привяжет их к библиотекам Unity (для Visual Studio, Xamarin Studio или MonoDevelop).
Если вместо этого вы просто откроете скрипт, компилятор вашего IDE, скорее всего, зарегистрирует определенные ошибки, не Unity. Это не имеет значения, потому что вам не придется использовать его напрямую, но функция автоматического завершения объектов Unity не помешает.

По умолчанию в скрипте уже прописаны методы Start и Update . Вот краткий список наиболее часто используемых функций:

  • Awake() вызывается один раз, когда объект создается. По сути аналог обычной функции-конструктора.
  • Start() выполняется после Awake() . Отличается тем, что метод Start() не вызывается, если скрипт не включен (remember the checkbox on a component in the "Inspector").
  • Update() выполняется для каждого кадра in the main game loop.
  • FixedUpdate() вызывается каждый раз через определеннок число кадров. Вы можете вызывать этот метод вместо Update() когда имеете дело с физикой ("RigidBody" и др.).
  • Destroy() вызывается, когда объект уничтожается. Это ваш последний шанс, чтобы очистить или выполнить код.

У вас также есть некоторые функции для обработки столкновений:

  • OnCollisionEnter2D(CollisionInfo2D info) выполняется, когда коллайдер объекта соприкасается с другим коллайдером.
  • OnCollisionExit2D(CollisionInfo2D info) выполняется, когда коллайдер объекта не соприкасается ни с одним другим коллайдером.
  • OnTriggerEnter2D(Collider2D otherCollider) выполняется, когда коллайдер объекта соприкасается с другим коллайдером с пометкой "Trigger".
  • OnTriggerExit2D(Collider2D otherCollider) выполняется, когда коллайдер объекта перестает соприкасаться с коллайдером, помеченным как "Trigger".

Итак, с теорией покончено, пора в бой. Или нет, погодите еще немного: обратите внимание, что почти все, о чем мы говорили с вами имеет, суффикс "2D". Box Collider 2D , a Rigidbody 2D , OnCollisionEnter2D , OnTriggerEnter2D и т.д. Эти новые компоненты или методы появились с Unity 4.3. Используя их, вы работаете с физическим движком, встроенным в Unity 4.3, для 2D-игр (на основе Box2D) вместо движка для 3D-игр (PhysX). Два движка имеют аналогичные концепции и объекты, но они не работают точно так же. Если вы начинаете работать с одним (например, Box2D для 2D-игр), придерживаqntcm его. Именно поэтому мы используем все объекты или методы с суффиксом "2D".

В скрипт для нашего игрока мы добавим несколько простых элементов управления, а именно: клавиши со стрелками, которые будут перемещать корабль.

Поясню цифры в комментариях к коду:

  1. Сначала определим публичную переменную, которая будет отображаться в окне "Инспектор". Это скорость, используемая для корабля.
  2. Сохраним движение для каждого кадра.
  3. Используем дефолтную ось, которую можно отредактировать в "Edit" -> "Project Settings" -> "Input". При этом мы получим целые значения между [-1, 1] , где 0 будет означать, что корабль неподвижен, 1 - движение вправо, -1 - влево.
  4. Умножим направление на скорость.
  5. Изменим скорость rigidbody. Это даст движку команду к перемещению объекта. Сделаем это в FixedUpdate() , предназначенном для всего, что связано с физикой.

Теперь добавим скрипт к игровому объекту. Для этого перетащите скрипт из окна "Проект" (Project) на игровой объект в "Иерархии" (Hierarchy). Вы также можете нажать на "Add Component" и добвить его вручную.

Попробуйте настроить скорость: нажмите на игрока, измените значения скорости в "Инспекторе", и посмотрите что из этого получится.

Инспектор для сценария

Будьте осторожны: изменения параметров, сделанные во время, игры теряются, когда вы ее остановите! Инспекторе - это отличный инструмент для настройки геймплея, но запомните или запишите, что вы делали, если хотите сохранить изменения. Этот же трюк подходит, если вы хотете проверить что-то новое, но не хотите вносить изменения в реальный проект.

Первый враг

Теперь добавим неприятелей, стремящихся уничтожить наш корабль. Пусть им будет зловещий спрут, названный "Poulpi":

Poulpi Sprite

Создадим новый спрайт. Для этого:

  1. Скопируйте картинку в папку "Textures".
  2. Создайте новый спрайт, используя это изображение.
  3. Измените свойство "Масштаб" (Scale) в разделе Трансформирование (Transform) на (0.4, 0.4, 1) .
  4. Добавьте "Box Collider 2D" размером (4, 4) .
  5. Add a "Rigidbody 2D" with a "Gravity Scale" of 0 and "Fixed Angles" ticked.

Сохраните префаб и. вуаля!

Спрайт врага в Unity

Скрипт

Теперь напишем простенький скрипт, отвечающий за движение осьминога в определенном направлении. Для этого создайте новый скрипт, назвав его "MoveScript".

Модульность обеспечивается системой на основе компонентов Unity. Это отличный способ отделить друг от друга скрипты с различными функциями. Конечно, вы можете написать один гигантский скрипт с большим количеством параметров. Это ваш выбор, но я настоятельно не рекомендую вам делать это.

Скопируем некоторые части кода, который мы написали в «PlayerScript" для движения персонажа. We will add another designer (a public member you can alter in the "Inspector") variable for the direction:

Прикрепите скрипт к осьминогу. Нажмите "Play" и убедитесь, что спрут движется так, как показано на рисунке ниже:

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

Вы узнали, как добавить игрока, движущегося с помощью клавиатуры. Также, мы создали врага с зачаточным AI. Теперь мы хотим иметь возможность уничтожить его! А для этого, нам нужны боеприпасы, которые мы создадим в следующем уроке 2D игра на Unity. Подробное руководство. Часть 3.


Мы запускаем бесплатные уроки по Unity 3D. Благодаря этому видеокурсу вы научитесь создавать анимацию и разрабатывать игры, узнаете, как сделать телепорт, настроить спавн объектов, вывести полосу жизни персонажа и многое другое.

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

Как скачать и установить Unity 3D (Юнити) на ПК (Windows)

Прежде чем перейти к урокам, установим саму программу.

Урок 2. Как создать телепорт в Unity 3D

Урок 3. Как сделать спавн объектов d Unity 3D

В этом видео мы научимся делать спавн объектов в Unity 3D в пределах камеры или на canvas.

Урок 4. Триггеры в Unity 3D.

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

Урок 5. Как создать таймер в Unity 3D

В этом видео мы разберем, как создать таймер двумя способами: с помощью Coroutine (корутины) и InvokeRepeating.

Урок 6. Перемещение объекта мышью в Unity 3D (Mouse Drag)

Урок 7. Как создать полосу жизней персонажа в Unity 3D (Health bar)

Мы разберем, как создать полосу жизней персонажа (Health bar), чтобы вы могли использовать ее в своих играх.

Урок 8. Как сохранить игру в Unity 3D

В этом видео мы изучим метод PlayerPrefs, который позволит нам сохранить и загрузить игровые данные в Unity 3D.

Урок 9. Как создать игру "Раннер" в Unity 3D за 30 минут

Мы создадим классическую игру "Раннер 2D" (Runner) в Юнити! И заодно вспомним все, что изучали на уроках: запрограммируем движение героя, воспользуемся триггерами, сделаем спавн объектов и др.

Урок 10. Как экспортировать игру из Unity на ПК или Android

В этом видео мы узнаем, как собрать и сохранить (экспортировать) проект для компьютера или телефона.

Урок 11. Как загрузить игру в Play Market?

Хотите загрузить свою игру в Play Market и зарабатывать на ней? Вот вам подробная инструкция:

Урок 12. Как сделать прыжок персонажа в Юнити?

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

Урок 13. Как научить персонажа двигаться в 2D- и 3D-играх?

Прыжки мы изучили, настало время разобраться, как в целом управлять персонажем. Для этого мы покажем, как ввести переменные скорости, поворота, а также движения по вертикали и по горизонтали. Как всегда, новую тему мы изучим на примере 2D- и 3D-проекта.

Урок 14. LineRenderer в Unity 2D

LineRenderer — это рендер линий, который позволяет с легкостью рисовать прямые линии между двумя точками. Мы воспользуемся этим методом в 2D-проекте, напишем два скрипта, которые упростят нам работу.

Урок 15. Как сделать автосимулятор в Unity 3D

Давайте сделаем настоящие гонки в Unity! Для этого мы возьмем модель машины, построим для нее трассу и запрограммируем коробку передач. Наш автомобиль будет передвигаться и менять скорость, а камера будет следовать за ним, как в настоящих гоночных играх!

Плейлист видеоуроков постоянно дополняется, подписывайтесь на канал и следите за обновлениями. Наши видеоуроки выходят на русском языке и полностью бесплатны.

Нужен наставник? Записывайтесь на онлайн-уроки программирования для детей в школе "Пиксель": онлайн-курс по разработке игр на игровом движке Unity 3D.

Читайте также: