В приложении для единства я запускаю службу определения местоположения
Input.location.Start(0,0); //tried various other values and default
, а затем постоянно опрашивать его как
Input.location.lastData
и сравните метку времени с меткой времени последнего местоположения, чтобы увидеть изменения.
Unity автоматически запрашивает точный доступ к местоположению, и манифест кажется нормальным.
Проблема в том, что местоположение очень редко обновляется. Может быть целых несколько километров движения и минут времени между новыми локациями.
Если я затем запусту навигацию по Google Maps, которая также использует GPS, мое приложение будет получать новые местоположения GPS очень часто, как и ожидалось.
Кажется, что Unity действительно не включает gps, но кроме запуска, опроса и правильного манифеста, я не вижу, что еще я могу сделать.
Этот минимальный пример показывает медленное обновление. Приложение, содержащее только текст пользовательского интерфейса и работающее в этом режиме, покажет, что местоположение GPS редко обновляется, если только какое-либо другое приложение, например навигация по Google Maps, не использует GPS.
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
public UnityEngine.UI.Text Info;
void Start()
{
Input.location.Start(0.1f, 0.1f);
}
void Update()
{
Info.text =
Input.location.status.ToString() + System.Environment.NewLine +
Input.location.lastData.timestamp.ToString();
}
}