关于gps的定位服务,原生的IOS和Android都可以实现,但是Unity和ios、android的交互略微麻烦。因此Unity官方给我们提供好了关于gps的服务,就在我们熟悉的Input当中。他就是Input.Location;


相关的API,有两个:LocationService 和 LocationInfo 。

LocationService负责启动和关闭定位服务

LocationInfo 在服务启动后,获取定位数据信息


LocationService

官方说明链接:http://docs.unity3d.com/Documentation/ScriptReference/LocationService.Start.html

LocationService中有三个属性,和两个方法:

(1)isEnabledByUser -- 检测用户设置里的定位服务是否启用(首次会弹出提示,询问用户是否同意。)

(2)lastData -- 最近一次测量的地理位置(LocationInfo lastData; 也就是要和 LocationInfo 关联了)

(3)status -- 定位服务的状态。

定位服务的状态包括:

Stopped
Location service is stopped. 定位服务已经停止
Initializing
Location service is initializing, some time later it will switch to. 定位服务正在初始化,在一段时间后,状态会切换回来。
Running
Location service is running and locations could be queried.位置服务正在运行,位置可以获取。
Failed
Location service failed (user denied access to location service).位置服务失败(用户拒绝访问位置服务


(4)Start ( ) -- 启动定位服务,更新定位数据。可以获取最近更新的位置坐标。

数据接收,是通过Input.location.lastData 来实现的。服务不能马上获得定位数据。代码必须检查Input.location.status以获取当前的定位服务状态。

看一下函数定义:

voidStart(floatdesiredAccuracyInMeters= 10f, floatupdateDistanceInMeters= 10f);

参数详解:

desiredAccuracyInMeters 服务所需的精度,以米为单位。如果使用较高的值,比如500,那么通常不需要打开GPS芯片(比如可以利用信号基站进行三角定位),从而节省电池电量像5-10这样的值,可以被用来获得最佳的精度。默认值是10米。

更多相关文章

  1. Android监控WIFI和GSM状态并绘制网络强度
  2. Java线程的生命周期和状态控制
  3. . io .IOException:setDataSource失败了。:状态= 0 x80000000
  4. Google Play服务API(位置服务)是否需要数据计划?
  5. 路径提供者文档目录是一个安全的位置吗?
  6. fragment 状态保存时怎么执行一些需要在onResume、onPause方法里
  7. 设置自定义Dialog的大小和位置
  8. Android全屏显示,去除标题栏和状态栏
  9. 以编程方式将位置模式更改为高精度Android

随机推荐

  1. 如何更改多个选定html值的名称?
  2. 【css】a标签的用法
  3. 用esp开发demo流程
  4. CSS Transition div容器高度从100%到200%
  5. 利用js、jQuery和css实现环形进度条组件
  6. Qt 5.4正式发布!引入WP,支持HTML5混合开发
  7. PDA调用接口 提示:客户端发现响应内容的类
  8. 输入焦点警报,没有类别或ID,在Div内
  9. HTML5做的web网页可以直接做成手机APP么?
  10. 使用xpath查找包含特定内容的span