启动位置服务更新。可能是上次位置坐标。
通过 Input.location.lastData
进行检索。
服务不会立即启动以发送位置数据。代码应
检查 Input.location.status
以获取当前服务状态。
desiredAccuracyInMeters - 所需服务精度(以米为单位)。使用
较高值(如 500)通常不需要打开 GPS 芯片,
因而可节省电池电源。5-10 之类的值可以用于获取
最佳精度。默认值是 10 米。
updateDistanceInMeters - 更新 Input.location
属性
之前设备必须横向移动的最小距离(以米为单位
测量)。值越高(如 500)意味着开销越少。默认值是 10
米。
在 Android 上,在脚本中使用此方法会自动将 ACCESS_FINE_LOCATION 权限添加到 android 清单。如果使用低精度值(如 500 或更高),则可以在“Player Settings”中选择“Low Accuracy Location”,从而改为添加 ACCESS_COARSE_LOCATION 权限。
using UnityEngine; using System.Collections;
public class TestLocationService : MonoBehaviour { IEnumerator Start() { // First, check if user has location service enabled if (!Input.location.isEnabledByUser) yield break;
// Start service before querying location Input.location.Start();
// Wait until service initializes int maxWait = 20; while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return new WaitForSeconds(1); maxWait--; }
// Service didn't initialize in 20 seconds if (maxWait < 1) { print("Timed out"); yield break; }
// Connection has failed if (Input.location.status == LocationServiceStatus.Failed) { print("Unable to determine device location"); yield break; } else { // Access granted and location value could be retrieved print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp); }
// Stop service if there is no need to query location updates continuously Input.location.Stop(); } }
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.