この記事について
~~全く埋まらない社内アドベントカレンダーを埋めるべく、~~UnityでARアプリを作成しました。
バージョン
参考ページよりバージョンを上げるとエラーが多すぎて対応できなかったので、参考ページとバージョンを合わせています。
- Unity 2019.4.34f1
- ARCore SDK for Unity v1.16.0
作ってみる
プロジェクト作成
必要パッケージのインストール
[Window] -> [Package Manager]を選択します。
Multiplayer HLAPI
とXR Legacy Input Helper
を検索してインストールします。
Multiplayer HLAPIは複数バージョンあるようですが、とりあえず1.0.8をインストールしました。
ARCoreパッケージのインストール
[Assets] -> [Import Package]を選択し、ARCoreパッケージをインストールします。
サンプルシーンを開く
Projectタブで[GoogleARCore] -> [Examples] -> [HelloAR] -> [Scenes]の中にあるHelloAR
を開きます。
ビルド設定
[File] -> [Build Settings]でビルド設定を開く。
Androidを選択して、[Switch Platform]を選択する。
[Player Settings]を選択して、設定を行う。
[Player]を選択し、[Androidタブ(ドロイド君のマーク)] -> [Other Settings]を開く
[Graphics APIs]からVulkan
を削除(選択して、[-]をクリック)
[Minimum API Level]を[Android 7.0 Nougat]に切り替える
[XR Setting]を開いて、[ARCore Supported]にチェックを入れる
ビルド
ビルドして、apkファイルをAndroidにコピーする
結果
Unityでビルドできたのでとりあえず良し!!!
ハマったところ
Unity 2021.2.7f1でビルドすると失敗する
そもそも、Multiplayer HLAPI
とXR Legacy Input Helper
がパッケージマネージャーからインストールできない。
[プロジェクト名] -> [Packages]内のmanifestを修正してインストールしてみたが、作業中に色々とエラーが多発して対処が難しい~~(面倒くさい)~~ので、Unityのバージョンは安定版にしました。
マニフェスト修正は以下を参考にしました。
- https://docs.unity3d.com/ja/2019.4/Manual/com.unity.xr.legacyinputhelpers.html
- https://docs.unity3d.com/ja/2019.4/Manual/com.unity.multiplayer-hlapi.html
- https://qiita.com/ELIXIR/items/4874e491bbbbce0b88ac
[プロジェクト名] -> [Packages] -> manifestを修正するとプロジェクトを開くときにエラーが出る
JSONの書き方間違えました。
Unity 2019.4.34f1でプロジェクトを作成したのに、Unity 2021.2.7f1と挙動が変わらない
プロジェクト作成時にバージョンを忘れました。
Unity 2021.2.7f1だと、Graphics APIが任意に変更できない?
Unity 2021.2.7f1だと、デフォルトで Player Settings の「Auto Graphics API」にチェックが付いてる
apkがインストールできない
信頼できないアプリをインストールできるようにしましょう(端末によって若干操作が異なる)