Уроки по созданию игры в юнити 3д. Использование Unity для разработки приложений

Сегодня я покажу вам как воспользоваться новыми включенными в Unity 2D инструментами, чтобы создавать 2D игры.

Обзор приложения

В этом уроке вы узнаете, как создать создать мобильную 2D игру в Unity. В качестве языка программирования будет использован C#.

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

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

  • создание 2D проекта в Unity
  • ознакомление с интерфейсом Unity
  • создание префаба
  • добавление скриптов к игровым объектам
  • обработка столкновений
  • использование таймеров
  • работа со звуком

Создание проекта в Unity

Загрузите Unity и выберите New Project в меню File меню, чтобы открыть новый диалог проекта. Выберите каталог для вашего проекта и установить настройки по умолчанию для 2D.Open

Настройки

На следующем этапе вы познакомитесь с интерфейсом Unity. Создайте проект на мобильных разработок, щелкнув на Build Settings в меню File и выбрав нужную вам платформу для вашей будующей игры.

В Unity можно создавать игры под iOS, Android, BlackBerry и Windows Phone 8. Поскольку мы собираемся создать 2D игры, первое, что мы должны сделать после выбора платформы, - это выбрать размер картинок, которые мы будем использовать в игре:

  • iPad без Retina: 1024px x 768px
  • iPad с Retina: 2048px x 1536px
  • 3.5" iPhone/iPod Touch без Retina: 320px x 480px
  • 3.5" iPhone/iPod с Retina: 960px x 640px
  • 4" iPhone/iPod Touch: 1136px x 640px

Поскольку Android является открытой платформой, существует множество устройств различными разрешениями экрана и плотности пикселей. Некоторые из наиболее распространенных из них перечислены ниже:

  • Asus Nexus 7 Tablet: 800px x 1280px, 216 ppi
  • Motorola Droid X: 854px x 480px, 228 ppi
  • Samsung Galaxy SIII: 720px x 1280px, 306 ppi

Для Widows Phone и BlackBerry:

  • Blackberry Z10 : 720px x 1280px, 355 ppi
  • Nokia Lumia 520 : 400px x 800px, 233 ppi
  • Nokia Lumia 1520 : 1080px x 1920px, 367 ppi

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


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

Интерфейс Unity

Не забудьте нажать кнопку 2D в панели Scene . Вы также можете изменить разрешение, которое используется для отображения сцены, на панели Game .

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


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

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

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

Если вы хотите программировать на другом языке, то обратитесь к Unity"s Script Reference для изучения.

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

  • выбрать Import New Asset из меню Assets
  • добавить детали в папку assets в проектеt
  • перетащить ассеты в окно проекта

После завершения этого шага, вы должны увидеть ассеты вашего проекта в папке Assets в панели Project .

Создание сцены

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

Фон

Перетащите фон (файл gameBg.png) в панель Hierarchy панели. Затем он должен появиться в панели Scene .

Поскольку вкладка Scene (Сцена) установлена в режим 2D, вы можете выбрать Основную камеру (Main Camera ) в панели Иерархия, при этом вы увидете то, что камера будет отображать. Вы также можете увидеть это переключившись из вкладки Сцена во вкладку Game (Игра). Чтобы вся сцена видна, измените параметр Size (Размер) для Основной камеры на 1.6 в панели Inspector (Инспектор).


Летающая тарелка

Корабль в нашей игре является статическим элементом и игрок с ним никак не взаимодействует. Расположим его в центре сцены, для этого просто ппертащите летательный аппарат из папки Assets, находящейся в панели Project , на вкладку Scene . Точно также как и с НЛО перенесем на сцену сарайчик для наших коровок и расположим его так, как показано на скриншоте:


Коллайдер сарая

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

Выберите сарай в сцене и во в вкладке Inspector нажмите на кнопку Add Component (добавить компонент). Из списка компонентов выберите раздел Physics 2D , а в нем Box Collider 2D . Убедитесь в том, что напротив параметра Is Trigger стоит галочка. Если ее нет - поставьте.


Мы хотим, чтобы наш триггер срабатывал, корова попадала на дверь сарая, поэтому мы должны сделать коллайдер поменьше. Перейдите на вкладку Inspector и измените значения коллайдера напротив Size (высота и ширина коллайдера) и Center (координаты центра коллайдера) так, чтобы он располагался поближе к двери сарая. У меня это получилось примерно так:


Скрипт для обработки столкновений

Настало время написать наш первый код. Нам нужен скрипт, который заставлял бы приложение реагировать на столкновение всякий раз, когда корова входит в сарай. Выберите сарай и нажмите на кнопку Add Component в панели Inspector . Выберите New Script назовите его OnCollision . Незабудьте поменять язык на C#.

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

Using UnityEngine; using System.Collections; public class OnCollision: MonoBehaviour { void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.name == "cow(Clone)") { /* Проиграть крик о помощи */ audio.Play(); /* Уничтожим корову */ Destroy(other.gameObject); } } }

Сниппет реагирует на столкновение между объектами, к которым привязан скрипт, сараем и объектом под именем cow(Clone) - один из экземпляров коровы, префаб которой мы создадим позже. Когда происходит столкновение, проигрывается звук и объект корова разрушается.

Добавляем звук

Для воспроизведения звука, когда корова попадает в сарай, нужно для начала прикрепить этот звук к сараю. Щелкните мышью на сарае во вкладке Hierarchy или на самой сцене (вкладка Scene ), нажмите кнопку Add Component во вкладке Inspector и выберите в разделе Audio пункт Audio Source Audio Source . Теперь нам нужно связать с ним наш звуковой файл. Щелкните на кружочке справа от пункта Audio Clip и выберите звук barn . Снимите галочку напротив Play on Awake

Вы можете увеличить размер значков в пользовательском интерфейсе Unity (Gizmos), нажав на Gizmos в вкладке Scene и отрегулировав положение ползунка.

Космический луч

Перетащите изображение с космическим лучем из вкладки Assets на сцену и добавьте коллайдер к нему (как это делать вы уже знаете). Это необходимо для обнаружения столкновения луча с нерасторопными коровамии. Убедитесь, что переключатель Is Trigger включен.

Скрипт луча

Создайте новый скрипт, повторяя шаги, проделанные ранее. Назовите скрипт Bullet и напишите в нем следующий код:

Using UnityEngine; using System.Collections; public class Bullet: MonoBehaviour { public AudioClip cowSound; // Используется для инициализации void Start() { renderer.enabled = false; /* Делает объект невидимым */ } // Обновлять каждый кадр void Update() { /* Обработка нажатия на правую кнопку мыши или касание экрана */ if (Input.GetButton("Fire1")) { renderer.enabled = true; /* Делает объект видимым */ /* Проиграть звук выстрела из корабля лучем */ audio.Play(); } if (renderer.enabled == true) { transform.position += Vector3.down * (Time.deltaTime * 2); } /* Check for out of bounds */ if (this.transform.position.y

Здесь много кода, но он вовсе не сложный. Давайте посмотрим, что происходит. Сначала мы создаем экземпляр AudioClip под названием cowSound , который мы будем использовать для хранения аудиофайла. Это еще один вариант проигрывания звука, если вы не хотите привязывать к объекту два аудиокомпонента. Мы объявили переменную как публичную, поэтому мы можем получить к ней доступ из вкладки Inspector . Нажмите на маленькую точку справа от cowSound и выберите аудиофайл cowSound .

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

Мы обнаруживаем касания экрана, делаем луч видимым и воспроизводим звук луча (см. ниже). Когла наш луч становится видимым, он начинает двигаться вниз чтобы попасть в корову.

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

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

Добавляем звук для луча


Чтобы добавить звуковое сопровождение к нашему космическому лучу необходимо выбрать во вкладке Hierarchy или Scene наш лучик и нажать на кнопку Add Component во вкладке Inspector . Выберите Audio Source из раздела Audio . Снимите галочку с Play on Awake и нажмите маленькую точку справа от Audio Clip , чтобы выбрать звуковой файл по имени bizzed .

Добавляем корову

Перетащите нашу буренку из панели Assets на вкладку Сцена так, как показано на рисунке ниже:


Rigid Body 2D

Чтобы столкновение было зарегистрировано, вы должны проассоциировать компонент RigidBody2D хотя бы с одним из участвующих в нем объектов. Поскольку корова может столкнуться и с сараем, и с лучом, лучше всего добавить компонент к корове. Выберите нашу Буренку и нажмите на кнопку Add Component (Добавить компонент) во вкладке Inspector (Инспектор). Выберите пункт Physics 2D , а в нем RigidBody2D . Мы только что добавили компонент RigidBody2D . Установите в нем параметр Gravity Scale равным нулю:


Коллайдер коровы

Мы также должны привязать к корове коллайдер (как это делать вы уже знаете), чтобы определять столкновения с сараем и лучом. Не забудьте поставить галочку в чекбоксе Is Trigger в Inspector .

Скрипт движения коровы

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

Using UnityEngine; using System.Collections; public class MoveCow: MonoBehaviour { public Vector3 moveSpeed; public float spawnTime = 2f; public float spawnDelay = 2f; // Используется для инициализации void Start() { moveSpeed = Vector3.left * Time.deltaTime; InvokeRepeating("ChangeSpeed", spawnDelay, spawnTime); } void ChangeSpeed() { moveSpeed = new Vector3(Random.Range(-1, -2), 0, 0) * 0.05f; } // Обновлять каждый кадр void Update() { transform.position += moveSpeed; } }

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

Создаем префаб для коровки

Теперь, когда мы привязали к корове все необходимые компоненты, пора конвертировать ее в префаб.

"Префаб – это GameObject для многократного использования, который хранится в Project View . Префаб может быть вставлен в любое количество сцен, несколько раз. Когда вы добавляете префаб в сцену, вы создаете его экземпляр. Все экземпляры префаба связаны с оригинальным префабом и, по сути, являются его клонами. Независимо от того, сколько копий вы создали для своего проекта, любые изменения, коснувшиеся оригинального префаба, будут применены ко всем его экземплярам".

Для преобразования коровы в префаб, перетащите корову из вкладки Иерархия в панель Assets . В результате название в Hierarchy станет синим.

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

Скрипт Spawner

Скрипт Spawner отвечает за отображение коров. Откройте MonoDevelop или ваш любимый C#-редактор и создайте новый скрипт:

Using UnityEngine; using System.Collections; public class Spawner: MonoBehaviour { public float spawnTime = 2f; public float spawnDelay = 2f; public GameObject cow; // Используется для инициализации void Start() { InvokeRepeating("Spawn", spawnDelay, spawnTime); } void Spawn() { /* Создание экземпляра коровы */ GameObject clone = Instantiate(cow, transform.position, transform.rotation) as GameObject; } }

Мы используем метод InvokeRepeating для клонирования коров с применением значений, установленных для spawnTime и spawnDelay . GameObject cow установлен на значение public и создан с использованием Inspector . Нажмите на маленькую точку справа и выберите префаб коровы.

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

Тестирование

Настало время протестировать нашу игру. Нажмите на Command + P для запуска игры в Unity. Если все работает как надо, вы готовы к заключительному шагу.

Настройки плеера

После успешного тестирования, можно сосредоточиться на настройках плеера. Выберите Build Settings из меню меню File и нажмите на кнопку Player Settings (настройки плеера). Теперь можно настроить параметры для вашего приложения, например Иконку приложения (Icon) или Картинку-заставку (Splash Image), которая показывается при запуске приложения. Используйте графические редакторы чтобы создать красивый значок для вашей игры. Unity покажет в разделе Иконки (Icon) вам необходимые размеры, которые зависят от вашего приложения.


Публикация

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

Xcode

Если вы делаете игры для iOS, вам понадобится Xcode, чтобы скомпилировать конечный двоичный код для приложения. Откройте проект Xcode и выберите Build из меню Product .

Заключение

В этом уроке мы узнали о новых 2D возможностях Unity, обнаружение столкновений и другие аспекты разработки игр под Unity.

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

Как создать игру в Unity

Казуальные игры в жанре match 3 (три в ряд) - одни из самых популярных на рынке. Многие играют в Candy Crush, Bejeweled и прочие. У этих игр простая цель: перемещать мозаичные элементы до тех пор, пока три одинаковых элемента не окажутся рядом. Когда это происходит, совпавшие элементы исчезают, а на их месте появляются другие. Игрок при этом набирает баллы.

В этом руководстве будут освещаться следующее:

  • Создание доски, заполненной мозаичными элементами
  • Выбор и отмена выбора мозаичных элементов
  • Идентификация соседних элементов с помощью raycasts
  • Замена элементов
  • Поиск совпадающих трех и более элементов с помощью raycasts
  • Заполнение пустых элементов
  • Ведение счета и подсчет движений

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

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

Share this article:

Related Articles

В версии Ubuntu 11.04, произошло серьезное изменение в графической среде пользователя, теперь вместо GNOME в его традиционном виде все "крутится" под Unity. Так, что теперь Ubuntu еще больше похожа на Mac OS X.

Пустой рабочий стол Unity:

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

Кроме этого, в меню Dash есть Линзы (Dash Lens). Это переключатели для поиска только в определенных категориях и местах. Можно пролистать все установленные программы если воспользоваться линзой "Программы" :

Существует набор линз для разных предметных областей. Например есть линза "Википедия":

По умолчанию, "из коробки" устанавливаются линзы "Home", "Программы", "Файлы", "Музыка" и "Видео". Дополнительные линзы можно установить через репозиторий Ubuntu или сторонние репозитории.

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

Важное примечание

Относительно Unity нужно знать несколько вещей:

  • Для работы Unity необходимо установить драйвера на видеокарту, которые поддерживают OpenGL, а также движок визуальных эффектов Compiz. В Ubuntu 11.04 Compiz устанавливается автоматически, а подходящий драйвер может не установиться автоматически и в этом случае Ubuntu 11.04 будет загружаться с обычным рабочим столом GNOME.
  • В Ubuntu 11.04 вы можете отказаться от использования Unity и работать в GNOME привычного вида. Для этого нужно всего лишь завершить сеанс пользователя и заново войти в систему выбрав на логин-экране опцию "Ubuntu Классический". Эта опция доступна внизу логин-экрана после ввода имени пользователя (но ее нужно выбрать до ввода пароля!).
  • Если ваша видеокарта не поддерживает OpenGL, можно установить пакет Unity-2d, который рабтает как надстройка над GNOME.

Актуализация 2013

В версии 12.04 П акет Unity-2d устанавливается "из коробки". Для загрузки в облегченном варианте нужно просто выбрать Unity-2d в экране авторизации (до ввода пароля).

Кнопка Dash перемещена из верхней панели в левую боковую панель быстрого запуска ( Launcher). Но физически она осталась почти на том же месте - вверху слева.

Организация интерфейса в Unity

Вверху экрана размещается панель которая содержит (слева направо ) кнопку открытия меню Dash, пространство для меню программ и системный трей.

По левой границе экрана размещается панель с кнопками быстрого запуска приложений, и там же отражаются иконки открытых программ. Иконки в этой панели крупные и это позволит уверенно "нажимать" их пальцем на сенсорном экране.

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

Два этих решения - интеграция меню программ в системную панель и перевод панели задач на левую границу экрана дают больше рабочего пространства по вертикали. Вот снимок экрана, на котором во весь экран раскрыт Наутилус:

Меню Наутилуса размещено в верхней панели Unity. Слева панель быстрого запуска (Launcher) с кнопками для запуска часто используемых программ. По вертикали под Наутилус используется почти все пространство монитора, за исключением 24 пикселей на верхнюю панель Unity.

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

Как пользоваться Unity

Собственно ничего принципиально нового эта оболочка не предлагает. Точно также как и раньше программы запускаются либо кнопками непосредственно с панели быстрого запуска (Launcher) , либо через общее меню Dash. Запущенные программы отображаются в той же панели быстрого запуска, такими же значками, только их значки выделены светлым треугольничком или двумя.

Как вставить кнопку запуска программы в панель быстрого запуска (Launcher) ?

Как удалить кнопку запуска программы из панели запуска?


Настройка Unity

Для того, чтобы изменить настройки Unity нужно установить пакет compizconfig-settings-manager, который по умолчанию не устанавливается. После его установки в Dash можно ввести "ccsm" и появится программа "Менеджер настроек CompizConfig".
В окне программы нужно открыть раздел "Рабочий стол" и там будет виден "Unity".

Актуализация 2013

Теперь есть еще одна программа для настройки интерфейса Unity -MyUnity , пакет для установки так и называется - myunity:

Использование клавиатуры в Unity

Unity еще более, чем классический GNOME, унифицирован с Windows по клавиатурным комбинациям. Теперь нажатие обеих (и правой и левой) клавиш Win дает одинаковый результат.

  • F10 - активизировать трей. Затем можно перемещаться по элементам трея стрелками.
  • Win - открыть меню программ (Dash) с поиском. По мере того как вы вводите буквы в поле, программа выдает вам подходящие варианты. Поиск работает как по английскому языку (оригинальному имени программ) так по русскому - именам ярлыков программ.
  • Alt+Tab - переход между окнами запущенных программ.
  • Win+D - свернуть все окна и освободить рабочий стол. В Ubuntu 11.10 сделали Ctrl+Alt+D.
  • Win+R - диалог "Выполнить", ранее открываемый по Alt+F2. В нем можно вписать однострочную терминальную команду. Есть поиск по истории введенных команд. В Ubuntu 11.10 снова сделали Alt+F2 .
  • Tab или стрелки вверх\вниз\вправо\влево - перемещение в меню.
  • Win+S - показать 4 рабочих стола сразу.
  • Win+Tab - при нажатии этого сочетания на каждой кнопке появляется номер, нажав этот номер на клавиатуре можно запустить\перейти в эту программу. Нужно удерживать нажатой Win до ввода цифры.
  • Ctrl+L - изменить режим адресной строки в Наутилусе с "табов" на текстовый.

Переопределить сочетания клавиш можно через апплет "Клавиатура" и через CompizConfig:

Тюнинг рабочего стола

Во-первых можно использовать "Менеджер настроек CompizConfig" для настроек различных визуальных эффектов.

Во-вторых можно установить дополнительные пакеты, которые реализуют какие-либо функции управления или удобства. Например пакет Glx-Dock (также известный как Cairo-Dock) реализует Dock панель в стиле Mac OS X и эту панель можно использовать для размещения кнопок запуска программ, которые не вмещаются на панели Unity. Выглядит это примерно так:

Для любителей глубоко копнуть

Если ваша программа не отображается в трее, хотя и должна можно попробовать вот такие команды:

gsettings set com.canonical.Unity.Panel systray-whitelist "["all"]"
gsettings set com.canonical.Unity.Panel systray-whitelist "[""]"
gsettings set com.canonical.Unity.Panel systray-whitelist "["имя_вашей_программы"]"

Если вы хотите изменить контекстные меню кнопок из панели запуска то сделать это можно скопировав файл нужной кнопки из папки /usr/share/applications в папку ~/.local/share/applications. Эти файлы имеют расширение.desktop. например nautilus-home.desktop.

Например так:


Name=Изображения
Exec=nautilus Изображения
TargetEnvironment=Unity


Name=Загрузки
Exec=nautilus Загрузки
TargetEnvironment=Unity

Можно еще глубже копнуть:

Или на телефон +7 918-16-26-331 .

Даже небольшая сумма может помочь написанию новых статей:)

Тестируем свежий 2D-kit от Unity и подробно описываем процесс создания нашего первого платформера

Отправить

В середине февраля создатели Unity выпустили 2D-kit — необычное приложение, созданное для всех начинающих игроделов. С его помощью любой желающий может собрать платформер, не утруждаясь долгим написанием кода. Программный код, модели и анимации подготовили разработчики, а вам остается только вникнуть в манипуляции с ними и создать ту игру, о которой вы всегда мечтали (если это, конечно, двухмерный платформер). Мы протестировали 2D-kit, создали собственный уровень и на его примере рассказываем, как быстро освоится с движком и выпустить первую игру.

С чего начать

Если вы ни разу не запускали Unity или, по каким-то причинам, слышите о нем впервые, кратко поясним основы интерфейса. Все окна и вкладки вы можете свободно передвигать в любое удобное для вас место, но изначально они расположены следующим образом: в левой части находится столбик иерархии, который показывает все объекты, находящиеся в сцене; сама сцена располагается в центре, а справа от нее окно инспектора показывает свойства выделенного объекта. Внизу вы увидите меню проекта и материалы, которые ему присвоены. Теперь разберемся с тем, чем отличается 2D-kit от обычного запуска Unity.

В стартовом меню движка у вас будет выбор: начать новый проект или перейти во вкладку обучения, а там запустить загруженный 2D-kit. Выбрав второй вариант, вы увидите вместо пустого полотна материалы игры и сможете творить буквально с двух кликов. Сперва необходимо создать сцену: найдите сверху Kit Tools и выберете вкладку Create New Scene .

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

В меню Window есть вкладка The Palette — это окно кисти, которое позволяет рисовать фундамент. Чтобы перейти к выбору нужной текстуры нажмите на TilesetRockWaterBlockers и выберете TilesetGamekit . Теперь у вас есть два вида кисти: трава и камень, имитирующий инопланетные постройки. Совмещать их, к сожалению, нельзя, так что заранее планируйте уровень в одном стиле или маскируйте шов подручными объектами, вроде кислотного озера.

Создание окружения

Теперь, когда вы нарисовали уровень, можно перейти к его наполнению. Для этого нам понадобятся интерактивные объекты, то есть такие предметы, которые будут двигаться сами по себе и реагировать на действия игрока. Они называются Prefabs и хранятся в одноименной папке меню проекта. Открыв ее, вы увидите новый ворох подчиненных папок — это виды предметов, которые вы вольны использовать.

В первую очередь рекомендуем заглянуть в Interactables — это самый простой вид предметов, которые очень легко располагать и настраивать. Например, там есть «DestructableColumn» — колонна, разрушаемая при ударе жезлом. Мы поставили ее при входе в пещеру. Чтобы добавить ее в свой уровень просто перетащите колонну из папки на сцену. Таким же образом добавляются и другие предметы, такие как «MovingPlatform».

Вы, наверное, заметили, что при добавлении объектов правое окно инспектора сразу заполняется непонятными настройками, а рядом с движущейся платформой еще и путь какой-то красный отметился. Не беспокойтесь, сейчас мы с ними быстро разберемся. На самом деле, большинство иконок, ползунков и цифр вам не пригодится на первом этапе. Главное - заметить кнопочку Add Node в настройках платформы — она добавляет новую точку в пути движения островка. Все точки можно передвигать стрелочками по оси координат. Проблема в том, что изначально платформа двигается по принципу «туда-сюда», а если вы формируете квадрат, то вы, естественно, хотите, чтобы островок двигался по кругу. Для этого в подменю Moving Platform (Script) , там же, где находится Add Node , вам нужно выбрать надпись BACK_FORTH , что и означает «туда-сюда», и сменить ее на LOOP , что означает «по кругу».

Теперь у вас есть движущиеся платформы, как в каком-нибудь Mario . Более того, вы можете их вертеть и увеличивать, выбрав в левом верхнем углу нужный маркер. Чтобы вместе с платформой перемещался какой-нибудь предмет, например, шипы, вам необходимо перетащить его прямиком на платформу в списке иерархии. Уже только на основе этого формируется неплохая игра, но мы пойдем еще дальше.

Теперь добавим в нашу сцену нечто посложнее - злющего NPC. Враги находятся в папке Enemies , которая лежит там же, в Prefabs . Неважно, кого вы кинете на уровень: синего или розового монстра, внимательно присмотритесь к его настройкам. Самая первая - Transform — изменяет положение и размер объекта. Вторая - Sprite Renderer — позволяет его отзеркалить в разных координатах; для этого поставьте галочку рядом с X или Y . И уж совсем далеко внизу находится Enemy Behaviour , которая управляет поведением монстра. Важнейшие строчки в этом окне - это View Fov и View Direction . Первая определяет область зрения врага, а вторая ее вращает. Вы также сможете отрегулировать дистанцию взора в строчке View Distance , просто указав нужное число.

Интерактивные объекты

На этом этапе вы способны создать собственный уровень со скрытыми пещерами, летающими островами и разными типами врагов, и все это без единой строчки кода. Пришла пора усложнить собранную сцену более комплексными, связанными друг с другом, объектами. Мы установим дверь, которая будет открываться благодаря кнопке, расположенной в полу или на стене. Для этого нам понадобится дверь, лежащая в уже знакомой нам папке Interactables , но с ней мы ничего делать не будем. Основная работа пойдет над кнопкой PressurePad , которая и должна открывать путь.

Ее расположение может быть любым; нам важна настройка Pressure Pad (Script) , которая кроется глубоко внизу инспектора. В ней есть маленькое окошко On Pressed () с плюсиком внизу. Этот плюс добавляет реакцию чего бы то ни было в сцене на нажатие кнопки. Поскольку нам надо, чтобы открывалась дверь, то именно дверь и нужно перетащить из окна иерархии в строку под надписью Runtime Only .

Мы связали между собой кнопку и дверь, но пока не определили, какой будет эта связь. Для того чтобы назначить ее нужно зайти в подменю No Function и в том списке, который выпадет при наведении на Animator , выбрать Play (string) . Вуаля! Опробуйте результат, просто нажав на кнопку Play , расположенную над сценой.

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

Связываются точки перехода еще проще, чем дверь с кнопкой. Они находятся в папке Scene Control , которая, как и все прочие папки с объектами, лежит в Prefabs . Там нам понадобится объект TransitionStart , который является точкой перехода. Если вы хотите создать телепорт внутри сцены, то вам понадобится две таких точки, одна из которых обязательно должна быть переименована в TransitionEnd (делается это в верхней строке инспектора).

Наберитесь терпения, потому что сейчас придется плотно поработать с настройками точки отправления, которые называются Transition Point (Script) . Первое поле говорит нам о том, какой объект будет переноситься. Поэтому из иерархии в него нужно перетащить героиню (Ellen ).

Вторая строка отвечает за тип перехода: внутри зоны или вне - это как перелет внутри страны или за границу. Если вы выбрали внутреннее путешествие, то перетащите в новое поле TransitionEnd — так вы укажите куда произойдет переход. Обычно перемещение происходит автоматически, поэтому следующей строкой стоит надпись On Trigger Enter , но вы можете изменить это по своему желанию, как это сделали мы у корабля. Не забудьте также перетащить Ellen в настройки TransitionEnd , иначе чуда не свершится.

Если вы переходите в другую локацию, то вам сперва нужно выбрать ее, а затем уже точку перехода, потому что на уровне их может быть несколько, и все они помечаются буквами в алфавитном порядке. Кстати, местом назначения в другом уровне служит объект под названием TransitionDestination , который находится там же, в Scene Control . Не перепутайте!

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

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

Второй секрет — это оформление. Деревья, трава, столбы, статуи и другие декоративные украшения располагаются в папке Sprites , которая лежит внутри папки Art. В этом нет ничего тайного, но вы можете пополнять библиотеку из магазина Unity или самостоятельно рисуя в Photoshop . Они могут как спрятаться за другими объектами, так и перекрывать их — за это отвечает цифра в строке Order in Layer .

Третий секрет — музыка. Он совсем простой: кидаете свой саундтрек в папку Music , а затем перетаскиваете его в настройки BackgroundMusicPlayer .

И последний секрет — смерть. Если вы строите открытые локации, в которых игрок может запросто упасть со скалы, вам необходимо подготовить для него штраф, а иначе он продолжит бесконечно парить. Лучше всего для этого подходит невидимая смерть. Создайте пустой объект и прикрепите к нему Damager (Script) . Растянув его по всей карте, вы получите ту самую невидимую смерть, от которой игрок будет гибнуть, падая с высоты.

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

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

Надеемся, что наш гайд был вам полезен и сподвиг на создание собственных шедевров!

КАТЕГОРИИ

ПОПУЛЯРНЫЕ СТАТЬИ

© 2024 «kingad.ru» — УЗИ исследование органов человека