为面向 iOS 的 Unity (AR Foundation) 应用启用 Geospatial API

配置应用的设置,以便其可以使用 Geospatial API

前提条件

确保您了解 AR 基础概念 以及如何在继续之前配置 ARCore 现场录像

请参阅 Geospatial API 简介,了解详情 有关 Geospatial API 的信息。

如果您是初次使用 ARCore 进行开发,请参阅使用入门 了解软件和硬件要求、前提条件和 特定于您使用的平台的其他信息。

如需使用 ARCore Geospatial API,您的项目必须支持 AR 基础ARCore Extensions for AR Foundation 发布。

启用 ARCore API

在您的应用中使用视觉定位系统 (VPS) 之前,您必须先 启用 ARCore API 新建或现有的 Google Cloud 项目中。此服务负责 托管、存储和解析地理空间锚点。

首选无密钥授权,但也支持 API 密钥授权。

将所需的库添加到您的应用

授权您的应用调用 ARCore API 后,您必须将库添加到 在您的应用中启用地理空间功能。

  1. 转到修改 >项目设置 >XR 插件管理 >ARCore 扩展程序。确保已选中 iOS Support Enabled
  2. 可选功能下,选择地理空间

在会话配置中启用地理空间功能

在应用中启用地理空间功能后,在应用的 AR 会话配置中启用地理空间功能,以便其能够与 ARCore API 通信:

  1. 确保项目 Assets 文件夹包含 ARCoreExtensionsConfig 可脚本对象。要创建资产,请右键点击 Assets 窗格,然后选择 Create >XR >ARCore 扩展配置
  2. Assets 文件夹中选择 ARCoreExtensionsConfig 可脚本化对象,并将 Geospatial Mode 设置为 Enabled

  3. 配置 ARCore Extensions 游戏对象以使用 ARCoreExtensionsConfig 配置。在 Hierarchy 窗格中,找到您在最初设置 ARCore 扩展程序时创建的 ARCore Extensions 游戏对象,然后将 ARCore Extensions Config 字段连接到 Assets 文件夹中的 ARCoreExtensionsConfig 可脚本对象。

提示用户允许使用设备数据

使用 ARCore Geospatial API 的应用必须向用户显示 确认并允许使用其设备中的数据。请参阅 用户隐私要求了解详情 信息。

检查设备兼容性

并非所有支持 ARCore 的设备都支持 Geospatial API。检查 用户设备的兼容性,调用 AREarthManager.IsGeospatialModeSupported()。 如果返回 FeatureSupported.Unsupported,请勿尝试配置 会话。

在运行时请求用户授予位置信息权限

在触发运行时的脚本中启用 Unity 的位置服务 ,请执行以下操作:

  1. Project Settings > iOS > Other Settings > Location Usage Description, 输入请求权限的应用的名称。

  2. 启用 Unity 的位置信息服务以触发运行时 来请求权限,如下所示:

    public void OnEnable()
    {
        Input.location.Start();
    }
    
    public void OnDisable()
    {
        Input.location.Stop();
    }
    

    请参阅 Unity 的 LocationService 文档。

检查设备当前位置的地理空间可用性

由于 Geospatial API 结合使用 VPS 和 GPS 来确定地理空间姿势,因此只要设备能够确定其位置,就可以使用该 API。在 GPS 准确度较低的区域,例如室内空间和人口密集的城市环境,该 API 将依赖 VPS 覆盖范围来生成高精度姿势。在典型条件下,VPS 的定位精度预计为 5 米左右,旋转精度为 5 度。使用 AREarthManager.CheckVpsAvailability() 确定指定位置是否提供 VPS 覆盖范围。

Geospatial API 也可用于没有 VPS 覆盖的区域。在顶部障碍很少或没有障碍物的户外环境中,GPS 可能足以生成高精度姿势。

后续步骤