You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阅读Apple开发者文档?ARKit中ARSession.run方法解析求助

理解ARKit中ARSession.run()方法的指南

我完全懂这种困惑——Apple的开发者文档有时候确实像在说“行业黑话”,尤其是刚接触ARKit这类框架的时候!别担心,我来一步步帮你拆解这个方法,以及怎么用它。

先拆解方法声明:func run(_ configuration: ARConfiguration, options: ARSession.RunOptions = [])

咱们把这个声明拆成几个部分来看,就清晰多了:

  • func run:这是一个函数,名字叫run,核心作用是启动或恢复AR会话——简单说就是让ARKit开始工作,捕捉现实世界的画面、跟踪设备位置等等。
  • _ configuration: ARConfiguration:
    • 前面的_是Swift的语法糖,意思是调用这个方法的时候,可以不用写参数名(比如直接写arSession.run(myConfig),而不是arSession.run(configuration: myConfig))。
    • ARConfiguration是一个配置类,它相当于给ARKit下达“任务指令”:你是要跟踪整个现实世界?还是只跟踪人脸?或者做物体识别?不同的任务对应不同的ARConfiguration子类,比如ARWorldTrackingConfiguration(最常用的,支持3D空间跟踪)、ARFaceTrackingConfiguration(人脸跟踪,适合Face ID或AR滤镜场景)。
  • options: ARSession.RunOptions = []:
    • 这是一个可选参数,默认值是空数组[],你可以传一些选项来控制会话启动时的行为。
    • ARSession.RunOptions是一个枚举集合,常用的选项比如:
      • .resetTracking:重置之前的跟踪数据,适合用户移动到新环境时重新开始跟踪。
      • .removeExistingAnchors:移除之前会话中创建的所有锚点(锚点是ARKit识别出的现实世界中的“标记点”)。

实际用法示例

光看声明不够,咱们写两段实际代码来理解:

示例1:最基础的启动AR会话

// 1. 先创建一个ARSession对象(相当于AR会话的“控制器”)
let arSession = ARSession()

// 2. 创建一个配置,这里用最常用的世界跟踪配置
let worldConfig = ARWorldTrackingConfiguration()
// 可以给配置加一些额外设置,比如开启平面检测
worldConfig.planeDetection = .horizontal

// 3. 运行会话,用默认选项(不需要传options参数)
arSession.run(worldConfig)

// 注意:实际开发中,你需要把ARSession和AR视图(比如ARSCNView或ARView)关联起来,不然看不到AR画面
// 比如:arView.session = arSession

示例2:带选项的会话重启

如果用户已经用过AR会话,现在想完全重置跟踪状态,可以传options:

// 创建配置(和之前一样)
let worldConfig = ARWorldTrackingConfiguration()

// 定义选项:重置跟踪+移除所有旧锚点
let runOptions: ARSession.RunOptions = [.resetTracking, .removeExistingAnchors]

// 带着选项运行会话
arSession.run(worldConfig, options: runOptions)

读Apple文档的小技巧(帮你以后自己啃文档)

  • 先看Overview和Discussion:这两部分是文档的核心,会告诉你这个方法的作用、使用场景,甚至一些坑。比如run方法的Discussion里会提到,如果你已经在运行会话,调用run会用新的配置替换旧的,这时候options就很有用。
  • 点击参数的链接:比如你点ARConfiguration,会跳转到这个类的文档,里面会列出所有可用的子类,以及每个子类的适用场景,比死记硬背强多了。
  • 找Code Samples:很多文档页面底部会有官方示例项目,下载下来跑一跑,看实际代码里怎么调用这个方法,结合上下文理解更快。
  • 不要害怕试错:把文档里的代码片段复制到你的项目里,改一改参数,看看效果,比光看文字理解得深。

内容的提问来源于stack exchange,提问作者uuu uuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:41:35