Начало разработки под Android
Разработка игр для устройств с Android OS требует подхода, схожего с разработкой под iOS. С другой стороны, аппаратное обеспечение Android-устройств не подчиняется чётким стандартам, что заставляет решать вопросы, которые отсутствуют при работе с iOS. Также присутствуют различия между версиями Unity для Android и iOS.
Подготовка среды разработки для Android
Прежде чем вы сможете протестировать свои игры на устройстве, вам нужно будет подготовить среду разработки. В частности — скачать и установить Android SDK нужной платформы и добавить ваше устройство в систему (этот процесс отличается для Windows и Mac). Об этом подробно написано на сайте Android-разработчиков, а также дополнительную информацию может предоставлять производитель вашего устройства. Так как это достаточно сложный процесс, мы приготовили небольшую инструкцию которая поможет вам подготовить всё необходимое для разработки. Если вам понадобится больше информации, вы сможете получить её на портале Android-разработчиков.
Доступ к функциям Android
Unity предоставляет API для доступа к средствам ввода и настройкам Android. Доступные классы задокументированы на странице Написание кода для Android сборок.
Привязка C, C++ или Java кода к скриптам
Unity позволяет вызывать функции, написанные на C/C++, непосредственно из скриптов (Java-функции могут быть вызваны непрямым способом). Чтобы узнать как из Unity получать доступ к функциям из нативного кода, посетите страницу о сборке плагинов для Android.
Occlusion Culling (отсечение невидимой геометрии)
Unity предоставляет поддержку occlusion culling, что очень полезно при оптимизации для мобильных платформ. Больше информации можно найти на странице Occlusion culling.
Настройка начальной заставки
Заставка, отображаемая при запуске игры, может быть настроена — см. эту страницу для дополнительной информации.
Решение проблем и сообщения об ошибках
Существует множество причин, из-за которых ваше приложение вылетает или не работает должным образом. Наше руководство по решению специфических для Android проблем поможет вам разобраться с причинами ошибок в кратчайшие сроки. Если после прочтения руководства вы предполагаете, что проблема именно в Unity — вам следует составить сообщение об ошибке. Обратитесь к этой странице за инструкциями.
Как Unity для Android отличается от версии для настольных компьютеров
JavaScript со строгой типизацией
Для улучшения производительности в Android-версии Unity динамическая типизация в JavaScript всегда отключена (как если бы к каждому скрипту автоматически применялась #pragma strict). Это важно помнить, если вы переносите на Android проект со старших платформ, и если вы столкнётесь с ошибками компиляции — проблему стоит искать в первую очередь в типизации. С такими ошибками обычно легко справиться, убедившись что типы всех переменных явно указаны или приведёны при инициализации.
ETC — рекомендуемый способ сжатия текстур
Хоть Unity Android и поддерживает DXT/PVRTC/ATC текстуры, Unity распакует текстуры в формат RGB(A) при выполнении, если эти методы сжатия на поддерживаются на конкретном устройстве. Это может серьёзно повлиять на производительность GPU отрисовки, потому рекомендуется использовать формат ETC. Он является фактическим стандартом для Android, и должен поддерживаться всеми современными устройствами. С другой стороны, ETC не поддерживает альфа-канал, и иногда 16-битные RGBA текстуры будут лучшим выбором по критериям качества, размера и скорости рендеринга там, где нужен альфа-канал.
Также возможно создать несколько дистрибутивов игры (apk-файлов) с разными форматами текстур, чтобы Android Market сам предоставлял для каждого устройства наиболее подходящий из дистрибутивов. За подробностями обратитесь к этой странице.
Проигрывание видео.
Видео текстуры (MovieTexture) не поддерживаются на Android, но программно доступно полноэкранное поточное проигрывание. Для дополнительной информации о поддерживаемых форматах файлов и API скриптинга, ознакомьтесь со страницой класса MovieTexture или со страницей поддерживаемых на Android форматах медиа.
Запустите пример приложения: Android — Unity (C#)
В этом кратком руководстве описано, как запустить пример приложения «Пространственные привязки Azure» для Android устройств с помощью Unity (C#). «Пространственные привязки Azure» — это кроссплатформенная служба разработчика, которая позволяет создавать среды смешанной реальности с применением объектов, не меняющих своего расположения на устройствах с течением времени. После завершения вы получите приложение Android ARCore, разработанное с использованием Unity, которое может сохранять и отзывать пространственные привязки.
- создать учетную запись в службе «Пространственные привязки»;
- настроить параметры сборки Unity;
- настроить идентификатор и ключ учетной записи в службе «Пространственные привязки»;
- Экспорт проекта Android Studio
- развертывать и запускать на устройстве Android.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Предварительные требования
В рамках этого краткого руководства вам потребуются:
- Устройство Android с включенным режимом разработчика и поддержкой ARCore.
- Для взаимодействия компьютера с устройством Android могут потребоваться дополнительные драйверы устройств. Дополнительные сведения и инструкции см. здесь.
- Если вы используете Windows, также потребуется Git для Windows и Git LFS.
- Если вы используете macOS, установите Git с помощью Homebrew. Введите в одну строку терминала такую команду: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" . Затем выполните brew install git и brew install git-lfs .
Создание ресурса Пространственных привязок
- Портал
- Azure CLI
- Azure PowerShell
В области слева выберите Создать ресурс.
Выполните поиск по запросу Пространственные привязки с помощью поля поиска.

Выберите Пространственные привязки, а затем щелкните Создать.
В области Учетная запись Пространственных привязок выполните следующие действия.
Введите уникальное имя ресурса, используя обычные буквенно-цифровые символы.
Выберите подписку, к которой нужно присоединить ресурс.
Создайте группу ресурсов, нажав Создать. Назовите ее myResourceGroup и нажмите ОК.
Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (например, веб-приложений, баз данных и учетных записей хранения) и управление ими. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.
Выберите расположение (регион), в котором будет размещен ресурс.
Выберите Создать, чтобы начать создание ресурса.

После создания ресурса на портале Azure отобразится оповещение о завершении развертывания.

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

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

В разделе Параметры выберите элемент Ключ доступа. Скопируйте значение первичного ключа (ключа учетной записи) в текстовый редактор для дальнейшего использования.

Чтобы подготовить среду для Azure CLI, выполните указанные ниже действия.

Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в разделе Запуск Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о дополнительных возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Если появится запрос, установите расширения Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
После входа выполните команду az account set, чтобы выбрать подписку, в которой нужно задать учетную запись пространственных привязок:
Выполните команду az group create, чтобы создать группу ресурсов, или примените существующую группу ресурсов:
Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (например, веб-приложений, баз данных и учетных записей хранения) и управление ими. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.
Вы можете просмотреть текущие учетные записи пространственных привязок для группы ресурсов с помощью команды az spatial-anchors-account list:
Вы также можете просмотреть учетные записи пространственных привязок для своей подписки:
Выполните команду az spatial-anchors-account create, чтобы создать учетную запись пространственных привязок:
Просмотрите свойства ресурса с помощью команды az spatial-anchors-account show:
Скопируйте значение идентификатора учетной записи для ресурса и значение домена учетной записи для ресурса в текстовый редактор (они понадобятся позже).
Выполните команду az spatial-anchors-account key show, чтобы получить первичный и вторичный ключи:
Скопируйте значения ключей в текстовый редактор (они понадобятся позже).
Если необходимо повторно создать ключи, выполните команду az spatial-anchors-account key renew:
Вы можете удалить учетную запись с помощью команды az spatial-anchors-account delete:
Сначала подготовьте среду для Azure PowerShell:
- Если вы используете Azure PowerShell локально:
- Подключитесь к учетной записи Azure с помощью командлета Connect-AzAccount.
- Дополнительные сведения см. в статье Общие сведения об Azure Cloud Shell.
Так как модуль Az.MixedReality в PowerShell предоставляется в предварительной версии, его нужно установить отдельно с помощью командлета Install-Module . Как только этот модуль PowerShell станет общедоступным, он будет включен в один из будущих выпусков модуля Az PowerShell и по умолчанию встроен в Azure Cloud Shell.
После входа воспользуйтесь командлетом Set-AzContext, чтобы выбрать подписку, в которой нужно задать учетную запись пространственных привязок:
Выполните командлет New-AzResourceGroup, чтобы создать группу ресурсов, или воспользуйтесь существующей группой ресурсов:
Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (например, веб-приложений, баз данных и учетных записей хранения) и управление ими. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.
Вы можете просмотреть текущие учетные записи пространственных привязок для группы ресурсов с помощью командлета Get-AzSpatialAnchorsAccount:
Вы также можете просмотреть учетные записи пространственных привязок для своей подписки:
Запустите командлет New-AzSpatialAnchorsAccount, чтобы создать собственную учетную запись пространственных привязок:
Просмотрите свойства ресурса с помощью командлета Get-AzSpatialAnchorsAccount:
Скопируйте значение accountId свойства и значение accountDomain свойства в текстовый редактор (они понадобятся позже).
Выполните командлет Get-AzSpatialAnchorsAccountKey, чтобы получить первичный и вторичный ключи.
Скопируйте значения ключей в текстовый редактор (они понадобятся позже).
Если необходимо повторно создать ключи, используйте командлет New-AzSpatialAnchorsAccountKey:
Удалить учетную запись можно с помощью командлета Remove-AzSpatialAnchorsAccount:
Скачивание примера проекта и импорт пакета SDK
Репозиторий клонов примеров
Клонируйте репозиторий примеров, выполнив следующие команды:
Импорт пакета SDK ASA
Следуйте приведенным здесь инструкциям, чтобы скачать и импортировать пакеты SDK для ASA, необходимые для платформы Android.
Настройка Unity
В Unity откройте проект в папке Unity. Unity может уведомить вас о разнице между версией в проекте и версией, установленной на компьютере. Это предупреждение допустимо, если версия Unity Editor новее, чем та, с помощью которой создан проект. В таком случае выберите Continue (Продолжить). Если ваша версия старше, чем требуется проекту, щелкните Quit (Выйти) и обновите Unity Editor.

Откройте Build Settings (Параметры сборки), выбрав пункты File>Build Settings (Файл > Параметры сборки).
В разделе Platform (Платформа) выберите Android и нажмите Switch Platform (Сменить платформу), чтобы перейти на платформу Android. Если отсутствуют какие-то дополнительные компоненты Android, Unity может запросить их установку.

Закройте окно Build Settings (Параметры сборки).
Настройка сведений об учетной записи
Следующим шагом является настройка приложения для использования данных вашей учетной записи. Вы скопировали значения ключа учетной записи, идентификатора учетной записии домена учетной записи в текстовый редактор, как указано ранее в разделе Создание ресурса Пространственных привязок.
В области проект перейдите к Assets\AzureSpatialAnchors.SDK\Resources .
Выберите SpatialAnchorConfig. В области Инспектор введите Account Key в качестве значения ключа учетной записи Пространственных привязок, Account ID в качестве значения идентификатора учетной записи Пространственных привязок и Account Domain в качестве значения домена учетной записи Пространственных привязок.
Экспорт проекта Android Studio
Откройте Build Settings (Параметры сборки), выбрав пункты File>Build Settings (Файл > Параметры сборки).
В разделе Scenes In Build (Сцены в сборке) убедитесь, что возле всех сцен установлен флажок.
В окне Run Device (Запуск устройства) выберите свое устройство и щелкните Build And Run (Сборка и запуск). Вам будет предложено сохранить файл .apk , для которого можно выбрать любое имя.
В приложении выберите BasicDemo со стрелками, а затем нажмите кнопку Go! для запуска демонстрации. Следуйте инструкциям для размещения и отзыва привязки.



Следуйте инструкциям в программе для размещения и отзыва привязки.
Устранение неполадок
Проблемы отрисовки
Если во время запуска приложения вы не видите камеру как фон (к примеру, вы видите вместо этого пустой, синий фон или фон с другой текстурой), то вам нужно повторно импортировать файлы в Unity. Остановите приложение. В верхнем меню в Unity выберите «Активы» —> «Восстановить все«. Затем снова запустите приложение.
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.
На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.
Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.
Дальнейшие действия
В этом кратком руководстве вы создали учетную запись Пространственных привязок. Затем вы настроили и развернули приложение для сохранения и повторного вызова пространственных привязок. Дополнительные сведения о том, как улучшить приложение таким образом, чтобы оно совместно использовало пространственные привязки с другими устройствами, см. в следующем руководстве.
Использование Unity для разработки приложений
Unity является очень известным движком среди инди-разработчиков. По сути, это кроссплатформенный движок, который позволяет разрабатывать 3D— и 2D-игры. Особенностью, которая выделяет Unity среди остальных движков, является низкий порог вхождения для новичков при наличии богатого инструментария для профессионалов. Кроссплатформенность же позволяет разрабатывать приложения под любую платформу, начиная с десктопных игр и заканчивая мобильными.
Отдельно стоит сказать про систему подписки, поскольку Unity не является полностью бесплатным продуктом. Существует несколько видов подписок:
- Personal. Бесплатная версия, которая содержит все основные функции движка. Имеет следующее ограничение: доход в год или объём привлечённых средств не должен превышать 100000$.
- Plus. За 35 долларов в месяц предоставляются различные отчёты и аналитика, а также возможность изменять заставочный экран, 20%-ая скидка на покупки в Asset Store и различные мелкие преимущества. Имеет следующее ограничение: доход за год или объём привлечённых средств не должен превышать 200000$.
- Pro. За 125 долларов в месяц включает в себя все преимущества версии Plus и дополнительно профессиональный сервис и премиум-поддержку. Без ограничений по обороту или объёму средств.
- Отдельные версии для бизнеса (используются крупными компаниями).
Таким образом, инди-разработчикам с малыми бюджетами должно быть достаточно версии Personal или Plus, в ином случае придётся оформлять подписку Pro. В данной статье воспользуемся бесплатной версией для первого запуска.
Шаг 1. Установка Unity
Для того, чтобы начать установку Unity, нужно перейти на сайт Unity Store, где будет предложено выбрать тип подписки. Как уже говорилось выше, выберем Personal.

Затем будет предложено принять условия использования и загрузить установщик. Также можно ознакомиться с системными требованиями для работы с Unity.

После запуска установщика, будет предложено выбрать, какие компоненты необходимо установить. Поскольку нам нужно создать приложение под Android, поставим флажок на Android Build Support. Также при желании вместо с Unity можно установить Visual Studio Community 2017 для программирования на C#.

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

Затем снова будет предложено выбрать подписку, всё также остановимся на Personal. В этом случае нужно будет подтвердить, что годовой доход компании составляет менее 100000$, либо что Unity используется в целях обучения.

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

Шаг 3. Создание нового проекта
Настроив Unity, мы попадаем на экран выбора\создания проекта. Здесь нужно нажать New, чтобы создать свой новый проект.

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

Закончив с этим, нажмите Create project, чтобы создать проект. После этого откроется окно редактора с заранее сгенерированной сценой.

Не будем пока что разбираться с тонкостями программирования и возьмём для примера готовую игру. Для этого здесь существует Asset Store, который содержит огромное количество готовых моделей, анимаций, звуков (и даже игр), как платных, так и бесплатных.
Чтобы открыть Asset Store, нужно в меню Window выбрать Asset Store (комбинация клавиш Ctrl-9).

Откроется окно магазина. Введём в строке поиска «flappy bird style example game» и откроем бесплатный пример, который мы будем использовать в своём проекте.

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

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

После завершения импорта в обозревателе проекта вы увидите новые файлы. Это и есть файлы игры. Чтобы открыть сцену в редакторе, раскройте Flappy Bird Style — Scenes и дважды кликните по Main.

В результате в окне 3D-редактора появится сцена игры.

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

Шаг 4. Настройка инструментов Android
Примечание: если вы пользуетесь Android Studio, то у вас уже установлены все необходимые компоненты и поэтому можно смело переходить к следующему шагу.
Для того, чтобы собрать получившуюся игру на Android, нужно установить следующие инструменты:
- Java Development Kit (JDK). Скачать его можно с сайта Java. Перейдя по ссылке, вы увидите на самом верху Java Platform (JDK), кликните по Download рядом с надписью, затем выберите вашу операционную систему и начните скачивание. После этого просто следуйте инструкциям инсталлятора.
- Android SDK. Самым простым способом установить актуальную версию является скачивание Android Studio, с которым этот SDK поставляется. Для этого нужно перейти на сайт Android Studio и нажать Download Android Studio. Инсталлятор Android Studio установить базовые компоненты Android SDK, необходимые для разработки на Android.
Шаг 5. Подготовка проекта для запуска
Для начала, необходимо изменить платформу разработки на Android. Для этого в Unity откройте меню File и выберите Build Settings.

В появившемся окне нужно выбрать Android и затем нажать Switch platform.

Переключение платформы сообщает, что мы будем собирать приложение для Android. Это означает, что когда мы будем собирать приложение, Unity будет создавать APK-файл. Переключение платформы также заставляет Unity импортировать все ассеты проект заново. Это не займёт много времени на небольшом проекте, но имейте ввиду, что в больших проектах эта операция может занять длительное время.
Теперь нам нужно указать имя пакета для приложения.
Примечание: Имя пакета — это уникальный идентификатор приложения, он пишется в стиле обратного DNS в формате com.CompanyName.ProductName. После публикации приложения в Google Play имя пакета уже нельзя будет изменить.
Для этого перейдём в меню Edit и выберем Project Settings — Player.

В правой части Unity откроется окно с множеством различных настроек, таких как версия приложения, целевой и минимальный SDK, выбор иконки и т.д. Здесь нам нужно в блоке Other Settings найти Identification и задать имя пакета в поле Package Name. При желании можно также изменить и другие параметры.

Теперь осталось только указать путь до Android SDK и JDK. Для этого перейдём в меню и выберем Edit — Preferences.

В появившемся окне нужно перейти в External Tools и в полях SDK и JDK указать соответствующие пути, после чего закрыть окно.

Шаг 6. Сборка и запуск приложения
Настало время собрать своё первое приложение на Unity. Для этого нужно в меню выбрать File — Build Settings. Откроется окно, в нём нужно будет добавить сцену, которую нужно собрать. Поскольку у нас эта сцена уже открыта в редакторе, достаточно просто нажать Add Open Scenes, чтобы добавить её в сборку, после добавления вы увидите её в списке сцен.

Осталось только нажать Build, после чего Unity приступит к сборке приложения. Перед этим вам может быть предложено выбрать папку, куда будут сохраняться собранные файлы приложений, а также имя APK-файла.
Примечание: на данный момент, если у вас в Android SDK установлена альфа-версия Build-Tools (версия 28.0.0-rc1), при сборке Gradle выдаст ошибку. Чтобы это исправить, просто удалите из Android SDK эту версию.
В результате в папке, которую вы указали, появится собранный APK-файл, готовый к установке на эмуляторе или на реальном устройстве.
Посмотрим, что находится внутри собранного APK. Для этого воспользуемся утилитой APK Analyzer, которая входит в состав Android Studio,

Размер APK-файла в несжатом виде составляет 21,1 MB, в сжатом же 20,9 MB. Как можно увидеть из графика, большую часть объёма занимают сторонние библиотеки, добавленные Unity. Затем в assets расположены все ресурсы, которые используются в собранной сцене. Файл classes.dex содержит всего 89 классов и 479 методов.
Кроме того, если заглянуть в AndroidManifest.xml, приложение состоит из одной активности.
Заключение
На этом всё. В этой статье мы научились устанавливать и настраивать Unity, а также собрали своё первое приложение на Android.
Использование Unity для разработки приложений : 8 комментариев
Какое блин *создание приложений* зачем разводить людей? Пишите сразу КАК СКОПИРОВАТЬ ИГРУ ИЗ АСЕТ СТОР ЮНИТИ! ОБНАГЛЕЛИ! ХОТЕЛ НАУЧИТЬСЯ ДЕЛАТЬ ПРИЛОЖЕНИЯ! А ТУТ: КОПИРУЙ ИЗ АСЕТ СТОР И ВСЁ!
так ты из тех кто придумывает велосипед? ) все по делу, для чайников разжевал автор!
Блять ты конченый по жизни чайник.
Это для примера!
Если такой умный сделай игру RealLife которую никто ни когда не сделает!Автор все верно написал. Программирование на андроид и c# много времени займёт.
Тем более что новичкам лучше, начинать с малого, перегореть можно.
Если все делать самому, как я, скины, текстуры, 3д объекты, это ко времени изготовления +150% времени. Опыт должен быть большой.
Удачи вам.Да норм объяснение.
2 дня сидел и по крупицам выуживал информацию из кучи источников о том, что мне сделать, чтобы в конечном итоге мой «летающий квадрат» оказался в телефоне и вот получилось.
Зашел на этот сайт, пробежался по материалу — всё один в один то, что я проделал. Даже нюансы вроде имени проекта.
Хороший гайд по тому, как впихнуть своё будущее детище в телефон и включить его там.скажите пожайлуста как сделать кнопки,для управления
Загуглите event System там много что сделать можно.
Расскажу коротко.
Создаёте canvas, и в ней кнопку.
При щелчке по кнопке в Обозревателе объектов, в инспекторе появиться описание, листает в самый низ.
Будет пункт onbuttonclik
При нажатие на + надо выбрать чтобы работало в редакторе и программе, найти объект к которому привязан скрипт обработки нажатия, и выбрать скрипт, далее функцию и все.
Кстати многие говорят что без коллайдер работать не будет- это все пруф.Сударь. Вам на примере показали, как создать и перенести из Unity в Android свой проект. Если вы, сударь, не умеете кодить или, хотя бы, блочно создавать объекты с функциями, условиями и событиями, то вам эта статья и не посвящалась. Вы и так не заплатили ни копейки автору, чтоб это почитать, поэтому единственный, кто тут обнаглел — Вы, сударь.