Unity3d Input.location из документации, недоступной в коде - PullRequest
3 голосов
/ 27 февраля 2012

Я работаю над проектом Unity3d для Android.Используя документацию Unity:

http://unity3d.com/support/documentation/ScriptReference/Input-location.html

Я смогу использовать Input.location, чтобы получить доступ к данным GPS о местоположении.Но вместо этого я получаю ошибку, в основном сообщающую мне, что Input.location не является частью Unity.

Assets / Scripts / Prototype1.js (27,29): BCE0019: «location» не является членомиз 'UnityEngine.Input'.

Я проверил наличие обновлений, и они сообщают, что система полностью обновлена.Я использую версию 3.4.2f3

Устаревшая документация?Есть ли другая ссылка на LocationService?Как я могу получить данные о местоположении?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Файлы на unity3d.com содержат документацию по последнему выпуску Unity3D 3.5. Если вы посмотрите свою документацию в локальной файловой системе, вы не найдете Input.location. Похоже, они изменили интерфейс в Unity3D 3.5.

Я до сих пор не использовал GPS, возможно, эта ветка и предоставленные ссылки могут пролить свет на это:

Как импортировать координаты местоположения GPS с устройства Android?

1 голос
/ 01 марта 2012

Я нашел документацию к старому коду, основанную на iPhoneSettings. Это код, который я сейчас использую, он не завершен (не реагирует на нехватку времени службы определения местоположения и другое такое хорошо округленное поведение), но демонстрирует код.

function Start () {
    locationStatus = LocationServiceStatus.Stopped;

    StartCoroutine(startLocationService()); 
}

function Update () {
    if(locationStatus == LocationServiceStatus.Running)
    {
        /*
        lat = Input.location.latitude;
        lon = Input.location.longitude;
        alt = Input.location.altitude;
        */

        lat = iPhoneInput.lastLocation.latitude;
        lon = iPhoneInput.lastLocation.longitude;
        alt = iPhoneInput.lastLocation.altitude;
    }
}

function startLocationService()
{
    //Input.location.Start(accuracy, distance);
    iPhoneSettings.StartLocationServiceUpdates(accuracy, distance);

    //while(Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) {
    while(iPhoneSettings.locationServiceStatus == LocationServiceStatus.Initializing && maxWait > 0)
    {
        yield WaitForSeconds(1);
        maxWait--;
    }

    //locationStatus = Input.location.status;
    locationStatus = iPhoneSettings.locationServiceStatus;
}
...