如何在使用标准 iOS AR 模板时获取自定义 usd 场景的锚点?

问题描述 投票:0回答:0

我正在尝试制作一个 iOS AR 应用程序,并且我正在使用我的自定义模型自定义标准 AR 应用程序模板。我需要找到我的自定义 usd 场景的锚点名称。有人告诉我,来自 Reality Composer 的场景已经有一个锚点,我可以用它来添加手势。

当我在 Xcode 中启动一个 AR 应用程序并使用标准的自定义框场景时,锚点的名称是“simpBld_root”。所有的作品都在那里找到,我可以操纵模型。虽然在使用导入的自定义模型时,我不确定如何获取锚的名称。看着控制台我以为它会是“美元场景”,但这似乎不起作用。我需要锚点来缩放、旋转和变换模型,但模型只会在单击时再次隐藏。

寻找有关如何处理自定义 usd 场景的建议。

我当前的代码如下所示:

import SwiftUI
import RealityKit

struct ContentView : View {
    var body: some View {
        ARViewContainer().edgesIgnoringSafeArea(.all)
    }
}

struct ARViewContainer: UIViewRepresentable {
    
    func makeUIView(context: Context) -> ARView {
        
        let arView = ARView(frame: .zero)
        typealias GstReady = Entity & HasCollision
        
        // Load the "Box" scene from the "Experience" Reality File
        let boxAnchor = try! Experience2.loadBox()
        
        // Add the box anchor to the scene
        arView.scene.anchors.append(boxAnchor)
        
        print(boxAnchor)
                
        if let entity = boxAnchor.findEntity(named: "simpBld_root") as? GstReady {
            entity.generateCollisionShapes(recursive: false)
            arView.installGestures([.rotation, .scale, .translation], for: entity)
        }
        
        return arView
        
    }
    
    func updateUIView(_ uiView: ARView, context: Context) {}
    
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif

标准盒子场景控制台:

我的自定义 usd 场景的控制台

ios augmented-reality arkit realitykit usd
© www.soinside.com 2019 - 2024. All rights reserved.