Forum Discussion
billfr5150
1 year agoHonored Guest
Using Location Services API in Unity
Has anyone successfully used Unity's Location Services API for Quest 3?
Here's the code that I'm using:
IEnumerator LocationCoroutine()
{
if (!UnityEngine.Android.Permission.HasUserAuthorizedPermission(UnityEngine.Android.Permission.FineLocation)) {
UnityEngine.Android.Permission.RequestUserPermission(UnityEngine.Android.Permission.FineLocation);
}
// First, check if user has location service enabled
if (!UnityEngine.Input.location.isEnabledByUser) {
yield break;
}
// Start service before querying location
Input.location.Start(1f, 1f);
MessageText.text = "<< Connecting to Location Services >>";
// Wait until service initializes
int maxWait = 15;
while (UnityEngine.Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
{
yield return new WaitForSecondsRealtime(1);
maxWait--;
}
// Service didn't initialize in 15 seconds
if (maxWait < 1)
{
MessageText.text = "<< Timed out >>";
yield break;
}
// Connection has failed
if (UnityEngine.Input.location.status != LocationServiceStatus.Running)
{
MessageText.text = "<< Unable to determine device location. Failed with status {0}" + UnityEngine.Input.location.status + " >>";
yield break;
}
else
{
Debug.LogFormat("Location: "
+ UnityEngine.Input.location.lastData.latitude + " "
+ UnityEngine.Input.location.lastData.longitude + " "
+ UnityEngine.Input.location.lastData.altitude + " "
+ UnityEngine.Input.location.lastData.horizontalAccuracy + " "
+ UnityEngine.Input.location.lastData.timestamp);
}
// Stop service if there is no need to query location updates continuously
Input.location.Stop();
StopCoroutine(LocationCoroutine());
}
Replies have been turned off for this discussion
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 1 year ago
- 1 month ago
- 10 months ago