Как сделать игру на android на unity

Добавил пользователь Владимир З.
Обновлено: 18.09.2024

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

Для начала откроем наш Unity проект и откроем настройки билда:

В появившемся окне нажимаем вкладку Android и нажимаем кнопку для скачивания модуля для компиляции Android приложения:

Закрываем проект (Unity)! Запускаем файл, который мы скачали и нажимаем Далее до посинения. После скачивания теперь у нас активна кнопка "Switch Platform", нажимаем на нее


Unity славен возможностью создавать игры кроссплатформенно. Это действительно круто взять и сделать свою игру и на ПК и на телефон, да еще чтобы и в браузере поиграть. И если с браузером и ПК всё понятно, то у новичков случается ступор при взгляде на сенсорный экран. Там же кнопок нет! И мышки. Цель этого туториала – научить вас работать с сенсорным экраном и создавать разные варианты управления: управление одним касанием, несколькими (телефоны же поддерживают мультитач), а также рассмотрим акселерометр и как считывать с него данные.

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

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

Платформенно зависимая компиляция

Вот хочу создать игру, управлять которой можно и в самом редакторе и на телефоне. Это что же, писать дополнительные скрипты и вешать их на каждый управляемый объект?! Звучит страшно. По счастью, красота кроссплатформенности Unity заключается в том что существуют способы определить с какого девайса идет управление и в зависимости от этого решать как будет идти обработка управления. Такая вещь называется платформенно зависимая компиляция. Она представляет собой директивы препроцессора. Задача этих директив – указать, какие участки кода должны выполняться в зависимости от того, с какой платформы работает приложение. Unity предоставляет инструменты как для определения платформ так и для определения версий с которых запускается код.

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

Важными директивами есть следующие:

  • UNITY_STANDALONE – добавляется для части скриптов, которые выполняются при запуске игры из системы Windows или Linux, или Mac OS X.
  • UNITY_WEBGL – работа с WebGL
  • UNITY_IOS – будет исполняться код для iOS платформы
  • UNITY_ANDROID – директива для платформы Android

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

Итак, как работать с этими директивами препроцессора и платформенно зависимой компиляцией? Синтаксис директив следующий.

Несколько слов о том, где именно использовать эти директивы. Не пишите важный код внутри одной из директив, иначе не скомпилируется. Дело в том, что тот код, который написан внутри условия, допустим UNITY_IOS, никогда не выполнится при запуске в редакторе. Считайте, что вы просто вырезаете из своего исходного кода части – они никогда не выполнятся. И вот если их отсутствие мешает успешной компиляции, то наверняка этим частям кода не место внутри директивы. Итак, если это понятно, то самое время двигаться вперед к управлению с телефона!

Управление с touchscreen

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

Основы

Итак, рассмотрим такой сценарий – необходимо зарегистрировать касание одним пальцем на экране. Сначала посмотрим, как узнать позицию касания, а потом – как зарегистрировать касание по игровому объекту. Приступим.


Помним, что информация о касании записывается в массив. Даже если касание было одно, то у нас всё равно есть массив хоть и состоящий из одного элемента. Тут будет продемонстрирована одна из хороших практик при работе с API. Написание кода таким образом делает его максимально безопасным и читаемым.

Алгоритм состоит из следующий частей:

  1. Зарегистрировать хотя бы одно касание
  2. Сохранить интересующий нас элемент массива
  3. Получить фазу касания экрана и что-то сделать.

И не забываем про директивы и платформенно зависимую компиляцию. Это первое что мы сделаем в коде.


Внутри этой директивы мы имеем право описать управление. Первое – удостовериться,что касание произошло. Input записывает количество касаний в Input.touchCount.

Любые сенсорные экраны могут регистрировать разные данные: фаза касания (начало, движение, окончание), позицию на экране и количество быстрых касаний, а также информацию о поведении (траектория движения и подобное). В примерах будет использоваться имя переменной, которую мы создали в предыдущем этапе, а именно myTouchтипа Touch.

Естественно имя переменной вы можете задавать сами.

  1. Фаза касания: их существует несколько. Найти их можно в свойстве myTouch.phase объекта Touch. Представляют собой перечисление TouchPhase. Варианты такие:
    1. Began – произошло начало касания
    2. Moved – пользователь водит пальцем по экрану
    3. Stationary – пользователь касается экрана, но не меняет положения касания
    4. Ended – касание прекратилось
    5. Canceled – система не может считать касание(например пользователь касается ладонью и невозможно определить количество контактов)

    Пример 1. Получение координат точки на экране, куда пользователь указал в игре.


    Пример 2. Касание по объекту на экране. Тут будет использован Raycast.


    Направление движения

    Мультитач


    Для работы с несколькими точками касания на экране необходимо вспомнить про циклы. Помним, что каждый момент касания фиксируется в массиве, а значит, если пройти по всему массиву циклом, то можно получить информацию о каждом касании. В остальном работа не отличается от касания одним пальцем.
    Input.touchCount – это количество элементов в массиве. Получение объекта по индексу – myTouches[i]. И с этой конструкцией можно работать также как в предыдущем разделе мы работали с элементами Touch.

    Акселерометр

    Мобильные устройства позволяют считывать свое положение в трехмерном пространстве. В Unity для этого существуют методы. Прежде всего нужно разобраться с осями. Если вы возьмете телефон в руки и разместите его вертикально (портретная ориентация), то ось Y будет указывать вверх-вниз, ось X в стороны, а Z будет показывать глубину. Работа с акселерометром на самом деле более чем простая. За это отвечает Input.acceleration, который работает почти также как Input.GetAxis.


    Рассмотрим пример. Заставим объект будет двигаться туда, куда наклонено устройство.

    Бонус

    Небольшой совет о том, как проверять работу приложений. Естественно проверить корректность работы своей системы управления можно только на устройстве. И что же, всё время билдить миллионы версий игры и проверять работу? По счастью, нет, не нужно. Команда Unity позаботилась о своих пользователях выпустив приложение Unity Remote.

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

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

    Андроид-игры на UNITY3D

    А есть ли у вас план?

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

    Вперёд, к покорению виртуальных просторов!

    Теперь можно подумать о том, чтобы запустить игру онлайн, например в Play Store.

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

    Как создавать неигровые приложения в Unity

    Unity – это игровой движок и интегрированная среда разработки, используемые миллионами разработчиков для вывода игр на Android, iOS, Windows, консоли и многие другие платформы. В настоящее время это самый популярный игровой движок на платформе Android благодаря оптимизированному интерфейсу и рабочему процессу, а также богатому набору функций и отличной универсальности.

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

    Причины создания неигровых приложений в Unity

    Как создавать неигровые приложения в Unity

    Зачем вам разрабатывать неигры с помощью Unity, если у вас есть отличная IDE в Android Studio? Есть несколько веских причин.

    Быстрое развитие

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

    Вдобавок к этому Unity использует особенно интуитивно понятный и быстрый пользовательский интерфейс. Во многом это связано с перетаскиванием, и для создания пользовательского интерфейса не требуется знания XML. При создании неигровых приложений в Unity вам нужно будет делать гораздо менее реальное кодирование, и многие вещи, такие как добавление изображения к кнопке или использование пользовательского шрифта, чрезвычайно просты. Так и должно быть, но если вы попробуете что-то из этого с Android Studio, вы обнаружите, что это вызывает головную боль!

    Кросс-платформенная разработка

    Unity – это кроссплатформенный инструмент, а это означает, что вы можете легко создавать приложения для Android, iOS и Windows с минимальными изменениями. Если вы разработчик и хотите охватить максимально широкую аудиторию, это значительное преимущество (хотя справедливо отметить, что другие инструменты, такие как Xamarin, также позволят вам это сделать).

    Мощные функции

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

    Причины не создавать неигровые приложения в Unity

    Как создавать неигровые приложения в Unity

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

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

    Большие размеры приложений

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

    Это заставит некоторых разработчиков отказаться от использования Unity без крайней необходимости. Но на самом деле разница в размерах довольно незначительна и вряд ли существенно повлияет на субъективный пользовательский опыт.

    Отсутствие встроенной поддержки некоторых функций

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

    Хотите создать приложение на языке материального дизайна, которое включает стандартный набор кнопок и текстовых полей и позволяет пользователям делать такие вещи, как отключение Wi-Fi или отправку текста? Вам будет намного проще использовать Android Studio.

    Если для вас это не важно, то Unity все равно стоит рассмотреть.

    Как создать неигровое приложение в Unity: краткое руководство

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

    Использование холста

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

    Для этого перейдите в GameObject> UI> Canvas.

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

    Как создавать неигровые приложения в Unity

    Масштабирование под разные размеры устройств

    Как создавать неигровые приложения в Unity

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

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

    Затем вам нужно будет обрабатывать клики и позволить людям действительно взаимодействовать с созданным вами пользовательским интерфейсом.

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

    Как создавать неигровые приложения в Unity

    Вам также необходимо добавить следующую строку вверху:

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

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

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

    Затем создайте пустой GameObject, в котором будет размещен ваш скрипт, а затем добавьте его в поле с надписью None (Object). К сожалению, вы не можете просто перетащить скрипт сюда, потому что вам нужен экземпляр класса, на который нужно ссылаться. После этого вы можете использовать раскрывающееся меню рядом с этим полем справа, чтобы выбрать метод, который вы хотите активировать. В данном случае это будет MenuControl.Play ().

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

    Еще больше хитростей

    Как создавать неигровые приложения в Unity

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

    Если вы знаете, как использовать Unity для разработки игр, вы можете применить все эти навыки здесь.

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

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

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

    Графическое оформление

    1. Объектные модели;
    2. Функциональные спецификации;
    3. Игровой контент;
    4. Интерфейс.

    Рассмотрим каждый из пунктов более подробно.

    Объектные модели

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

    Функциональные спецификации

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

    Игровой контент

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

    Интерфейс

    Интерфейс – это то, как пользователь будет взаимодействовать с игрой. Он включает в себя кнопки, с помощью которых можно управлять персонажем, и разделы меню: например, играть, счет, настройки, топ игроков, справка. Если вы не имеете опыта в создании приложений на Андроид, перед созданием собственного скачайте с Плей Маркета и проанализируйте популярные игры и перенесите лучшие решения в свой проект.

    Игровой движок

    Основой любой игры является движок. Это программное обеспечение, позволяющее разрабатывать и запускать ее. Он содержит целый комплекс программ, включающий движок рендеринга, физический движок, звук, анимацию и многое другое. Чтобы облегчить процесс написания программ, сторонние разработчики создают собственные игровые движки специально для Андроид-приложений.

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

    Движок игры

    Unreal Development Kit – один из самых мощных движков для создания приложений на ОС Андроид. Для описания программной логики здесь используется скриптовый язык UnrealScrip. На сайте разработчика находится множество уроков, где описываются основные функции, возможности и процесс создания приложений.

    Интерфейс UDK

    Torque 2d/3d

    Движок обладает всеми необходимыми редакторами и средствами отладки. Разрабатывая Torque, программисты уделили большое внимание удобству интерфейса и сделали утилиты очень простыми. На сайте разработчика можно скачать несколько исходников с готовыми играми, которые покажут, как использовать движок наиболее рационально.

    Интерфейс Torque

    Что такое конструктор игр?

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

    Construct 2

    Это один из самых известных конструкторов, который позволяет создавать игры на различных платформах. В программе есть множество различных инструментов и утилит, но она окажется очень легкой в освоении за счет простого интерфейса. Здесь можно создать любую 2D-игру: головоломку, бродилку карточную, квесты и другие. Для создания приложений не нужно приобретать лицензионный ключ, поскольку есть Free-версия, которая является урезанной редакцией с возможностью создания приложений для нескольких платформ. Чтобы открыть полный доступ ко всем возможностям, придется заплатить 129 $.

    Интерфейс Construct 2

    Clickteam fusion

    Clickteam fusion

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

    Clickteam fusion интерфейс

    Stencyl

    Stencyl

    Этот конструктор преимущественно используется для разработки бродилок и стрелялок. Одно из главных достоинств – простой редактор уровней, позволяющий поворачивать, заливать и осуществлять другие манипуляции с объектами и картой в режиме реального времени. Чтобы разработать игру на Андроид самому, пользователю придется заплатить 99 евро, так как бесплатная версия программы позволяет создавать только пиксельные и браузерные игры.

    Интерфейс Stencyl

    Game Maker Studio

    Конструктор позволяет создавать игры различных жанров для Windows, Android и iOS. Предлагает большой выбор готовых локаций, объектов, персонажей и звуковых оформлений, поэтому создание первой Андроид-игры не займет много времени. Пользователи, знакомые с языками программирования JS и C++, могут использовать встроенный GML. Единственный недостаток заключается в том, что программа не переведена на русский язык.

    Внешний вид Game maker studio

    Unity 3d

    Unity 3d

    Через Unity 3d можно создавать игры любого жанра на платформы Windows, Android, iOS, Blackberry, Wii, Playstation и Xbox. Широкое распространение Unity3d обрел среди создателей онлайн игр. Данный конструктор имеет игровой движок, полностью использующий возможности DirectX и OpenGL, редакторы 3D моделей, различные программы для настройки шейдеров, ландшафтов, звуков. Единственный недостаток заключается в том, что здесь нужно писать программный код, поэтому Unity3d не подойдет для пользователей без навыков программирования.

    Внешний вид Unity 3d

    Заключение

    Видео

    Чтобы детальнее ознакомиться с процессом создания Андроид-игр, ознакомьтесь с серией видеороликов, посвященных этому занятию.

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