Unity内部类实现GPS定位

来源:互联网 发布:吃饭排队叫号软件 编辑:程序博客网 时间:2024/05/18 00:24

使用Unity提供的内部方法实现GPS定位

代码如下:

方法比较少也比较简单,注释很详细

将脚本拖拽到摄像机上,打包,在Android或iOS真机上测试

<span style="font-size:14px;">using UnityEngine;using System.Collections;public class GPS : MonoBehaviour {    private LocationService locationServer;    private LocationServiceStatus locationServerStatus;    private LocationInfo locationInfo;    private bool isCould;  //是否开启定位服务,即开启GPS定位    private float altitude; //海拔高度    private float horizontalAccuracy; //水平精度    private float verticalAccuracy;  //垂直精度    private float latitude;       //纬度    private float longitude;      //经度    private double timestamp;     //最近一次定位的时间戳,从 1970年开始    // Use this for initialization      void Start () {        locationServer = Input.location;        isCould = locationServer.isEnabledByUser; //用户是否可以设置定位服务              locationServerStatus = locationServer.status; //返回设备服务状态        //参数1 服务所需的精度,以米为单位,参数2 最小更新距离        locationServer.Start(1, 1);//开始位置更新服务,最后的位置坐标        //locationServer.Stop();//停止位置服务更新,节省电池寿命    }    void Update()    {        //调用该方法之前确保调用了 Input.location.Start()        locationInfo = locationServer.lastData; //设备最后检测的位置        altitude = locationInfo.altitude;//设备高度        horizontalAccuracy = locationInfo.horizontalAccuracy; //水平精确度        verticalAccuracy = locationInfo.verticalAccuracy; //垂直精确度        latitude = locationInfo.latitude; //设备纬度        longitude = locationInfo.longitude;//设备纬度        timestamp = locationInfo.timestamp;//时间戳(自1970年以来以秒为单位)位置时最后一次更新。    }          void OnGUI () {        GUI.skin.label.fontSize = 40;        GUI.Label(new Rect(50, 0, 500, 80), "isCould : " + isCould);        GUI.Label(new Rect(50, 100, 800, 80), "locationInfo : " + locationInfo);        GUI.Label(new Rect(50, 200, 500, 80), "海拔     :   " + altitude);        GUI.Label(new Rect(50, 300, 500, 80), "水平精度 :   " + horizontalAccuracy);        GUI.Label(new Rect(50, 400, 500, 80), "垂直经度 :   " + verticalAccuracy);        GUI.Label(new Rect(50, 500, 500, 80), "纬度     :   " + latitude);        GUI.Label(new Rect(50, 600, 500, 80), "经度     :   " + longitude);        GUI.Label(new Rect(50, 700, 500, 80), "时间戳   :   " + timestamp);    }}</span>


测试结果:











0 0