본문 바로가기
개발/C#

유니티 C# 스마트폰 위도, 경도, 고도 받아오기 간단 구현 Location

by SPNK 2023. 8. 13.
반응형
  • 코드 작성
using UnityEngine;

public class LocationManager : MonoBehaviour
{
    private void Start()
    {
        // 위치 서비스가 기기에서 활성화되어 있는지 확인합니다.
        if (!Input.location.isEnabledByUser)
        {
            Debug.LogError("위치 서비스가 활성화되어 있지 않습니다.");
            return;
        }

        // 위치 서비스 업데이트를 시작합니다.
        Input.location.Start();

        // 위치 서비스가 초기화될 때까지 대기합니다.
        int 최대대기시간_초 = 10;
        while (Input.location.status == LocationServiceStatus.Initializing && 최대대기시간_초 > 0)
        {
            최대대기시간_초--;
            Debug.Log("위치 서비스 초기화를 기다리는 중...");
            System.Threading.Thread.Sleep(1000);
        }

        // 위치 서비스 초기화가 실패하거나 대기 시간 초과 시
        if (최대대기시간_초 <= 0 || Input.location.status == LocationServiceStatus.Failed)
        {
            Debug.LogError("위치 서비스 초기화에 실패하였습니다.");
            return;
        }

        // 위도, 경도 및 고도를 가져옵니다.
        float 위도 = Input.location.lastData.latitude;
        float 경도 = Input.location.lastData.longitude;
        float 고도 = Input.location.lastData.altitude;

        // 위도, 경도 및 고도를 활용하여 작업을 수행합니다.
        Debug.Log("위도: " + 위도 + ", 경도: " + 경도 + ", 고도: " + 고도);
    }

    private void OnDestroy()
    {
        // 스크립트가 파괴될 때 위치 서비스를 중지합니다.
        Input.location.Stop();
    }
}
반응형

댓글