使用ARKIT swift检测平面后投影格式.usdz的模型

问题描述

我已经下载了我的 .usdz 模型文件并将其保存在我的手机中,我有我的模型文件的目标网址。 当我投影我的模型时,它会随机放置在场景视图中。下面是我用来投影模型的函数

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

如何将模型放在平坦的表面上?我一直在检查代码的平面 表面检测,但他直接使用模型而不是网址。

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 传递给项目模型?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)