unity获取设备位置信息

发布时间 2023-10-07 14:48:30作者: 滑华
  1. Input.location:这是 Unity 内置的位置服务 API。你可以使用它来获取设备的经纬度、海拔和水平精度等信息。首先,你需要在代码中启用位置服务,并在获取位置信息前等待位置服务初始化完成。以下是一个简单的示例代码:
using UnityEngine;

public class LocationManager : MonoBehaviour
{
    IEnumerator Start()
    {
        // 启用位置服务
        Input.location.Start();

        // 等待位置服务初始化完成
        while (Input.location.status == LocationServiceStatus.Initializing)
            yield return new WaitForSeconds(0.5f);

        // 检查位置服务是否可用
        if (Input.location.status == LocationServiceStatus.Failed)
        {
            Debug.LogError("无法获取位置信息");
            yield break;
        }

        // 获取位置信息
        float latitude = Input.location.lastData.latitude;
        float longitude = Input.location.lastData.longitude;
        float altitude = Input.location.lastData.altitude;
        float horizontalAccuracy = Input.location.lastData.horizontalAccuracy;

        Debug.Log("经度:" + longitude);
        Debug.Log("纬度:" + latitude);
        Debug.Log("海拔:" + altitude);
        Debug.Log("水平精度:" + horizontalAccuracy);

        // 停止位置服务
        Input.location.Stop();
    }
}