本日はMaps SDK枠です。
〇Microsoft MapsSDK forUnity(Maps SKD)とは?
Microsfot Maps SDK for UnityはBingMapの利用してUnityアプリケーション内で地図情報を扱うことができるOSSパッケージ及び、そこで提供されるBingMapのAPIを指します。
筆者自身も以前にコントリビュートしたことがあり、非常に気に入っているパッケージですが、ここ一年触っていなかったためiPhoneでの動作確認を行います。
〇環境
・Mac Mini(M2)
・Unity2022.3.5f1
〇APIキーの取得
MapsSDKを使用するためにはBingのDeveloperサイトからBingMapのキーを取得する必要があります。
①Bing maps Dev Centerにアクセスします。
②サインインを行います。
③My AccountからMy Keysへアクセスします。
ここでは自身のアプリケーションで使用されるAPIキーを一括管理できます。
なお、APIキーは有効期限があります。 以下の例では筆者の有効期限が切れたAPIですが、長期運用する際はUpdateする必要がある点に注意が必要です。
新しいキーを作成して保存します。
〇プロジェクトの作成とMaps SDKのパッケージの導入
今回はiPhone用のARシーンをもとに作成していきます。こちらのシーンについては過去の記事を参照にしてください。
①Finder(エクスプローラー)でUnityプロジェクトのPackageフォルダを開きmanifest.json
内のファイルを書き換えます。
{ "scopedRegistries": [ { "name": "Maps SDK for Unity", "url": "https://unity.virtualearth.net/npm/registry/", "scopes": [ "com.microsoft.maps" ] } ], "dependencies": { "com.microsoft.maps.unity": "0.11.2", ・・・ほかのパッケージ・・・
②Unityのプロジェクトを立ち上げます。
初回起動時のみ画像のようなポップアップが表示されます。
こちらは確認の画面のため特に問題ない場合は閉じてしまって大丈夫です。
以上でMapsSKD for Unityの導入が完了します。
〇シーンの構成とビルド
①からオブジェクトを作成します。ここではMapsという名前をつけています。
②MapRenderer
コンポーネントを追加します。
これによって依存関係にある他のコンポーネントがアタッチされます。
次にAPIキーを入力します。 Microsoft MapsSDK for Unityでは直接入力する方法と外部ファイルから読み込む方法の2つがあります。
後者の場合Gitなどで公開する際にファイル単位でignoreできるためセキュリティ上の利点がありチーム開発などに向いています。
しかし今回はプライベートで使用するアプリのためシーンに埋め込みます。
③Developer Key Scene
をScene
にします。
④Developer Key
にAPIキーを入力します。
これによって地図が表示されるようになります。
URPの場合はマテリアルを設定する必要があります。
⑤manifest.jsonの依存関係に次を加えます。
"com.microsoft.maps.unity.urp": "https://github.com/microsoft/MapsSDK-Unity.git?path=/UPM/com.microsoft.maps.unity.urp",
⑥MapRendere
コンポーネントのUse Custom Terrain Material
をチェックを入れ有効化しPackages/com.microsoft.maps.unity.urp/Runtime/Resources/Materials/UnlitTerrainMaterial-URP-MapsSDK.mat
のマテリアルを追加します。
これによってマップのシェーダーエラーが解消されます。
⑦同様にUse Custom Clipping Volume Material
に Packages/com.microsoft.maps.unity.urp/Runtime/Resources/Materials/ClippingVolumeMaterial-URP-MapsSDK.mat
のマテリアルを指定することでふちのシェーダーエラーが解消します。
⑧MapRenderer
コンポーネントのLatatude
,Longtude
に緯度経度、ZoomLevel
に拡大率を指定します。
これによって都市のマップが表示されます。
以前は東京の地図も立体的に対応していたのですが23年末時点で東京都内の3D立体表示が確認できなくなっております。
以上でプロジェクトの設定が完了しました。
iPhoneで通信を行うためにはinfo.plistというファイルを編集する必要があるようです。
こちらに関しては筆者の理解が浅いので別記事で行っていきます。
本日は以上です。