我是 ARKit 的新手,做小项目将对象添加到平面。
我在 Apple 演示项目中遵循步骤:在增强现实中处理 3D 交互和 UI 控件。
如果我加载 scn 模型(或 dae、obj)并放置在平面上使用添加锚,它工作得很好。
但是当我改变使用 USDZ 模型(从 Apple 下载)来加载并将它放在我的头上时。我更改使用添加子节点并设置位置但不工作,结果与添加锚点相同。
// Test add usdz object
guard let url = Bundle.main.url(forResource: "wheelbarrow", withExtension: "usdz"),
let object = VirtualObject(url: url) else {
print("Error usdz file")
return
}
// Add Child Node not working
// let object = obj.clone()
// object.load()
// object.position = focusSquare.position
// sceneView.scene.rootNode.addChildNode(object)
self.virtualObjectLoader.loadVirtualObject(object, loadedHandler: { [weak self] loadedObject in
do {
print("Load Virtual Object:\(object.referenceURL.absoluteString)")
let scene = try SCNScene(url: object.referenceURL, options: nil)
self?.sceneView.prepare([scene], completionHandler: { _ in
DispatchQueue.main.async {
self?.placeVirtualObject(loadedObject)
loadedObject.isHidden = false
}
})
} catch {
print("Error: \(error)")
fatalError("Failed to load SCNScene from object.referenceURL")
}
})