我正在尝试制作一个 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