0

我已经下载了我的 .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 传递给项目模型?

4

0 回答 0