18 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Содержание

Статья в тему:  Как откатить андроид с 5.0 до 4.4.4

Ввод на мобильном устройстве

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

Доступ к клавиатуре на мобильных устройствах обеспечивается через iOS keyboard.

Multi-Touch Screen

iPhone и iPod способны отслеживать до пяти нажатий на экран одновременно. Вы можете получить статус каждого нажатия на протяжении последнего кадра через массив Input.touches.

Android устройства не имеют определенного лимита на количество нажатий, которое можно отслеживать. Он колеблется от устройства к устройству и может варьироваться от одного-двух нажатий на старых устройствах, до пяти нажатий на некоторых новых.

Каждое нажатие пальцем представлено в структуре данных Input.Touch:

Свойство:Функция:
fingerIdУникальный индекс для нажатия.
positionПозиция нажатия на экран.
deltaPositionИзменение позиции на экране с последнего кадра.
deltaTimeКоличество времени, которое прошло с тех пор как изменилось последнее состояние.
tapCountThe iPhone/iPad screen is able to distinguish quick finger taps by the user. This counter will let you know how many times the user has tapped the screen without moving a finger to the sides. Android devices do not count number of taps, this field is always 1.
phaseDescribes so called “phase” or the state of the touch. It can help you determine if the touch just began, if user moved the finger or if they just lifted the finger.

Фазы могут быть следующими:

BeganПалец только что прикоснулся к экрану.
MovedПалец передвинулся по экрану.
StationaryПалец прикоснулся к экрану, но с последнего кадра не двигался.
EndedПалец только что оторван от экрана. Это последняя фаза нажатий.
CanceledThe system cancelled tracking for the touch, as when (for example) the user puts the device to their face or more than five touches happened simultaneously. This is the final phase of a touch.

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

Симуляция Мыши

On top of native touch support Unity iOS/Android provides a mouse simulation. You can use mouse functionality from the standard Input class. Note that iOS/Android devices are designed to support multiple finger touch. Using the mouse functionality will support just a single finger touch. Also, finger touch on mobile devices can move from one area to another with no movement between them. Mouse simulation on mobile devices will provide movement, so is very different compared to touch input. The recommendation is to use the mouse simulation during early development but to use touch input as soon as possible.

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

При движении мобильных устройств, встроенный акселерометр сообщает линейное ускорение изменяется вдоль трех основных осей в трехмерном пространстве. Ускорение вдоль каждой оси сообщается непосредственно аппаратным обеспечением как значение G-Force. Значение 1,0 представляет собой нагрузку около +1г вдоль заданной оси, а величина –1,0 представляет –1g. Если вы держите устройство в вертикальном положении (с кнопкой “домой” внизу) перед собой, ось X (положительная) будет по правой стороне, ось Y (положительная) будет направлена вверх, а ось Z (положительная) будет указывать на вас.

Вы можете получить значение акселерометра, путем доступа к свойству Input.acceleration.

Приведенный ниже пример скрипта позволяет двигать объект, используя акселерометр:

Фильтр низких частот

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

Приведенный ниже скрипт демонстрирует, как применить низкочастотную фильтрацию на показания акселерометра:

Чем больше значение LowPassKernelWidthInSeconds , тем медленнее фильтруется значение, которое будет приближаться к значению входного образца (и наоборот).

Я хочу получить как можно более точные показания акселерометра. Что я должен делать?

Чтение переменной Input.acceleration не означает дискретизацию. Проще говоря, Unity замеряет результат при частоте 60 Гц. и сохраняет его в переменную. На самом деле все немного сложнее — в случае значительной нагрузки на процессор, замеры акселерометра не происходят с постоянными временными интервалами. В результате, система может сделать два замера за один кадр, и один замер за следующий кадр.

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

Как собрать проект Unity для смартфона или планшета

Опишем процесс сборки проекта под платформу Android, которая поддерживается большинством смартфонов.

Для начала сборки необходимо открыть окно Build Settings из пункта меню File -> Build Settings… (или нажать комбинацию клавиш Ctrl + Shift + B):

Окно Build Settings

Шаг 1. Выбор платформы

В окне Build Settings выбрать платформу Android и нажать на кнопку Switch Platform:

Выбор платформы Android

Шаг 2. Проверить и отредактировать (если надо) настройки в в окне Project Settings, в разделе Player:

1) заполнить поля:

Company Name (писать по-английски и лучше без знаков препинания и пробелов),

Product Name (аналогично – по-английски и без специальных символов и пробелов),

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

2) задать изображение для иконки приложения, добавив его в Default Icon.

3) если необходимо, в разделе Resolution and Presentation можно зафиксировать ориентацию приложения: горизонтальное (Landscape) или вертикальное (Portrait):

Ориентация приложения

4) в разделе Other Settings проверить правильность сформированного идентификатора в поле Package Name:

com.Company.ProductName – здесь правильно должны быть записаны компоненты Company и ProductName. При их записи должны быть использованы ТОЛЬКО буквы латинского алфавита, БЕЗ специальных символов и пробелов.
Примечание: в Unity 2019 эти компоненты заполняются автоматически после заполнения полей Company Name и Product Name в самом начале окна Project Settings, в разделе Player (см. п.1).

Например, итоговая строка com.Company.ProductName может получить следующий вид:

Это минимальный набор настроек, которые стоит отредактировать. После этого окно Project Settings можно закрыть.

Шаг 3. Перечислить в окне Build Settings сцены, которые должны попасть в сборку (build) проекта:

Если сцена всего одна, и она открыта в редакторе, можно просто нажать на кнопку Add Open Scenes.

Дополнительные сцены можно перетащить мышью из нужной папки окна Project.

Если в окне Scenes in Build указана не та сцена, её можно выделить мышью и удалить, нажав на клавишу Delete на клавиатуре компьютера.

Шаг 4. Нажать на кнопку Build в правом нижнем углу окна Build Settings, указать папку и имя собираемого файла в формате .apk и нажать на кнопку Сохранить (Save):

Собранный файл .apk переписать на смартфон, открыть его на смартфоне и установить приложение. После этого можно начать тестировать свою мобильную игру или приложение на смартфоне.

Преимущества кроссплатформенной разработки из 2Х миров: интеграция Unity3D и Xamarin

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

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

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

Одной из крайностей при написании программы или ее части является использование языка C/C++, что позволяет добиться значительных показателей производительности, что приведет к увеличению сроков и общей стоимости разработки. Другой крайностью является Web-технологии. В настоящее время интернет-сайты открываются практически на любых современных устройствах с экраном. При этом даже при использовании специализированных оптимизированных библиотек разработчики сталкиваются с крайне низкой производительностью и ограничениями функциональности.

Еще одним решением данной проблемы стал кроссплатформенный проект Mono, представляющий собой свободную реализацию технологии Microsoft.NET Framework от компании Xamarin и поддерживающий язык C#. Производными продуктами которого являются средства разработки мобильных приложений Xamarin.Android, Xamarin.iOS, а также инструмент Xamarin.Forms, который позволяет создавать пользовательский интерфейс, отображающийся на разных устройствах похожим образом.

При этом на рынке игр и интерактивных развлечений одним из лидеров по популярности признан движок Unity3D, который так же поддерживает C#.

Так, для случаев, когда требуется создать классическое интерфейсное приложение скомпилированное под несколько платформ, возможно использование Xamarin и его Xamarin.Forms. При это, если необходимо применение 3D-графики, а также дополненной и виртуальной реальностью, то оптимальным будет использование Unity3D. Работа с 3D-графикой в Xamarin возможна, но значительно сложнее. Разрабатывать интерфейсы в Unity3D также возможно, но функциональность инструментария недостаточна, а плавность и отзывчивость интерфейса ниже. Кроме этого существуют наработки, побуждающие разработчиков работать в одной или другой среде.

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

Начиная с версии Unity3D 2019.3, появилась возможность интегрировать проект в качестве библиотеки в нативные Android и iOS приложения. Однако больший интерес представляет возможность встраивать Unity3D в Xamarin приложение, используя при этом один и тот же Xamarin проект для обоих платформ.

В версиях Unity3D 2019.3+ изменилась структура экспортируемого проекта, как для iOS, так и для Android. Из-за чего весь основной проект заключен в библиотеке unityLibrary и UnityFramework, а для его запуска используется так называемая обертка (Launcher и Unity-iPhone). Особый интерес представляет возможность ее замены на альтернативный Xamarin проект.

Описание пути достижения подобного результата и является основной целью этой статьи.

Предварительная подготовка Unity3D

Для начала нужен Unity3D проект, с самим проектом нужно будет сделать минимум изменений. До внесения изменений желательно убедиться, что приложение работает как нужно. В настройках необходимо выставить Bundle Id для iOS и Android. Также можно выставить Signing Team Id для iOS, это может помочь далее в процессе подписи приложения.

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

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

Подготовим Xamarin проект

Так же как в Unity3D проекте, выставим Bundle Id для iOS и Android. В нашем случае это пустой Xamarin.Forms проект, с одним общим проектом и двумя проектами под iOS и Android соответственно. Добавим в общий проект интерфейс ILaunchActivity содержащий один метод LaunchUnity. А также 2 заглушки LaunchActivity в проекты iOS и Android. Визуально он будет представлять из себя кнопку для запуска Unity3D, нажатие на которую будет вызывать метод LaunchUnity.

Подготовим IOS часть нашего приложения

1. Для начала построим Unity проект под iOS. Открываем проект в xcode, проверяем подписи для целей Unity-iPhone и UnityFramework. Сертификат разработчика должен совпадать с тем, что будет использован при построении приложения.

2. Меняем Target Membership у папки Data на UnityFramework. В папке Data содержаться ресурсы, необходимые Unity3D приложению для работы. Эти ресурсы могут попасть в результирующий проект либо в составе UnityFramework, либо непосредственно могут быть добавлены в финальный проект.

3. Сделаем билд цели UnityFramework в xcode. Возьмем получившийся UnityFramework.framework в Finder и сохраним его.

4. Открываем Xamarin Solution в Visual Studio 2019 for Mac.

5. Создаем новый проект Binding.Unity.Ios (Binding Library), он будет отвечать за взаимодействие с Unity3D. К сожалению, в случае iOS генератор API не реализован, необходимо будет описать API самостоятельно. Добавим туда код биндинга к Unity API. Это 3 cs-файла из корня репозитория.

6. Добавим сохраненный ранее UnityFramework.framework как Native Reference в проект Binding.Unity.Ios и построим проект.

Если в процессе не возникло ошибок добавим Binding.Unity.Ios в зависимости к Main.iOS.

7. Добавим реализацию запуска Unity на iOS платформе.

Часть LaunchActivity.cs:

Console.WriteLine(«Unity launching on ios»);

var currentWindow = UIApplication.SharedApplication.KeyWindow; // сохраним текущее окно, где мы сейчас находимся

var args = Environment.GetCommandLineArgs(); // получим аргументы запуска исходного приложения, их необходимо будет передать Unity3D части

var ufw = UnityFramework.GetInstance(); // получим ссылку на Unity библиотеку

var listener = new MyUnityListener(currentWindow, ufw); // класс будет отвечать за перехват системных событий Unity3D

ufw.SetDataBundleId(«com.unity3d.framework»); // задаем местоположение папки Data, это не нужно, если папка будет добавлена в основной проект

ufw.RegisterFrameworkListener(listener); // регистрируем обработчик системных событий

ufw.RunEmbeddedWithArgc(args.Length, args, new Foundation.NSDictionary()); // запускаем

ufw.ShowUnityWindow(); // и переключаемся на окно Unity3D

Класс MyUnityListener наследуется от UnityFrameworkListener и может переопределить методы UnityDidQuit и UnityDidUnload. Перехват UnityDidUnload позволяет при вызове из Unity метода Application.Unload, перейти в основном приложении на другое окно, например так: currentWindow.MakeKeyAndVisible();

Наш проект также использовал дополненную реальность на стороне Unity3D. Для работы этому функционалу нужен доступ к камере телефона. Это необходимо указать в Info.plist проекта Main.IOS: Privacy – Camera Usage Description = Needed for AR

Проверим настройки подписи Main.IOS и построим основной проект. В результате мы должны получить проект, который по нажатию кнопки в интерфейсе запустит Unity3D часть.

Подготовим Android проект

Построим Unity3D проект для платформы Android, для этого при построении проекта надо выбрать «export project».

Далее нам будет необходимо построить часть этого проекта на Android Studio, как Android AAR библиотеку. Для этого создадим пустой новый проект в Android Studio.

Откроем Settings.Gradle и добавим туда ссылку на UnityLibrary нашего Unity3D проекта:

include ‘:unityLibrary’

project(‘:unityLibrary’).projectDir=new File(‘../unity-app/buildAndroid/unityLibrary’) // путь до unity-app/buildAndroid/unityLibrary

Так как наш проект работает с дополненной реальностью, он использует нативные .aar библиотеки ARCore, как зависимости. Созданный нами Android проект не сможет объединить их с кодом Unity в единый AAR. Поэтому необходимо закомментировать их использование:

// implementation(name: ‘arcore_client’, ext:’aar’)

// implementation(name: ‘ARPresto’, ext:’aar’)

// implementation(name: ‘unityandroidpermissions’, ext:’aar’)

// implementation(name: ‘UnityARCore’, ext:’aar’)

Построим проект UnityLibrary в Android Studio, результатом чего станет файл unityLibrarybuildoutputsaarunityLibrary-debug.aar.

Перейдем в Xamarin, добавим там проект Android Binding Library. В Jars нового проекта добавляем ссылку на полученный ранее AAR как LibraryProjectZip. Строим Binding Library.

В случае Android – код для взаимодействия будет сгенерирован автоматически.
Добавляем binding.unity.android как зависимость в Main.Android.

Добавим код запуска Unity:

Console.WriteLine(«Unity launching on android»);

var intent = new Intent(Forms.Context, typeof(CustomUnityPlayerActivity)); // создаем Intent

Forms.Context.StartActivity(intent); // и запускаем его

Здесь также используется CustomUnityPlayerActivity класс, который помогает там обработать события Unity3D, он наследуется от OverrideUnityActivity (того java-класса, что был добавлен в Unity3D проект). Мы можем переопределить OnUnityPlayerQuitted и OnUnityPlayerUnloaded. В OnUnityPlayerUnloaded мы, аналогично с iOS перейдем на исходное окно.

var intent = new Intent(Forms.Context, typeof(MainActivity));

Forms.Context.StartActivity(intent);

Остается пара мелочей: необходимо добавить в проект ресурс, без которого Unity3D часть не стартует, values/strings.xml с содержимым.

Game view

Также нужно не забыть добавить закомментированные ранее .aar библиотеки ARCore в проект Main.Android как AndroidAarLibrary.

После этого можно построить проект и протестировать его.

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

На данный момент желательно решить несколько задач:

  1. Передача стартовой конфигурации Unity3D части проекта. Сейчас в приложение может быть добавлена только одна Unity3D библиотека, таким образом, если основное приложение будет использовать Unity3D в нескольких разных местах, то необходимо указывать Unity3D части, что ей нужно запустить;
  2. Хотелось бы обеспечить взаимодействие между Xamarin и Unity3D в процессе выполнения;
  3. В текущей реализации на экране либо присутствует UI от Xamarin части, либо Unity3D часть приложения, хотелось бы использовать UI Xamarin и Unity3D одновременно;
  4. Процесс разработки в текущем виде слишком трудоемок. Необходимо вручную строить Unity3D проект, xcode проект, Android проект и только после этого запускать Xamarin приложение. Это необходимо автоматизировать, каким-либо образом.

Краткое руководство. Создание приложения Android в Unity с помощью Пространственных привязок Azure

В этом кратком руководстве показано, как создать приложения Android в Unity с помощью Пространственных привязок Azure. «Пространственные привязки Azure» — это кроссплатформенная служба разработчика, которая позволяет создавать среды смешанной реальности с применением объектов, не меняющих своего расположения на устройствах с течением времени. После завершения вы получите приложение Android ARCore, разработанное с использованием Unity, которое может сохранять и отзывать пространственные привязки.

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

Предварительные требования

В рамках этого краткого руководства вам потребуются:

  • Компьютер Windows или macOS с Unity (LTS), включая Android Build Support с пакетом SDK для Android и средствами NDK, а также модулями OpenJDK. Используйте Unity 2020 LTS с пакетом SDK ASA версии 2.9 или более поздней (использует платформу подключаемых модулей расширенной реальности Unity) или Unity 2019 LTS с пакетом SDK ASA версии 2.8 или более ранней.
    • Если вы используете ОС 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 .
  • Устройство Android с включенным режимом разработчика и поддержкой ARCore.
    • Для взаимодействия компьютера с устройством Android могут потребоваться дополнительные драйверы устройств. Дополнительные сведения и инструкции см. здесь.

Создание ресурса Пространственных привязок

  • Портал
  • Azure CLI
  • Azure PowerShell

В области слева выберите Создать ресурс.

Выполните поиск по запросу Пространственные привязки с помощью поля поиска.

Выберите Пространственные привязки, а затем щелкните Создать.

В области Учетная запись Пространственных привязок выполните следующие действия.

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

Выберите подписку, к которой нужно присоединить ресурс.

Создайте группу ресурсов, нажав Создать. Назовите ее myResourceGroup и нажмите ОК.

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

Выберите расположение (регион), в котором будет размещен ресурс.

Выберите Создать, чтобы начать создание ресурса.

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

Выберите Перейти к ресурсу. Теперь можно просмотреть свойства ресурса.

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

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

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

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

Используйте среду Bash в Azure Cloud Shell.

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

Если вы используете локальную установку, выполните вход в 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 локально:
    • Установите модуль Az PowerShell.
    • Подключитесь к учетной записи Azure с помощью командлета Connect-AzAccount.
  • Если вы используете Azure Cloud Shell:
    • Дополнительные сведения см. в статье Общие сведения об 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:

Скачивание и открытие примера проекта Unity

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

Следуйте приведенным здесь инструкциям, чтобы скачать и импортировать пакеты SDK для ASA, необходимые для платформы Android.

В Unity откройте проект в папке Unity. Unity может уведомить вас о разнице между версией в проекте и версией, установленной на компьютере. Это предупреждение допустимо, если версия Unity Editor новее, чем та, с помощью которой создан проект. В таком случае выберите Continue (Продолжить). Если ваша версия старше, чем требуется проекту, щелкните Quit (Выйти) и обновите Unity Editor.

Откройте Build Settings (Параметры сборки), выбрав пункты File > Build Settings (Файл > Параметры сборки).

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

Закройте окно Build Settings (Параметры сборки).

Настройка сведений об учетной записи

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

В области проект перейдите к AssetsAzureSpatialAnchors.SDKResources .

Выберите 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 выберите Assets -> Reimport all (Ресурсы -> Повторно импортировать все). Затем снова запустите приложение.

Очистка ресурсов

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.

В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.

На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.

Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.

Дальнейшие действия

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

Делаем мобильную игру под android

Многие заинтересовались созданием мобильных игр на *Unity*, в этой статье вы узнаете как это сделать.

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

Начало

Что нам понадобится:

  • Android SDK
  • JDK
  • Возможно сама Java
  • Устройство на Android
  1. После установки всех компонентов, убедитесь что *SDK* работает исправно, для этого в папке *SDK* запустите SDK Manager, если запустилось — вы на верном пути.
  1. В том-же SDK Manager найдите драйвер «google USB driver» и установите его.
  1. Теперь запускаем *Unity* и создаём проект, попутно импортируя архив Standart assets(Mobile).
  1. Переходим в *File* -> Build settings и кликаем по надписи *Android* в списке, затем жмём кнопку «switch platform».
  1. Жмём «player settings». Это настройки вашего проекта. Иконка/Название/Загрузочный экран — всё это находится здесь. Человеку с базовым знанием английского будет легко разобраться, поэтому описывать ничего не буду, однако хотелось бы выделить пару моментов:
  • Minimum API Level: фильтр поддержки устройств.
  • Install location: место, куда будет устанавливаться приложение. Дабы избежать проблем советую поставить «Automatic», таким образом устройство само будет выбирать куда устанавливать — на карту памяти, или на внутреннюю память устройства.
  1. Перейдём непосредственно к проекту. В окне *Project* найдите папку Control setups — здесь находятся сцены с разными видами управления. Выберем *SidescrollSetup*.
  1. Подключите ваше *Android* Устройство через *USB*.
  1. Включите на вашем устройстве отладку по USB.
  1. Перейдите в File -> Build and run. Через пару секунд проект запустится на вашем устройстве.

Unity Remote

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

  1. Установить на устройстве приложение.
  2. Запустить приложение.
  3. Перезапустить Unity.
  4. Запустить сцену.

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

На этом всё. Экспериментируйте, тестируйте, творите!

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector