- 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