【Unity】mapbox for Unity – 現在地点にマーカーを表示する

OverView

前回 hhttps://www.kemomimi.dev/2019/05/04/unity-mapbox-intro/ にてUnity上でmapboxを使いマップを表示する手順を書きました.
今回はそのマップに現在地点を表示する方法を書きます.

Environment

  • MacOS Mojave 10.14.4
  • Unity 2014.2.14f1
  • mapbox-unity-sdk v2.0.0

Method

mapboxの導入と表示

前回 https://www.kemomimi.dev/2019/05/06/unity-mapbox-show-marker/ のポストを見てください(๑•̀ㅂ•́)و✧

前回の記事を見終わった時点で以下の用になっていると思います.

現在地点にマーカーを表示する

現在画面の中心がAbstract Mapコンポーネントで設定した緯度経度の地点になっているかと思います.
つまりは,その中心点に3DのGameObjectまたは,2DのSpriteでも表示すれば良いということです.

Abstract Mapコンポーネントはありがたいことにしっかりと指定緯度経度をアタッチされているオブジェクトの中心座標に合わせてくれているんですね٩(๑òωó๑)۶

今回Abstract MapコンポーネントがアタッチされていたEmptyObjectのtransform.positionは(0, 0, 0)でしたのでAbstract Mapの緯度経度に設定した地点は(0, 0, 0)になります.


では説明はこの辺にしてヒエラルキーでオブジェクトを作成し,大きさや色を適宜変更しましょう.

今回自分は以下の様に設定しました.

  • Create 3D Object, Cube
  • Transform.position は (0, 0, 0)
  • Transform.Scale は (5, 5, 5)
  • Materialを新規に作成し,Unlit/Color 赤色に

実行

実行してみましょう.Abstract Mapの拡大率(zoom)を適宜変えるとわかりやすいです.

Ex.現在向いている方角とマーカー,マップの向きをリンクさせる

まずスクリプトを作成します.

スクリプトが作成完了したら,適当なゲームオブジェクトにアタッチします.

インスペクターから_rotationTargetにマーカまたはAbstract MapをアタッチしてあるGameObjectを代入することで,コンパスの向きと同期します.

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です