尴尬的 RealityKit,跑不起来的 Demo

说明

以前写过既生瑜何生亮? 苹果 ARKit 与 RealityKit 带来的困惑,感觉 RealityKit 的推出就是苹果在下一盘大棋,开启 AR 战略的重要一步,似乎过不了多久,就可以全面转向 RealityKit 开发了。

WWDC

今年的 WWDC2020 上也对 RealityKit 进行了讲解,What's new in RealityKit

还给出了最新的演示 Demo:Creating a Game with SceneUnderstanding

然而,当我们下载这个 Demo 后,却发现根本跑不起来:

从 WWDC 之后的 Xcode 12 的 beta 版,到之后的正式版 Xcode 12,12.1,12.2Beta 版,都无法正常运行。原因是 RealityKit 中不仅没有新增加 API,还突然少了几个,比如ARSession就突然消失了,虽然官方文档中还是有的,但在 Xcode 12 中 找不到了。

什么问题?

在我写文章《既生瑜何生亮? 苹果 ARKit 与 RealityKit 带来的困惑》时ARSession类还是能在头文件中找到的(当时用的 Xcode 版本为 11.4),我们还在讨论arView.session.add(anchor: anchor)arView.scene.anchors.append(anchor)有什么区别,想不到几个月后就不见了。

在 WWDC2019 的Session 605 - Building Apps with RealityKit也演示过两者的不同:

// Create ARKit ARAnchor and add to ARSession
// 创建 ARAnchor , session 会自动处理同步
let arAnchor = ARAnchor(name: "Memory Game Board", transform: result.worldTransform)
arView.session.add(anchor: arAnchor)
// Create a RealityKit AnchorEntity and add to the scene
let anchorEntity = AnchorEntity(anchor: arAnchor)
arView.scene.addAnchor(anchorEntity)
top Created with Sketch.