Unity: Google ARCore SDK

Обучающий проект HelloAR.

Для работы с этим проектом необходимо:
Hardware

  • Устройство, поддерживающее ARCore
  • Дата-кабель USB для подключения устройства к компьютеру

Software

  • Unity 2017.4.34f1 или более поздней версии (Во время установки не забудьте включить опцию Android Build Support )
  • ARCore SDK for Unity 1.16.0 или более поздней версии
  • Android SDK 7.0 (API Level 24) или выше, которую можно установить из SDK Manager в Android Studio

    Android SDK по умолчанию ставится в папку пользователя:
    C:\Users\<USER>\AppData\Local\Android\Sdk

1. Скачиваем проект со страницы проекта ARCore SDK for Unity.
2. Создаём пустой проект
3. Запускаем файл arcore-unity-sdk-1.16.0.unitypackage — он должен автоматически открыться в Unity и нам предложат импортировать его в текущий проект:
Unity: Google ARCore SDK
4. Нажимаем на кнопку Import.
5. Устанавливаем дополнительные пакеты:
WindowPackage ManagerXR Legacy Input HelpersInstall
WindowPackage ManagerMultiplayer HLAPIInstall
6. Загружаем сцену с примером:
Окно ProjectAssetsExamplesHelloARScenesHelloAR
7. Изменим конфигурацию:
FileBuild SettingsAndroidSwitch Platform
8. Зайдём в настройки плеера:
FileBuild SettingsPlayer Settings…
Player SettingsOther SettingsRenderingAuto Graphics API = отключить
Player SettingsOther SettingsRenderingGraphics APIVulkan = удалить
Player SettingsOther Settings ▶ [Identification] ▶ Package Name = com.example.helloAR (любое уникальное название в формате Java package)
Player SettingsOther Settings ▶ [Identification] ▶ Minimum API Level = Android 7.0 ‘Nougat’ (API Level 24) (или выше)
Player SettingsXR SettingsARCore Supported = включить
9. На устройстве включить USB debugging и подключить его USB-кабелем к компьютеру

В какой-то момент у меня вывалилось в лог куча ошибок:

Assets\GoogleARCore\SDK\InstantPreview\Scripts\InstantPreviewManager.cs(33,23): error CS0234: The type or namespace name ‘SpatialTracking’ does not exist in the namespace ‘UnityEngine’ (are you missing an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\AnchorController.cs(32,37): error CS0246: The type or namespace name ‘NetworkBehaviour’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\AnchorController.cs(99,30): error CS0115: ‘AnchorController.OnStartClient()’: no suitable method found to override

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\AnchorController.cs(46,10): error CS0246: The type or namespace name ‘SyncVarAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\AnchorController.cs(46,10): error CS0246: The type or namespace name ‘SyncVar’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\AnchorController.cs(46,18): error CS0246: The type or namespace name ‘hook’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\AnchorController.cs(141,10): error CS0246: The type or namespace name ‘CommandAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\AnchorController.cs(141,10): error CS0246: The type or namespace name ‘Command’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\CloudAnchorsNetworkManager.cs(31,47): error CS0246: The type or namespace name ‘NetworkManager’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\CloudAnchorsNetworkManager.cs(49,46): error CS0246: The type or namespace name ‘NetworkConnection’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\CloudAnchorsNetworkManager.cs(73,49): error CS0246: The type or namespace name ‘NetworkConnection’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\CloudAnchorsNetworkManager.cs(49,30): error CS0115: ‘CloudAnchorsNetworkManager.OnClientConnect(NetworkConnection)’: no suitable method found to override

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\CloudAnchorsNetworkManager.cs(73,30): error CS0115: ‘CloudAnchorsNetworkManager.OnClientDisconnect(NetworkConnection)’: no suitable method found to override

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\LocalPlayerController.cs(30,42): error CS0246: The type or namespace name ‘NetworkBehaviour’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\LocalPlayerController.cs(46,30): error CS0115: ‘LocalPlayerController.OnStartLocalPlayer()’: no suitable method found to override

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\LocalPlayerController.cs(82,10): error CS0246: The type or namespace name ‘CommandAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Assets\GoogleARCore\Examples\CloudAnchors\Scripts\LocalPlayerController.cs(82,10): error CS0246: The type or namespace name ‘Command’ could not be found (are you missing a using directive or an assembly reference?)

Оказалось, что в п.5 помимо перечисленных там пакетов, нужно было доустановить пакет «AR Foundation».

Поскольку мой смартфон Xiaomi Mi5 не входит в список официально поддерживаемых устройств и я с помощью модуля Magisk активировал на нём поддержку ARCore, то при запуске проекта на экране просто высвечивалась подсказка на белом фоне, и изображение с камеры не транслировалось :(
Unity: Google ARCore SDK



Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments