我已经下载了我的 .usdz 模型文件并将其保存在我的手机中,并且我有我的模型文件的目标 url。当我投影我的模型时,它会随机放置在场景视图中。以下是我用于投影模型的功能。
func loadModel(url : URL,modelFormat : String) {
print("downloaded model local url== \(url)")
let scene = try! SCNScene(url: url, options: nil)
let wrapperNode = SCNNode()
for child in scene.rootNode.childNodes {
wrapperNode.addChildNode(child)
}
addChildNode(wrapperNode)
}
如何将模型放置在平面上?我一直在检查平面检测代码,但他直接使用模型而不是 url。
let tapLocation = recognizer.location(in: sceneView)
let hitTestResults = sceneView.hitTest(tapLocation, types: .existingPlaneUsingExtent)
guard let hitTestResult = hitTestResults.first else { return }
let translation = hitTestResult.worldTransform.translation
let x = translation.x
let y = translation.y
let z = translation.z
guard let shipScene = SCNScene(named: "ship.scn"),
let shipNode = shipScene.rootNode.childNode(withName: "ship", recursively: false)
else { return }
shipNode.position = SCNVector3(x,y,z)
sceneView.scene.rootNode.addChildNode(shipNode)
也许您可以指导我如何将此处的 url 传递给项目模型?