RealityKit——从同一个 Reality Composer 项目加载另一个场景

RealityKit – Load another Scene from the same Reality Composer project

我使用 Xcode 的模板创建了一个增强现实项目。

Xcode 创建一个名为 Experience.rcproject.

的文件

此项目包含一个名为 Box 的场景和一个名为 Steel Cube 的立方体。

我在 Experience.rcproject 中添加了 3 个场景,分别是 alphabravodelta

我运行这个项目。

Xcode 运行s 这两行

// Load the "Box" scene from the "Experience" Reality File
let boxAnchor = try! Experience.loadBoxX(namedFile: "Ground")

// Add the box anchor to the scene
arView.scene.anchors.append(boxAnchor)

这些行从体验文件加载 Box 场景。

加载此场景后,如何切换到另一个场景 alphabravodelta 而无需加载整个场景?

RealityKit 中切换来自 Reality Composer 的两个或多个场景的最简单方法是使用 removeAll() 实例方法,允许您从数组中删除所有锚点。

可以使用asyncAfter(deadline:execute:)方法切换两个场景:

let boxAnchor = try! Experience.loadBox()
arView.scene.anchors.append(boxAnchor)

    
DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
    
    self.arView.scene.anchors.removeAll()

    let sphereAnchor = try! Experience.loadSphere()
    self.arView.scene.anchors.append(sphereAnchor)
}

或者您可以使用常规 UIButton:

切换两个不同的 RC 场景
@IBAction func loadNewSceneAndDeletePrevious(_ sender: UIButton) {

    self.arView.scene.anchors.removeAll()

    let sphereAnchor = try! Experience.loadSphere()
    self.arView.scene.anchors.append(sphereAnchor)
}