- 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
 
             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