- Home /
Load notification panel when at a particular location
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Android; using UnityEngine.Serialization;
public class dropplacer : MonoBehaviour
{ public Text gpsOut; public GameObject locationpanel; public GameObject notificationpanel; public float Lat; public float Lon; 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);
if ((Lat== Input.location.lastData.latitude)&&(Lon == Input.location.lastData.longitude))
{
locationpanel.SetActive(true);
notificationpanel.SetActive(false);
}
else
{
locationpanel.SetActive(false);
notificationpanel.SetActive(true);
}
}
// Stop service if there is no need to query location updates continuously
isUpdating = !isUpdating;
Input.location.Stop();
}
}
This is the code am used, It doesn't shows any error but its not working when am build to phone
Your answer
![](https://koobas.hobune.stream/wayback/20220613044907im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Problems entering in Fly Mode 1 Answer
CLLocationManager didstartregionMonitoring not being called 0 Answers
Where is the Unity Web Player located on my hard drive? 2 Answers
Movement In A Mobile Game 2 Answers