Back to Browse

Using GPS on a Mobile Device (Android) in Unity

19.8K views
Aug 27, 2019
6:04

In this video, you'll learn how to access GPS data in an Android device when using Unity. It includes instructions for how to request permissions as well as how to display everything on screen. Here's the code. Since youtube doesnt allow angle brackets, do the following. Change ` to greater than sign. Change ~ to less than sign. using System.Collections; using UnityEngine; using UnityEngine.UI; using UnityEngine.Android; public class GPS : MonoBehaviour { public Text gpsOut; public bool isUpdating; private void Update() { if (!isUpdating) { StartCoroutine(GetLocation()); isUpdating = !isUpdating; } } IEnumerator GetLocation() { if (!Permission.HasUserAuthorizedPermission(Permission.FineLocation)) { Permission.RequestUserPermission(Permission.FineLocation); Permission.RequestUserPermission(Permission.CoarseLocation); } // First, check if user has location service enabled if (!Input.location.isEnabledByUser) yield return new WaitForSeconds(10); // Start service before querying location Input.location.Start(); // Wait until service initializes int maxWait = 10; while (Input.location.status == LocationServiceStatus.Initializing && maxWait ` 0) { yield return new WaitForSeconds(1); maxWait--; } // Service didn't initialize in 20 seconds if (maxWait ~ 1) { gpsOut.text = "Timed out"; print("Timed out"); yield break; } // Connection has failed if (Input.location.status == LocationServiceStatus.Failed) { gpsOut.text = "Unable to determine device location"; print("Unable to determine device location"); yield break; } else { gpsOut.text = "Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude+100f + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp; // Access granted and location value could be retrieved print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp); } // Stop service if there is no need to query location updates continuously isUpdating = !isUpdating; Input.location.Stop(); } }

Download

0 formats

No download links available.

Using GPS on a Mobile Device (Android) in Unity | NatokHD