Unity iOS/Android를 사용하여 위치 정보 얻기
Unity 공식 위치 정보 가져오기 예제 코드 
Unity 공식 위치 정보 가져오기 예제 코드의 평론 번역은 다음과 같다.
이 코드도 위치 정보를 얻을 수 있지만 유니티의 위치 정보를 관리하는 취득 클래스LocationService는 너무 간단하다. iOS/Android의 위치 정보 취득 가능 상태에 따라 어떤 행동을 하는지 문서에서 알 수 없다. 본 보도는 모바일 컴퓨터에서 그 부근을 확인한다.using UnityEngine;
using System.Collections;
public class TestLocationService : MonoBehaviour
{
    IEnumerator Start()
    {
        // 最初に、ユーザーがロケーションサービスを有効にしているかを確認する。無効の場合は終了する
        if (!Input.location.isEnabledByUser)
            yield break;
        // 位置を取得する前にロケーションサービスを開始する
        Input.location.Start();
        // 初期化が終了するまで待つ
        int maxWait = 20; // タイムアウトは20秒
        while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
        {
            yield return new WaitForSeconds(1); // 1秒待つ
            maxWait--;
        }
        // サービスの開始がタイムアウトしたら(20秒以内に起動しなかったら)、終了
        if (maxWait < 1)
        {
            print("Timed out");
            yield break;
        }
        // サービスの開始に失敗したら終了
        if (Input.location.status == LocationServiceStatus.Failed)
        {
            print("Unable to determine device location");
            yield break;
        }
        else
        {
            // アクセスの許可と位置情報の取得に成功
            print("Location: " + Input.location.lastData.latitude + " "
                               + Input.location.lastData.longitude + " "
                               + Input.location.lastData.altitude + " "
                               + Input.location.lastData.horizontalAccuracy + " "
                               + Input.location.lastData.timestamp);
        }
        // 位置の更新を継続的に取得する必要がない場合はサービスを停止する
        Input.location.Stop();
    }
}
작업 환경 
using UnityEngine;
using System.Collections;
public class TestLocationService : MonoBehaviour
{
    IEnumerator Start()
    {
        // 最初に、ユーザーがロケーションサービスを有効にしているかを確認する。無効の場合は終了する
        if (!Input.location.isEnabledByUser)
            yield break;
        // 位置を取得する前にロケーションサービスを開始する
        Input.location.Start();
        // 初期化が終了するまで待つ
        int maxWait = 20; // タイムアウトは20秒
        while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
        {
            yield return new WaitForSeconds(1); // 1秒待つ
            maxWait--;
        }
        // サービスの開始がタイムアウトしたら(20秒以内に起動しなかったら)、終了
        if (maxWait < 1)
        {
            print("Timed out");
            yield break;
        }
        // サービスの開始に失敗したら終了
        if (Input.location.status == LocationServiceStatus.Failed)
        {
            print("Unable to determine device location");
            yield break;
        }
        else
        {
            // アクセスの許可と位置情報の取得に成功
            print("Location: " + Input.location.lastData.latitude + " "
                               + Input.location.lastData.longitude + " "
                               + Input.location.lastData.altitude + " "
                               + Input.location.lastData.horizontalAccuracy + " "
                               + Input.location.lastData.timestamp);
        }
        // 位置の更新を継続的に取得する必要がない場合はサービスを停止する
        Input.location.Stop();
    }
}
각 OS의 위치 정보에 대한 라이센스 상태 
iOS 및 Android에 대한 각 OS의 위치 정보에 대한 라이센스 상태는 아래에 나와 있습니다.
유니티에서 이 일대는 추상적이다.
iOS
 
LocationService에서 말한 바와 같이 다음과 같은 5가지 상태가 존재한다.
notDetermined
사용자는 응용 프로그램이 위치 정보 서비스를 사용할 수 있는지 선택하지 않았습니다.
이 상태는 위치 정보 확인 대화 상자가 표시되지 않았습니다.
iOS13.2.1의 위치 정보 확인 대화 상자
CLAuthorizationStatus
restricted
응용 프로그램에서 위치 정보 서비스를 사용할 수 없습니다.
사용자는 특별히 위치 정보 서비스 사용을 거부하지 않았지만, 어떤 이유로 사용할 수 없을 때는 반드시 이 상태에 있어야 한다.
"설정 > 프라이버시 > 위치 정보 서비스"에서 위치 정보 서비스를 닫은 경우 이 상태(iOS13.1.2를 통해 확인).
denied
사용자가 응용 프로그램의 위치 정보 서비스 사용을 거부하거나 설정에서 전역적으로 비활성화됩니다.
위치 정보 확인 대화 상자에서 거부 또는 [설정 > 프라이버시 > 위치 정보 서비스] 에서 [없음] 이 상태를 선택합니다.
authorizedAlways
사용자는 응용 프로그램이 언제든지 위치 정보 서비스를 시작할 수 있도록 허용한다.
위치 정보의 확인 대화 상자에서 [항상]을 선택하면 상태가 됩니다.응용 프로그램이 백그라운드에 있어도 응용 프로그램은 위치 정보를 얻을 수 있다.
authorizedWhenInUse
사용자 승인 응용 프로그램은 사용 중에 위치 정보 서비스를 시작합니다.
위치 정보의 확인 대화 상자에서 "사용 중만"을 선택하면 이 상태가 됩니다.응용 프로그램이 프론트 데스크톱인 상태에서만 응용 프로그램이 위치 정보를 얻을 수 있다.
Android
다음 세 가지 상태가 있습니다.
선택되지 않음, 한 번만 거부
사용자는 응용 프로그램에서 위치 정보를 사용할 수 있는지 선택하지 않았습니다.
또는 응용 프로그램에서 위치 정보를 사용할 수 없습니다.
이 상태는 위치 정보 확인 대화 상자가 표시되지 않았습니다.
또는 위치 정보에 대한 확인 대화 상자에서 거부된 상태를 선택합니다.
 를 호출하면 PermissionChecker.checkSelfPermission (라이센스 없음) 반환됩니다.
 를 호출하면 PermissionChecker.checkSelfPermission (라이센스 없음) 반환됩니다.Activity.requestPermissions
허락
사용자는 응용 프로그램에서 위치 정보 서비스를 사용할 수 있습니다.
위치 정보에 대한 확인 대화 상자에서 라이센스가 선택된 상태입니다.
 를 호출하면 PermissionChecker.checkSelfPermission (라이센스됨) 로 돌아갑니다.
 를 호출하면 PermissionChecker.checkSelfPermission (라이센스됨) 로 돌아갑니다.거부하다
응용 프로그램에서 위치 정보를 사용할 수 없습니다.
위치 정보에 대한 확인 대화 상자에서 향후 표시되지 않음을 선택한 상태입니다.
Activity. onRequestPermissionsResult
위치 정보를 얻을 수 있는 모든 동작 정보 
LocationService.isEnabledByUser
 
 
 
사용자가 위치 정보 서비스를 사용할지 여부입니다.
iOS
 
'설정 > 프라이버시 > 위치 정보 서비스'에서 위치 정보 서비스를 닫을 때 가짜로 돌아갑니다.
위치 정보 허용 여부와 무관합니다.
상태
LocationService.isEnabledbyUser의 반환 값
notDetermined
true
restricted
false
denied
true
authorizedAlways
true
authorizedWhenInUse
true
Android
 
상태
LocationService.isEnabledbyUser의 반환 값
선택되지 않음, 한 번만 거부
false
허락
true
거부하다
false
LocationService.Start
 
LocationService.isEnabledByUser 
위치 정보 서비스의 업데이트를 시작합니다.
호출 LocationService.Start 후 LocationService.Start 이 LocationService.status 이면 LocationServiceStatus.Running 에서 위치 정보를 얻을 수 있습니다.
iOS
 
상태
LocationService.호출된 비헤이비어 시작
notDetermined
위치 정보의 확인 대화 상자를 표시합니다.
restricted
위치 정보를 사용할 수 있도록 위치 정보 서비스를 엽니다.LocationService.status는 Failed입니다.
denied
LocationService.status는 Failed입니다.
authorizedAlways
LocationService.status는 Running입니다.
authorizedWhenInUse
LocationService.status는 Running입니다.
위치 정보의 확인 대화 상자에서 라이센스를 선택한 경우 LocationService.status 는 Running 입니다.
위치 정보 서비스 열기 대화 상자
LocationService.lastData 
Android
 
상태
LocationService.호출된 비헤이비어 시작
선택되지 않음, 한 번만 거부
위치 정보의 확인 대화 상자를 표시합니다.LocationService.status는 Stopped, 허가를 선택할 때 LocationService.isEnabledByUser 진실로 유지됩니다.
허락
LocationService.status는 Running입니다.
거부하다
LocationService.status는 Stopped입니다.
위치 정보의 확인 대화 상자에서 라이센스를 선택하더라도 LocationService.isEnabledByUser 실제 상태는 변경되지 않습니다.
위치 정보를 얻은 경우 다시 호출해야 합니다LocationService.status.
LocationService.Stop
 
 
 
위치 정보 서비스의 업데이트를 중지합니다.
iOS/Android
 LocationService.Start은LocationService.status입니다.Stopped의 값이 더 이상 업데이트되지 않습니다.
총결산 
LocationService.lastData만 봐도 "설정 > 프라이버시 > 위치 정보 서비스"가 켜져 있는지 꺼져 있는지 알 수 있습니다 LocationService.isEnabledByUser의 행동으로만 판정할 수 있다.LocationService.Start 시 OS에 위치 정보를 얻을 수 있는 대화 상자가 표시됩니다.LocationService.Start를 보면 안드로이드가 응용 프로그램의 위치 정보를 얻을 수 있는지 알 수 있다LocationService.isEnabledByUserfalse인 경우), 위치 정보 허가 대화상자를 표시할지 여부를 미리 알 수 없습니다.호출LocationService.isEnabledByUser 시 OS에 위치 정보를 얻을 수 있는 대화 상자가 표시됩니다.LocationService.Start을 바탕으로 LocationService.Start의 값이 어떻게 되는지 감시할 수 밖에 없다.코드 
참고 자료 
Reference
이 문제에 관하여(Unity iOS/Android를 사용하여 위치 정보 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hirano/items/dde92f4ed76fb377746e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)