Unity 6.3
0 онлайн 34 гостей 3 в системе
Вход

LocationService.Start

Declaration

public void Start();
public void Start(float desiredAccuracyInMeters);
public void Start(float desiredAccuracyInMeters, float updateDistanceInMeters);

Параметры

Параметр Описание
desiredAccuracyInMeters Точность сервиса, которую вы хотите использовать, в метрах. Это определяет точность координат последнего местоположения устройства. Более высокие значения, например 500, не требуют использования устройства чипом GPS и, таким образом, экономит батарею. Более низкие значения, например 5-10, обеспечивают наилучшую точность, но требуют использования чипом GPS и, таким образом, потребляют больше батареи. Значение по умолчанию — 10 метров.
updateDistanceInMeters Минимальное расстояние в метрах, на которое устройство должно переместиться в сторону, прежде чем Unity обновит Input.location. Более высокие значения, например 500, производят меньше обновлений и менее ресурсоемки для обработки. По умолчанию это 10 метров.

Описание

Запускает обновления службы местоположения.

После вызова этой функции вы можете получить доступ к последним координатам местоположения устройства, проверив lastData в Input.location.

Примечание: Служба местоположения не начинает отправлять данные о местоположении сразу. Поэтому проверьте текущее состояние службы в Input.location.

Он Android, использование этого метода в скриптах автоматически добавляет ACCESS_FINE_LOCATION Если вы используете низкие значения точности, такие как 500 или выше, выберите Низкая точность местоположения в Настройки Игрока добавить ACCESS_COARSE_LOCATION разрешение вместо.

Он WebGL, этот метод должен быть вызван в ответ на жест пользователя (например, щелчок мыши) в рамках сопутствующей процедуры. Примечание: Услуги геолокации доступны только с HTTPS подключения, за исключением периода разработки, когда вы можете использовать http://localhost. Использование desiredAccuracyInMeters и updateDistanceInMeters не поддерживается, поскольку устройство пользователя определяет эти два значения.

using UnityEngine;
using System.Collections;

public class TestLocationService : MonoBehaviour { IEnumerator Start() { // Check if the user has location service enabled. if (!Input.location.isEnabledByUser) Debug.Log("Location not enabled on device or app does not have permission to access location");

// Starts the location service. float desiredAccuracyInMeters = 10f; float updateDistanceInMeters = 10f;

Input.location.Start(desiredAccuracyInMeters, updateDistanceInMeters);

// Waits until the location service initializes int maxWait = 20; while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return new WaitForSeconds(1); maxWait--; }

// If the service didn't initialize in 20 seconds this cancels location service use. if (maxWait < 1) { Debug.Log("Timed out"); yield break; }

// If the connection failed this cancels location service use. if (Input.location.status == LocationServiceStatus.Failed) { Debug.LogError("Unable to determine device location"); yield break; } else { // If the connection succeeded, this retrieves the device's current location and displays it in the Console window. Debug.Log("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp); }

// Stops the location service if there is no need to query location updates continuously. Input.location.Stop(); } }