Unity Remote で緯度経度取得しようとしたけど、うまくできなかった人はいないでしょうか?
私は最初はまったので、その対応の記事です。
TL;DR
起動後すぐアクセスするのではなく、少し待ってから!取得するようにしましょう。
はじめに
Unity Remote を導入しようという方は、
Unity Remoteを導入・使用したので覚え書き(Android) が参考になるかと思います。
私もこちらの記事を参考にはじめました。
導入したけど、緯度経度が取得できない人へ
まず以下2点ご確認ください。
- 設定してから、Unity Editor 再起動しましたか?してなかったら一度再起動してみてください。
- 携帯にインストールしたアプリ(Unity Remote 5)に、位置情報の取得を許可していますか?
それでも、緯度経度が取得できない人へ
こんな感じでプログラムしていませんか?
以下プログラムは実機だと動きますが、Unity Remote だと正常に動きません。
void Start()
{
Input.location.Start();
await UniTask
.WaitUntil(() => Input.location.status == LocationServiceStatus.Running)
.Timeout(TimeSpan.FromSeconds(10));
var lat = Input.location.lastData.latitude;
var lng = Input.location.lastData.longitude;
Debug.Log($"{lat}, {lng});
}
最初に少し待ってから! ということでした。。。
(大事なことなので三回目です)
void Start()
{
// ここの5秒待ちが超重要!!!
await UniTask.Delay(5000);
Input.location.Start();
await UniTask
.WaitUntil(() => Input.location.status == LocationServiceStatus.Running)
.Timeout(TimeSpan.FromSeconds(10));
var lat = Input.location.lastData.latitude;
var lng = Input.location.lastData.longitude;
Debug.Log($"{lat}, {lng});
}