Could someone tell me why the GPS location is acquired on Start but is not updated in realtime, please?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GPSLocation : MonoBehaviour
{
// Get start co-ordinates
// Keep current co-ordinates updating
// Measure how much gameObject Map needs to be shifted
// Shift map accordingly
private bool enableByRequest = true;
public int maxWait = 10;
[Header("Position of Tracking Device on Start")]
public Vector2 startPositionCoordinates;
public bool startPositionAcquired = false;
[Header("Actively Updated Tracking Device Location")]
public Vector2 deviceCoordinates;
public float deviceLatitude, deviceLongitude;
[Header("Texts")]
public Text text;
void Update()
{
deviceCoordinates = new Vector2(deviceLatitude, deviceLongitude);
if(startPositionAcquired == false)
{
startPositionCoordinates = new Vector2(deviceLatitude, deviceLongitude);
if(startPositionCoordinates != Vector2.zero)
{
startPositionAcquired = true;
}
}
}
IEnumerator Start()
{
LocationService service = Input.location;
if (!enableByRequest && !service.isEnabledByUser)
{
Debug.Log("Location Services not enabled by user");
yield break;
}
service.Start();
while (service.status == LocationServiceStatus.Initializing && maxWait > 0)
{
yield return new WaitForSeconds(1);
maxWait--;
}
if (maxWait < 1)
{
Debug.Log("Timed out");
yield break;
}
if (service.status == LocationServiceStatus.Failed)
{
Debug.Log("Unable to determine device location");
yield break;
}
else
{
text.text = "Start Location : " + startPositionCoordinates + "\nMy Location: " + service.lastData.latitude + ", " + service.lastData.longitude;
deviceLatitude = service.lastData.latitude;
deviceLongitude = service.lastData.longitude;
CalculateMapPosition();
Debug.Log("Updated GPS Position");
}
}
private void CalculateMapPosition()
{
Debug.Log("Calculating Map position shift");
}
}