之前发了一篇unity获取 当前 IP地址所在的位置信息
而且是利用百度的接口返回结果的:链接
https://blog.csdn.net/chenzhe_n/article/details/81133887
今天这是unity系统内部 主要应用LocationService 和 LocationInfo这二个类
相关API详见 官方文档地址https://docs.unity3d.com/ScriptReference/LocationService.html
我也相关的方法和属性也都尝试了一遍
代码如下:
public class Test1 : MonoBehaviour {
string GetGps;
public Text ShowGPS;
/// <summary>
/// 初始化一次位置
/// </summary>
void Start()
{
StartCoroutine(StartGPS());
GetGps = "N:" + Input.location.lastData.latitude + " E:" + Input.location.lastData.longitude;
ShowGPS.text += GetGps + "\n" + Input.location.lastData.altitude + "\n" + Input.location.lastData.horizontalAccuracy + "\n" +
Input.location.lastData.horizontalAccuracy + "\n"+ " Time:" + Input.location.lastData.timestamp + "\n";
}
/// <summary>
/// 刷新位置信息(按钮的点击事件)
/// </summary>
public void updateGps()
{
StartCoroutine(StartGPS());
GetGps = "N:" + Input.location.lastData.latitude + " E:" + Input.location.lastData.longitude;
ShowGPS.text += GetGps + "\n" + " Time:" +Input.location.lastData.altitude+"\n"+Input.location.lastData.horizontalAccuracy+"\n"+
Input.location.lastData.horizontalAccuracy + "\n" + Input.location.lastData.timestamp+"\n";
}
/// <summary>
/// 停止刷新位置(节省手机电量)
/// </summary>
public void StopGPS()
{
Input.location.Stop();
}
IEnumerator StartGPS()
{
// Input.location 用于访问设备的位置属性(手持设备), 静态的LocationService位置
// LocationService.isEnabledByUser 用户设置里的定位服务是否启用
if (!Input.location.isEnabledByUser)
{
GetGps = "isEnabledByUser value is:" + Input.location.isEnabledByUser.ToString() + " Please turn on the GPS";
ShowGPS.text += GetGps + "\n";
yield return false;
}
// LocationService.Start() 启动位置服务的更新,最后一个位置坐标会被使用
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)
{
GetGps = "Init GPS service time out";
ShowGPS.text += GetGps + "\n";
yield return false;
}
if (Input.location.status == LocationServiceStatus.Failed)
{
GetGps = "Unable to determine device location";
ShowGPS.text += GetGps + "\n";
yield return false;
}
else
{
GetGps = "N:" + Input.location.lastData.latitude + " E:" + Input.location.lastData.longitude;
GetGps = GetGps + " Time:" + Input.location.lastData.timestamp;
yield return new WaitForSeconds(20);
}
}
}
官网的API都这在了