2

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

Xcode 创建一个名为Experience.rcproject.

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

我在、和Experience.rcproject中添加了 3 个场景 。alphabravodelta

我运行这个项目。

Xcode 运行这两行

// 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)

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

加载此场景后,如何切换到另一个场景alphabravo或者delta无需加载整个场景?

4

1 回答 1

3

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)
}

或者您可以使用常规切换两个不同的 RC 场景UIButton

@IBAction func loadNewSceneAndDeletePrevious(_ sender: UIButton) {

    self.arView.scene.anchors.removeAll()

    let sphereAnchor = try! Experience.loadSphere()
    self.arView.scene.anchors.append(sphereAnchor)
}
于 2020-06-23T12:01:32.627 回答