ARConfiguration

一个用来定义 在某个时间你在会话中启用的某些ARKit特征 的对象

声明

class ARConfiguration : NSObject

概述

ARConfiguration为AR体验可以拥有的一系列不同可选项定义了一个基类。你无法自己分配一个ARConfiguration对象;你只能实例化它的一个子类。

选择你的配置

为了实现你的AR体验的特性,你需要创建如下子类并通过run(with:)方法在会话上运行。一个会话同一时间只能运行一个配置项,所以你需要选择一个最有利于实现预期AR体验的配置项。

选择帧的特性

一些配置项支持与会话的帧相关的子特性。你可以通过设置在配置项的frameSemantics 中的如下标志位来启用这些特性。

重要

在设置frameSemantics 之前,通过使用 supportsFrameSemantics(_:) 方法来验证iOS设备是否支持你期望的ARConfiguration.FrameSemantics

在运行时切换配置项

当你想要关闭类似于平面检测、帧语义和环境纹理等特性时,你可以通过在存在的会话上调用run(with:) 方法来切换配置项。ARKit维护了所有的之前配置项下会话所收集的信息,例如关于物理环境的信息和锚点。

记录

当你在人脸追踪和世界追踪的配置项之间切换时,状态将不会被维护

主题

验证设备支持

class var isSupported: Bool 一个布尔值表述了当前设备是否支持这个会话的配置项类

检查帧特性

class func supportsFrameSemantics(ARConfiguration.FrameSemantics) -> Bool 检查某个特性的特性是否支持

启用帧特性

var frameSemantics: ARConfiguration.FrameSemantics 帧上的一些列激活的语义

struct ARConfiguration.FrameSemantics 你可以在app中启用的可选的帧特性的类型

配置AR会话

var isLightEstimationEnabled: Bool 一个布尔值表述了,ARKit是否在捕获的摄像头图片中分析场景光

var worldAlignment: ARConfiguration.WorldAlignment 一个布尔值表述了,会话是否映射真实世界设备移动到3D场景的坐标系中。

enum ARConfiguration.WorldAlignment ARKit怎样基于真实世界设备运动来构建一个场景坐标系的一些列可选项

管理视频捕捉可选项

var videoFormat: ARConfiguration.VideoFormat 会话运行这个配置项所用到的视频捕获体积和帧率

class var supportedVideoFormats: [ARConfiguration.VideoFormat] 当前设备支持的一系列视频捕捉格式

class ARConfiguration.VideoFormat AR会话使用的视频体积和帧率

记录音频

var providesAudioData: Bool 一个布尔值表述了,是否在AR会话中捕获音频