手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Unity 实用教程 之 快速获取当前GPS经纬度信息

时间:2024-10-12 01:04:34

1、打开Unity,新建一个空工程,具体如下图

Unity 实用教程 之 快速获取当前GPS经纬度信息

2、新建一个画布Canas,添加一个Image作为背景,添加一个按钮,和一个Text显示获取到的经纬度信息,具体如下图

Unity 实用教程 之 快速获取当前GPS经纬度信息

3、保存场景,然后在工程中新建一个脚本,双击打开脚本进行编写代码获取经纬度信息,具体如下图

Unity 实用教程 之 快速获取当前GPS经纬度信息

4、打开脚本,编写代码,关键点是:1、判断用户是否打开GPS服务,2、然后初始化获取位置信息,3、连续获取未成功,提示获取超时,4、获取失败则提示无法获取您设备的位置,5、获取成功憾魄蜒祓怎把获取的经纬度信息显示出来,具体代码和代码说明如下图

Unity 实用教程 之 快速获取当前GPS经纬度信息
Unity 实用教程 之 快速获取当前GPS经纬度信息

5、脚本代码如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclassGetGPS:MonoBehaviour{stringGetGps=""; publicTextShowGPS; ///<summary> ///初始化一次位置 ///</summary> voidStart() { StartCoroutine(StartGPS()); GetGps="N:"+Input.location.lastData.latitude+"E:"+Input.location.lastData.longitude; GetGps=GetGps+"Time:"+Input.location.lastData.timestamp; ShowGPS.text=GetGps; Debug.Log(GetGps); } ///<summary> ///刷新位置信息(按钮的点击事件) ///</summary> publicvoidupdateGps() { StartCoroutine(StartGPS()); GetGps="N:"+Input.location.lastData.latitude+"E:"+Input.location.lastData.longitude; GetGps=GetGps+"Time:"+Input.location.lastData.timestamp; ShowGPS.text=GetGps; Debug.Log(GetGps); } ///<summary> ///停止刷新位置(节省手机电量) ///</summary> voidStopGPS() { Input.location.Stop(); } IEnumeratorStartGPS() { //Input.location用于访问设备的位置属性(手持设备),静态的LocationService位置 //LocationService.isEnabledByUser用户设置里的定位服务是否启用 if(!Input.location.isEnabledByUser) { GetGps="isEnabledByUservalueis:"+Input.location.isEnabledByUser.ToString()+"PleaseturnontheGPS"; yieldreturnfalse; }//LocationService.Start()启动位置服务的更新,最后一个位置坐标会被使用 Input.location.Start(10.0f,10.0f);intmaxWait=20; while(Input.location.status==LocationServiceStatus.Initializing&&maxWait>0) { //暂停协同程序的执行(1秒) yieldreturnnewWaitForSeconds(1); maxWait--; }if(maxWait<1) { GetGps="InitGPSservicetimeout"; yieldreturnfalse; }if(Input.location.status==LocationServiceStatus.Failed) { GetGps="Unabletodeterminedevicelocation"; yieldreturnfalse; } else { GetGps="N:"+Input.location.lastData.latitude+"E:"+Input.location.lastData.longitude; GetGps=GetGps+"Time:"+Input.location.lastData.timestamp; Debug.Log("Keyidingwei"); yieldreturnnewWaitForSeconds(100); } }}

6、脚本编译正确,回到Unity界面。把脚本挂载到摄像机上,并且把Text赋值给脚本,并且绑定“updateGps”函数到按钮事件,具体如下图

Unity 实用教程 之 快速获取当前GPS经纬度信息
Unity 实用教程 之 快速获取当前GPS经纬度信息

7、然后导出iOS或者Andorid应用,安装到手机上,点击“刷新信息”按钮,即可显示地理信息,具体如下图

Unity 实用教程 之 快速获取当前GPS经纬度信息
Unity 实用教程 之 快速获取当前GPS经纬度信息

8、如是iOS导出,没有显示地理位置,必要的时候,在“Build”前,把“Player Settings”的 “Location Usage Description”填写一下,具体如下图

Unity 实用教程 之 快速获取当前GPS经纬度信息

9、到此,《Unity 实用教程 之 快速获取当前GPS经纬度信息》讲解结束,谢谢

© 手抄报圈