ARCore Geospatial APIのサンプルを実行する

この開発でARCore Geospatial APIを利用したので、iOSでサンプルを実行する手順をまとめました。

https://twitter.com/machidyo/status/1525009759304564736

Androidもほぼ似た手順ですと書こうかと思ったら、Androidは[こちらの記事](https://zenn.dev/tkada/articles/04b44474149130)が参考になるかと。


# 前提
名前                | バージョン/備考
-------------------|-----------------------------------------------------
Mac                | M1 12.3.1
Unity              | 2021.3.0f1 SILICON版
AR Core Extentions | 1.31.3
Xcode              | 13.3.1 
GCP                | 登録にクレジットカードが必要です。サンプルを動かす程度であれば無料の範囲ですが、自己責任でお願いします。


# 手順
大きく分けて二つです。
1. GCPでの設定
2. Unityでの設定
基本的に公式ドキュメントに沿ってぽちぽちやっていけばできます。

## 1. GCPでの設定
[こちら](https://developers.google.com/ar/develop/unity-arf/geospatial/developer-guide-ios)を参考に、必要なところを抜粋します。
【注意】この方法が簡単なだけで、良い方法というわけではありません。

### 1.1 ARCore API を有効にする
【注意】 細かくいうとARCore Geospatial　APIですが、有効にするのは ARCore API です。`geospatial`と入れても検索にひっかからないので気をつけてください。

1. GCPにログインする
2. [プロジェクトを作成する](https://developers.google.com/ar/develop/unity-arf/geospatial/developer-guide-ios#:~:text=Google%20Cloud%20Platform%20%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)（←をクリックするとプロジェクト作成画面に飛びます、あれば作成不要です）
3. サイドバーで [API とサービス]、[ライブラリ] の順に選択します
4. ARCore APIを検索します    
    ![https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/ddaa31a3-5501-acd2-9368-02a1e3497e1a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/ddaa31a3-5501-acd2-9368-02a1e3497e1a.png)    
5. ARCore APIを選択し、[有効にする] をクリックします。

### 1.2 API Keyを取得する
過去に書いたこちらを[参考](https://qiita.com/matchyy/items/cb397c427fa129a12da4)にしてください。キーはUnityでの設定で利用します。

## 2. Unityでの設定
[こちら](https://developers.google.com/ar/develop/unity-arf/getting-started-extensions)を参考に、必要なところを抜粋します。

1. Build SettingsからiOSにプラットフォームを変更します
2. ARCore Extentionsを追加します
    1. Package Managerを起動します
    2. 左上の＋からAdd package from git URLを選択し、`https://github.com/google-ar/arcore-unity-extensions.git`を入力します。
3. ARCrore、ARkitを追加します
    1. Project Settingを開きます
    2. XR Plugin Managementを選択します
    3. Androidタブを選び、ARCorenにチェックを入れます
    4. iOSタブを選び、ARKitにチェックを入れます
4. ARCore Extentionsを設定します
    1. iOS Support Enalbed にチェックを入れます
    2. iOS Authentication Strategy を API Key に設定し、iOS API Key に1.2で取得したキーを設定します。
    3. Optional Features の Gespatial にチェックを入れます
    4. Android Authentication Strategy のほうで怒られる（エラーが出る）と思うので、iOSと同様に設定します。（Androidビルドしないのであれば、Keylessで大丈夫です）
5. Project Settingsを開きます
    1. Player/Other Settings/Configurationの以下を設定します
        1. Camera Usage Descriptionに `ARためにカメラを使用します` を設定します
        2. Location Usage Desriptionに`このアプリはロケーションデータを使用します`を設定します
6. ARCore ExtensionsのSampleをImportします
    1. Package Managerを起動します
    2. ARCore Extentionsを選択して、Geospatial SampleのImportボタンを押します        
        ![Package_Manager_と_SampleScene_-_GeospatialAPISample_-_iOS_-_Unity_2021_3_0f1__Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/feb8e4ba-3e9e-6d49-3983-12cc3b581899.png)
7. Sampleのビルドと実行
    1. Assets/Samples/ARCore Extentions/1.31.0/Geospatial Sample/Secnes/Geospatial を開きます
    2. Build Settings を開いて、Add Open Scenes を追加します
    3. Buildボタンを押してビルドします。ビルドの出力先は適当な場所を指定してください。
    4. Xcodeでビルドで出力されたxcworkspaceを開いて、実機で実行します
    5. 各許可のダイアログ後に、こんな感じで表示されるはずです。
         <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/6e0c19a4-f64d-b918-b299-d67047ef8a1d.png" width=256 />