참고 : Unity Android #GPS #Foundation
안드로이드 기기에서 위치정보값을 가져오는것을 테스트하기로 한다.
using System;
using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.Android;
public class GpsTest : MonoBehaviour
{
public TextMeshProUGUI[] data = new TextMeshProUGUI[4];
public float delay;
public float maxtime = 5f;
// Start is called before the first frame update
void Start()
{
StartCoroutine(Gps_manger());
}
IEnumerator Gps_manger()
{
if(!Permission.HasUserAuthorizedPermission(Permission.FineLocation))
{
Permission.RequestUserPermission(Permission.FineLocation);
while(!Permission.HasUserAuthorizedPermission(Permission.FineLocation))
{
yield return null;
}
}
if(Input.location.isEnabledByUser)
{
data[3].text = "Gps 장치가 꺼져있음.";
}
Input.location.Start();
while(Input.location.status == LocationServiceStatus.Initializing && delay < maxtime)
{
yield return new WaitForSeconds(1.0f);
delay++;
}
if(Input.location.status == LocationServiceStatus.Failed || Input.location.status == LocationServiceStatus.Stopped)
{
data[3].text = "위치정보를 가져오는데 실패함.";
}
if ( delay >= maxtime )
{
data[3].text = "지연시간 초과.";
}
data[0].text = "위도 :" + Input.location.lastData.latitude.ToString();
data[1].text = "경도 :" + Input.location.lastData.longitude.ToString();
data[2].text = "고도 :" + Input.location.lastData.altitude.ToString();
data[3].text = "위치 정보 수신완료";
yield return new WaitForSeconds(5.0f);
}
빌드 후 문제점이 순차적으로 2개가 나왔다.