Xamarin.AndroidでARCoreのサンプルを動かす
環境
- Windows10 Pro 1903
- Visual Studio 2019
- Visual Studio 2019にXamarin開発ワークロードを追加済み
- ARCore対応端末:Pixel 3a
ソースコードを入手
ARCoreのサンプルをGitHubからcloneします。
サンプルのソースコードはこちら。
必要なのはこのARCoreフォルダ以下だけなので、以下の記事を参考にしてsvnコマンドでダウンロードしてください。 masterブランチのARCoreフォルダです。
サンプルコードをVisual Studioで開く
ダウンロードしたフォルダ内にあるARCore.sln
ファイルをVisual Studioで開きます。
ダブルクリックするだけです。
この時点ではまだビルドが通らない状態です。
必要なファイルをダウンロード
実はこのプロジェクトは、特定のファイルについてはビルド時に指定したバージョンをダウンロードするようになっているため、必要なファイルが存在しません。
そのファイルとは以下の2つです。
- arcore.aar
- obj.jar
ですので、ビルドするためにはこの2つのファイルをダウンロードし、所定のフォルダに保存しておく必要があります。
不足ファイルのダウンロード
GitHubからダウンロードしたARCoreフォルダ内にbuild.cake
というファイルがあります。
ビルドのための設定がここに書かれています。
これを見てみると、まず、8~10行目に2つのファイルのダウンロード先が書かれています。
それぞれ、バージョン1.9とバージョン0.3のファイルのURLが指定されています。
var AAR_VERSION = "1.9.0"; var AAR_URL = string.Format("https://dl.google.com/dl/android/maven2/com/google/ar/core/{0}/core-{0}.aar", AAR_VERSION); var OBJ_VERSION = "0.3.0"; var OBJ_URL = string.Format("https://oss.sonatype.org/content/repositories/releases/de/javagl/obj/{0}/obj-{0}.jar", OBJ_VERSION);
{0}
の部分にそれぞれのファイルのバージョンが入ります。
つまりは以下のURLを表しています。
https://dl.google.com/dl/android/maven2/com/google/ar/core/1.9.0/core-1.9.0.aar https://oss.sonatype.org/content/repositories/releases/de/javagl/obj/0.3.0/obj-0.3.0.jar
ブラウザに上記のURLを入力して、ファイルをダウンロードします。
ダウンロードしたファイルを配置
次にbuild.cake
ファイルの32~42行目には、このbuild.cake
ファイルと同じフォルダにexternals
フォルダを作成し、その中に上記の2つのファイルをダウンロードしてそれぞれarcore.aar
、obj.jar
というファイル名で保存するように指定されています。
var AAR_FILE = "./externals/arcore.aar"; var OBJ_JAR_FILE = "./externals/obj.jar"; if (!DirectoryExists ("./externals/")) CreateDirectory ("./externals"); if (!FileExists (AAR_FILE)) DownloadFile (AAR_URL, AAR_FILE); if (!FileExists (OBJ_JAR_FILE)) DownloadFile (OBJ_URL, OBJ_JAR_FILE);
ということで、build.cake
と同じフォルダにexternals
フォルダを作成し、その中に先程ダウンロードした2つのファイルをそれぞれarcore.aar
、obj.jar
とリネームして保存します。
ARCore ├─externals ├─arcore.aar └─obj.jar
これでビルドが通ります。
実行
実機をつないで配置すると、アプリが起動します。
起動するとカメラからの映像がディスプレイに表示され、画面下には「searching for surface..」と表示されます。
しばらく床などの平らな面を移していると、下のスクリーンショットのように床の一部に光る網目が表示されます。
これがアプリによって認識された平面で、このエリアをタップすると、ドロイドくんが配置されます。
後ろにも回り込めます。
おまけ
Visual Studioに実機を接続して、認識させるには。
ソリューション構成マネージャーで、プロジェクトが配置用に選択されていることを確認してください。
うーん、実機つないでいるけれど表示されないな。
端末のほうでデバッグモードにしなきゃだった!
でた。