Unity+ARFoundationでiOS用ARサンプルを動かす
1. 開発環境
- MacBook Pro (macOS Catalina 10.15.4)
- Unity 2019.3.7f1
- XCode 11.4
- iPad Pro 11 inch 第2世代 Wi-Fi+Cellular LiDARも搭載!
2. ARFoundationの導入
arfoundation-samples (GitHub)よりクローンを取得します。
ここで紹介する内容は、Update to ARFoundation 4.0.0-preview.1以降あたりのコミット分のクローンとしました。

これをMacのローカルドライブに展開します。ここでは、~/Documents/Unity/arfoundation-samples-masterに展開しました。
3. Unity Project を開きビルド
上で展開した ~/Documents/Unity/arfoundation-samples-masterを Unityで開きます。

AR関係パッケージの確認
まず念の為、ARFoundationで必要なパッケージが導入されているか確認します。[Window]-[Package Manager]を開きます。
赤色で囲んだ、AR関係のpreview.1 - 4.0.0があればOKです。

Bundle Indentifierを変更
[Edit]-[Project Settings...]でプロジェクト設定を開き、その中のPlayerタブを選択します。
Bundle Identifierがそのままでは、このあとのXCodeでのビルドが通らないので、ユニークな識別コードに変更します。

ビルド
[File]-[Build Settings...]でBuild Settingsウインドウを開きます。
Scenes In Buildでビルド対象のシーンを1つ選択します。ここではまずScenes/SimpleAR/SimpleARを選択します。
Platformには、もちろんiOSを選択します。

Buildボタンを押し、XCode用のプロジェクトを書き出すフォルダを指定します。ここでは、このプロジェクトのフォルダの下に iOSという名前のフォルダを作成して指定します。
4. XCodeでビルドとiPadへ転送
上で保存したプロジェクトフォルダiOSの下にARFoundationというフォルダがあり、その中のXCodeプロジェクトファイルUnity-iPhone.xcodeprojをXCodeで開きます。
そして、iPadをMacBookに接続しておきます。
Signingで次の設定を行います。
-
Automatically manage signingをチェック -
Teamには、自分のApple Developper Accountを指定する
デプロイ先のiPadを右上のリストで選んで再生ボタンを押すと、iPadにプログラムが転送されます。
5. iPadでの実行結果
iPadにプログラムが転送されると、しばらくして "Made with Unity"のロゴが表示されてプログラムが起動します。
机と壁にiPadを向けると、なにやら平面を認識した結果がAR表示されました。画面上をタップすると、キューブも表示されました。

6. 今後やってみたいこと
Unityのサンプルプロジェクトには、今回試した"SimpleAR"というシーン以外にもたくさんのサンプルシーンがあります。それらも順次試したいのですが、たくさんあるシーンを「UnityのBuild Settingsで選んではビルド→XCodeでもビルド→iPadへ転送」と繰り返さなければならないので面倒です。シーン選択用のメニューをUnity上で作ってやろうかと思います。
とりあえず3次元情報を取得して認識していそうなサンプルプログラムは動きました。あとはやっぱり、生の3次元点群を取得して、iPadを完全な3Dスキャナとしていろいろ活用したいところです。特にこの新型iPad Pro には LiDARが搭載されているのですから!ソースをこれから詳しく追っていきます。
参考文献
大変参考になりました。ありがとうございます。