gpt4 book ai didi

swift - ARKit:通过添加 anchor 将 USDZ 模型放置在平面上,但它总是在我的头顶上方

转载 作者:搜寻专家 更新时间:2023-10-31 22:53:09 24 4
gpt4 key购买 nike

我是 ARKit 的新手,正在做一个小项目,向平面添加对象。

我正在按照 Apple 演示项目的步骤进行操作:在增强现实中处理 3D 交互和 UI 控件。

如果我加载 scn 模型(或 dae、obj)并放置在平面中使用添加 anchor ,它工作完美。

但是当我更改时使用 USDZ 模型(从 Apple 下载)加载并将它始终放在我的头顶上。我更改使用添加子节点并设置位置但不起作用,结果与添加 anchor 相同。

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

最佳答案

默认情况下,WheelBarrow.usdz 文件的规模很大。

enter image description here

您需要将模型缩小到 0.025 的值(对于所有三个轴):

wheelBarrowNode.scale = SCNVector3(x: 0.025, y: 0.025, z: 0.025)

enter image description here

希望这对您有所帮助。

关于swift - ARKit:通过添加 anchor 将 USDZ 模型放置在平面上,但它总是在我的头顶上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56453631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com