Unity计算两点经纬度距离

作者:技术拾光时间:2026-07-03 18:26:25浏览:636

本文全面介绍在Unity引擎中利用GPS模块获取经纬度坐标,通过Haversine公式计算两点间距离,误差小于0.2米。涵盖项目搭建、UI界面创建、脚本编写到打包测试全流程,并重点强调iOS系统的定位权限配置。该方案精度高,实用性强。

本文介绍一个实用的 Unity 功能:利用 GPS 获取当前位置,并计算两个经纬度坐标之间的距离。完整流程包括项目搭建、代码实现、打包测试,适合刚接触位置服务的开发者参考。

项目搭建与 UI 配置

打开 Unity,创建一个新项目,流程不再赘述。

Unity计算两点经纬度距离

在场景中创建画布作为 UI 容器,添加背景图、一个按钮和两个文本框。按钮用于触发刷新,文本框分别显示当前经纬度和两点间距离,效果直观。

脚本编写与核心逻辑

场景搭建完成后保存,新建脚本并双击打开。代码主要完成三件事:获取经纬度、计算两点距离、更新 UI 显示。

Unity计算两点经纬度距离

代码逻辑不复杂。通过 Input.location 静态属性获取设备地理位置信息——这是 Unity 内置的定位服务 API。调用前必须检查用户是否在系统设置中开启了定位功能,否则后续操作会失败。

确认定位可用后启动位置服务更新,系统持续获取并记录当前坐标。一个小技巧:为确保定位初始化完成,可让协程暂停一秒钟再继续。最后一次记录的位置信息会保留,方便后续使用。

Unity计算两点经纬度距离

距离计算:Haversine 公式

计算两个经纬度坐标之间的距离采用经典的 Haversine 公式(来自谷歌),误差控制在 0.2 米以内,非常可靠。传入两个点的纬度和经度值,通过三角运算返回以米为单位的距离结果。

Unity计算两点经纬度距离

脚本结构与绑定

脚本代码结构如下:先设定初始位置;点击按钮时更新当前位置,调用距离计算函数,测出当前位置到目标坐标(例如 22.72555, 114.2108)的距离。注意数值仅为示例,实际使用时替换为目标点。最后在不需要定位时停止位置刷新,以节省电量。

脚本编译通过后,在 Unity 编辑器中将其挂载到摄像机上。将场景中的两个文本框分别赋值给脚本变量,再把按钮的点击事件绑定到 updateGps 函数,整个逻辑即可串联。

Unity计算两点经纬度距离 Unity计算两点经纬度距离

打包测试与 iOS 权限配置

一切就绪后,将项目导出为 iOS 或 Android 版本并安装到手机。打开应用,点击刷新按钮,当前经纬度立即显示,同时自动算出与目标地点的距离。

Unity计算两点经纬度距离

如果在 iOS 上导出后无法获取地理位置,通常是权限配置问题。解决方法:在 Build 前进入 Player Settings,找到 iOS 选项,填写 Location Usage Description 字段。该描述会显示在系统弹窗中,用于向用户解释位置访问目的,务必清晰明确。

Unity计算两点经纬度距离

至此,在 Unity 中快速计算两个经纬度之间距离的实用教程全部结束。整个过程环环相扣,从项目搭建到代码编写再到打包测试,希望能帮助正在开发相关功能的开发者。