本文共 1414 字,大约阅读时间需要 4 分钟。
using UnityEngine;using System.Collections;using UnityEngine.UI;public class GPS : MonoBehaviour{ private string N_Latitude; //经度 private string E_Longitude; //纬度 public Button LocationButton;// 定位按钮 void Start() { LocationButton.onClick.AddListener(() =>{ // 这里需要启动一个协同程序 StartCoroutine(StartGPS()); }); } IEnumerator StartGPS() { // Input.location 用于访问设备的位置属性(手持设备), 静态的LocationService位置 // LocationService.isEnabledByUser 用户设置里的定位服务是否启用 if (!Input.location.isEnabledByUser) { // ios需在info.plist添加key:Privacy - Location When In Use Usage Description Debug.Log("用户没有开启定位权限"); yield break; } else { // LocationService.Start() 启动位置服务的更新,最后一个位置坐标会被使用 // 定位精度10米,最小移动距离10米 Input.location.Start(10.0f, 10.0f); } // 不能立刻获得定位,所以需要等待 int maxWait = 20; while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { // 暂停协同程序的执行(1秒) yield return new WaitForSeconds(1); maxWait--; } if (maxWait < 1) { Debug.Log("定位超时"); yield break; } if (Input.location.status == LocationServiceStatus.Failed) { Debug.Log("定位失败"); yield break; } else { N_Latitude = Input.location.lastData.latitude.ToString(); E_Longitude = Input.location.lastData.latitude.ToString(); Input.location.Stop(); yield return null; } }}
转载地址:http://pbkii.baihongyu.com/