Как сделать кнопку рестарта в юнити 2д

Добавил пользователь Morpheus
Обновлено: 05.10.2024

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

  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 поддерживает ввод с клавиатуры, джойстика и гейпада.

Виртуальные оси и кнопки могут быть созданны в Input Manager , и конечные пользователи смогут настраивать ввод с клавиатуры на экране конфигурационного диалогового окна.


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

Virtual Axes

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

Каждый проект при создании содержит следующие оси ввода по умолчанию:

  • Horizontal и Vertical привязаны к w, a, s, d и клавишам направления.
  • Fire1 , Fire2 , Fire3 привязаны к клавишам Control, Option (Alt) и Command соответственно.
  • Mouse X и Mouse Y привязаны к перемещениям мыши.
  • Window Shake X и Window Shake Y привязаны к перемещению окна.

Добавление новых осей ввода

Если вы желаете добавить новые виртуальные оси, перейдите в меню Edit->Project Settings->Input . Здесь вы можете также изменить настройки каждой оси.


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

Свойство: Функция:
Name Имя, используемое для проверки этой оси из скрипта.
Descriptive Name Имя положительного значения, отображаемое на вкладке Input диалогового окна Configuration в автономных сборках.
Descriptive Negative Name Имя отрицательного значения, отображаемое на вкладке Input диалогового окна Configuration в автономных сборках.
Negative Button Кнопка, используемая для смещения значения оси в отрицательном направлении.
Positive Button Кнопка, используемая для смещения значения оси в положительном направлении.
Alt Negative Button Альтернативная кнопка, используемая для смещения значения оси в отрицательном направлении.
Alt Positive Button Альтернативная кнопка, используемая для смещения значения оси в положительном направлении.
Gravity Скорость в единицах в секунду, с которой ось возвращается в нейтральное положения, когда кнопки не нажаты.
Dead Размер аналоговой мертвой зоны. Все значения аналоговых устройств, попадающие в этот диапазон, считаются нейтральными.
Sensitivity Скорость в единицах в секунду, с которой ось движется к заданному значению. Только для цифровых устройств.
Snap Если включено, значение оси будет сбрасываться в ноль при нажатии кнопки в противоположном направлении.
Invert Если включено, Negative Buttons будут выдавать положительные значения, и наоборот.
Type Тип ввода, который будет управлять осью.
Axis Ось подключенного устройства, которая будет управлять этой осью.
Joy Num Подключенный джойстик, который будет управлять этой осью.

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

Использование осей ввода из скриптов

Вы можете запросить текущее состояние из скрипта так:

Это в случае ввода с джойстика и клавиатуры.

Однако изменения осей Mouse и Window Shake показывают, насколько мышь или окно сдвинулись по сравнению с последним кадром. Это значит, что они могут быть больше, чем 1 или меньше, чем –1, когда пользователь быстро двигает мышь.

Можно создавать несколько осей с одним именем. При получении ввода, будет возвращаться ось с наибольшим абсолютным значением. Это позволяет назначить больше одного устройства ввода на одно имя оси. Например, создайте одну ось для ввода с клавиатура и одну ось для ввода с джойстика с одинаковым именем. Если пользователь использует джойстик, ввод будет идти с джойстика, иначе ввод будет идти с клавиатуры. Таким образом, вам не нужно учитывать откуда приходит ввод при написании скриптов.

Названия кнопок

Чтобы назначить кнопку оси, вам необходимо ввести имя кнопки в свойстве Positive Button или Negative Button в окне Inspector .

Keys (Клавиши)

Названия кнопок следуют этому соглашению:

  • Обычные клавиши“: ”a“, ”b“, ”c" …
  • Цифровые клавиши: “1”, “2”, “3”, …
  • Клавиши стрелок: “up”, “down”, “left”, “right”
  • Клавиши цифровой клавиатуры: “[1]”, “[2]”, “[3]”, “[+]”, “[equals]”
  • Клавиши модификаторов: “right shift”, “left shift”, “right ctrl”, “left ctrl”, “right alt”, “left alt”, “right cmd”, “left cmd”
  • Клавиши мыши: “mouse 0”, “mouse 1”, “mouse 2”, …
  • Кнопки джойстика (от любого джойстика): “joystick button 0”, “joystick button 1”, “joystick button 2”, …
  • Кнопки джойстика (от заданного джойстика): “joystick 1 button 0”, “joystick 1 button 1”, “joystick 2 button 0”, …
  • Специальные клавиши: “backspace”, “tab”, “return”, “escape”, “space”, “delete”, “enter”, “insert”, “home”, “end”, “page up”, “page down”
  • Функциональные клавиши: “f1”, “f2”, “f3”, …

Названия, используемые для определения кнопок одни и те же при написании скриптов и в окне Inspector.

Ось может иметь значение от –1 до 1. На нейтральное положение указывает 0. Note also that the keys are accessible using the KeyCode enum parameter.

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


Чтобы создать новую сцену, щелкните правой кнопкой мыши по панели ассетов и выберите Create > Scene.

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

Обычно, когда сцена сменяется от одной к другой, все экземпляры игровых объектов, сценариев и т. д., принадлежащие этой сцене, уничтожаются, а загружаются экземпляры из новой. Другой метод заключается в использовании функции DontDestroyOnLoad (), которая будет поддерживать ссылку на объект при смене сцены, но об этом следует поговорить в другом уроке.

Создание объекта и префаба SceneChanger


Откроем скрипт в Visual Studio и напишем следующий код:


Создание пользовательского интерфейса

В пользовательском интерфейсе у нас будет текстовый объект с указанием названия сцены и кнопка, которая будет изменять сцену.

Итак, щелкните правой кнопкой мыши на вкладке Hierarchy и выберите UI> Panel .

Снова щелкните правой кнопкой мыши на вкладке Hierarchy и выберите UI> Text .

Еще раз щелкните правой кнопкой мыши на вкладке Hierarchy и выберите UI> Button .

Ваш конечный результат должен выглядеть примерно так




Перетащим объект SceneChanger из иерархии в ссылку на объект (выделено красным цветом)


Теперь нужно выбрать функцию (выделено красным). В раскрывающемся списке выберите SceneChanger> ChangeScene (string).

Сейчас нужно добавить сцены в Build Settings в File menu . Это необходимо, так как без этого Unity не распознает cцены, и между ними не произойдет никакого перехода.

Нажмите на кнопку воспроизведения. Нажатие на кнопку в сцене приведет к переходу к другой сцене.

Конечный продукт

В этом уроке вы изучите следующие аспекты разработки игр Unity:

  • настройка 2D проекта в Unity
  • создание префабов
  • кнопки движения и действия
  • работа с физическими столкновениями
  • используя спрайт лист
  • интеграция Dolby Audio API

1. Создайте новый проект Unity


2. Настройки сборки


3. Устройства

Поскольку мы собираемся создать 2D-игру, первое, что нам нужно сделать после выбора целевой платформы, это выбрать размер обложки, которую мы будем использовать в игре. Поскольку Android является открытой платформой, на современном рынке доступен широкий спектр устройств, разрешений экрана и плотности пикселей. Вот некоторые из наиболее распространенных:

  • Samsung Galaxy SIII: 720px x 1280px, 306 ppi
  • Asus Nexus 7 Tablet: 800px x 1280px, 216 ppi
  • Motorola Droid X: 854 x 480 пикселей, 228 ppi

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

4. Экспорт графики


5. Пользовательский интерфейс Unity


6. Игровой интерфейс


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

7. Язык программирования

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

8. 2D Графика

Unity создала себе имя как отличная платформа для создания 3D-игр для различных платформ, таких как Microsoft Xbox 360, Sony PS3, Wii Nintendo, Интернет и различные мобильные платформы.

Хотя всегда можно было использовать Unity для разработки 2D-игр, но до выпуска Unity 4.3 он включал встроенную поддержку 2D. На следующих шагах мы научимся работать с изображениями в качестве спрайтов вместо текстур.

9. Звуковые эффекты

Я буду использовать несколько звуков, чтобы создать отличный звуковой опыт для игры. Звуковые эффекты, используемые в этом руководстве, были получены от as3sfxr и PlayOnLoop .

10. Импорт активов


Прежде чем мы начнем кодировать, нам нужно добавить наши активы в проект Unity. Вы можете сделать это одним из нескольких способов:

  • выберите Импортировать новый актив в меню Активы
  • добавить элементы в папку активов в вашем проекте
  • перетащите активы в окно проекта

11. Создать сцену

Мы готовы создать сцену нашей игры, перетаскивая объекты на панель Иерархия или Сцена .


12. Фон


13 Пол

Пол используется, чтобы не дать нашему главному персонажу упасть после того, как мы добавили физику в игру. Перетащите его из папки Assets и поместите его в сцену, как показано ниже.


14. Напольный коллайдер

Чтобы пол мог определить, когда персонаж касается его, нам нужно добавить компонент Box Box Collider 2D, если быть точным.


15. Кнопка перехода

Мы будем использовать кнопки для управления нашим главным героем в игре. Перетащите и поместите кнопку перехода в сцену и добавьте компонент Circle Collider2D, как показано на предыдущем шаге.


16. Прыжок Звук


Снимите флажок Play on Awake и нажмите маленькую точку справа под значком шестеренки, чтобы выбрать звук, который мы хотим воспроизвести, когда игрок нажимает кнопку. На следующем шаге мы реализуем логику воспроизведения звука, когда игрок нажимает кнопку.

17. Прыжок Скрипт

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

/* Check if the user is touching the button on the Editor, change OSXEditor value if you are on Windows */

Фрагмент кода может показаться пугающим, но на самом деле он довольно прост. Сначала мы получаем ссылку на объект hero , экземпляр класса GameObject , чтобы мы могли использовать его позже. Затем мы определяем, касается ли пользователь кнопки прыжка, и, если это так, добавляют силу к объекту hero . И последнее, но не менее важное: мы играем звук прыжка при нажатии кнопки перехода.

18. Кнопки движения

Шаги для добавления и реализации кнопок перемещения, левой и правой, очень похожи. Начните с размещения кнопок в сцене и добавьте Circle Collider 2D к каждой кнопке, как мы это сделали с кнопкой перехода.


Создайте новый скрипт, прикрепите его к левой кнопке и назовите его MoveLeft . Замените его содержимое следующим фрагментом кода, который содержит метод MoveLeft .

В этом сценарии мы создаем массив элементов, помеченных как Moveable отметим их позже в этом руководстве — чтобы было проще перемещать их все сразу. Чтобы переместить элементы, мы сначала проверяем, касалось ли кнопки, и меняем положение, используя moveSpeed в функции Update . Это так просто.

Создайте другой скрипт, прикрепите его к правой кнопке и назовите его MoveRight . Этот скрипт содержит метод MoveRight и его реализация аналогична MoveLeft метода MoveLeft который мы видели недавно. Мы меняем направление движения, заменяя += moveSpeed на -= moveSpeed . Это переместит сцену в противоположном направлении.

В сценарии MoveRight мы также проверяем, прошел ли игрок уровень.

20. Sprite Sheet



Откройте редактор спрайтов , нажав кнопку ниже и выберите Slice> Automatic .


21. герой

Когда лист спрайтов нарезан и готов к использованию, щелкните стрелку, которая появляется при выборе листа спрайтов, и выберите спрайт для героя, главного героя нашей игры. Поместите его на сцену и добавьте к нему компонент Collider 2D .


22. Герой RigidBody 2D


Установите флажок Фиксированный угол, чтобы герой не мог вращаться в случае столкновения.

23. Звук героя


Подробная информация об аудио компоненте будет отображаться на панели инспектора . Нажмите точку под значком шестеренки и выберите звук удара .


24. Сбор монет

Как и во многих традиционных 2D-платформерах, вы можете собирать монеты в нашей игре. Поскольку мы будем использовать этот объект несколько раз в игре, мы преобразуем его в Prefab, как только добавим все необходимые компоненты.


Перетащите монету из папки Assets и добавьте Collider2D, как мы видели на предыдущих шагах.

25. Монетный звук

Мы играем звук всякий раз, когда наш герой собирает монету. Добавьте компонент Audio Source, как мы видели недавно, и выберите звук монеты из ресурсов проекта.


26. Coin Script & Prefab

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


27. Враг

Давайте не будем забывать врагов игры. Перетащите иллюстрацию для врага из папки Assets и добавьте два компонента Collider 2D, как показано на скриншоте ниже.


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


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

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

28. Кирпичи


29. Конец


30. Dolby Audio Plugin


Давайте улучшим слуховой опыт нашей игры, используя плагин Dolby Audio для Unity. Однако сначала позвольте мне объяснить, почему вы должны использовать плагин Dolby Audio и как он улучшит вашу игру.

Dolby Digital Plus — это передовое аудио решение, встроенное во многие мобильные устройства, включая планшеты. Мобильные приложения могут использовать возможности Dolby Digital Plus через API. Некоторые из преимуществ включают оптимизацию звука, максимизацию громкости и выравнивание громкости. Dolby сделал свой API доступным для нескольких платформ, включая Android и Kindle Fire . В нашей игре мы воспользуемся плагином Dolby Audio для Unity.

Обратите внимание, что плагин для Unity бесплатен и очень прост в интеграции. Другими словами, нет причин не включать его в следующую игру.


Создайте новый скрипт и прикрепите его к объекту, который всегда присутствует в игре, например, к фону или камере. Назовите сценарий Dolby и заполните его следующим фрагментом кода.

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