スポンサーリンク

UnityでポケモンGoもどきを作りたい(6)Androidアプリで現在地を取得する動画の写経してみる

2019年8月27日

Unity製Androidアプリで、GPS情報を取得したいと思います。以下の動画を写経してみたいと思います。

スポンサードリンク

開発環境

Windows 10 Pro 1803 
Unity Hub 2.1.0
Unity 2019.2.0f1

Unityのインストール方法についてはこちらに記載させていただきました。

どんなゲームを作ろうとしているのか

画面に現在の緯度と経度を表示する

新規Unityアプリの作成

UnityHubを起動し、右上の方の、『新規作成』をクリックして、アプリを作成します。

3Dとし、プロジェクト名は UnityGPS とします。後で、Androidアプリでビルドするときのためにハイフンなどは入れない方がよさそうです。

以下のような画面になります。

Build SettingsをAndroid(600×800)に設定

ツールバーの File > Build Settings… をクリックすると以下の画面になるので、Platformのところで、Android をクリックしたのち、

Switch Platform をクリックします。

Player Settingsウィンドウを閉じます。

GPSスクリプトの作成

Projectタブ内で、右クリック > Create > C# Script で、新規C#スクリプトを作成し、名前をGPS に変更して、ダブルクリックで開きます。

GPS.cs を以下のコードに書き換えます。

(変更前)

(変更後)

テキストオブジェクトの作成

Hierarchyタブ内で Create > UI > Text をクリックして、Textオブジェクトを作成し、適切な位置と文字の大きさを設定します。

Hierarchyタブ内 Main Cameraを選択して、背景を薄い青にしておきます。

UpdateGPSTextスクリプトの作成しMainCameraにアタッチ

Hierarchyタブ内のMain Cameraを選択した状態で、Inspectorタブの、『Add Component』をクリックし、

UpdateGPSText と入力し

New Script をクリックし

Create and Add をクリックします。

すると、Projectタブ内に UpdateGPSText.cs が出来るので、タブるクリックして編集します。

UpdateGPSText.cs を以下のコードに書き換えます。

(変更前)

(変更後)

Hierarchyタブ内の『Text』をMain CameraのInspectorタブ内のところにドラッグ&ドロップする

図のようにやります。

ドラッグ&ドロップ後は、以下のようになります。

GPS.csもMain Cameraにアタッチします。

具体的には、Projectタブ内のGPS.csを、Hierarchyタブ内のMain Cameraにドラッグ&ドロップします。

以下のようになりました。

Androidビルドしてスマホで確認

File > Build Settings をクリックしてBuild Settingsウィンドウを開き、Build をクリックしてapkファイルを作成し、GDrive経由で自分のスマホにインストールします。

作成されたapkファイルをSH-M07にインストールしましたが、現在値は表示されませんでした。。。がっくし。。。Androidのバージョン(Android 8.0.0)とか何かあるのでしょうか。。。

アプリをandroidスマホにインストールした後に権限の許可が必要

途方にくれましたが、ポケモンGoをプレイするときに出てくる、『位置情報をアプリに伝えてよいですか?』という表示がなかったので、『Permission』の問題かなと思ってググってみると、以下のような記事を見つけました。

https://akira-watson.com/android/gps.html
[Android] GPSで位置情報を取得するアプリを作る
2019/8/14
(引用ここから)
テストのみの簡易的な方法: この実装無しでも可能です。(但し、テストのみ) アプリをインストール起動後、「設定」「アプリと通知」から該当アプリにて 「権限」から「位置情報」をOnにすれば、面倒なpermissionのチェクコードが無くても動くことは動きます。
(引用ここまで)

SH-M08 で行うと、以下のようになります。

設定 から、以下のように順にタップしていきます。

今回のアプリである、unitygpsとUnityGPSの位置情報の権限をONにします。

上記により、やっと、緯度と経度が表示されました。

また、前回作成したアプリも、ちゃんと動きました。

東京駅付近に持って行ったところ、ちゃんと以下のように表示されました。

ソースコード

https://github.com/adash333/unity-android-gps/tree/74692d18728a1fc1f1b17fdf3f80269bb736158b

スポンサーリンク