簡體   English   中英

如何在ARKit2中將3D對象添加為SCNNode?

[英]How to add a 3D object as SCNNode in ARKit2?

我是ARKit2並跟隨了一些教程和官方文檔。

問題

如何將3d對象添加為SCNNode()

let artFrame = SCNBox(width: CGFloat(w), height: CGFloat(h), length: 0.002, chamferRadius: 0.02)
artFrame.firstMaterial?.diffuse.contents = imageToDisplay
let artFrameNode = SCNNode(geometry: artFrame)
artFrameNode.physicsBody = SCNPhysicsBody(type: .static, shape: SCNPhysicsShape(geometry: artFrame, options: nil))
artFrameNode.position = SCNVector3Make(Float(x), Float(y), Float(z*3))
sceneView.scene.rootNode.addChildNode(artFrameNode)

按照上面的代碼,我在SCNBox中使用預定義的SCNNode 有什么方法可以使用.dae.obj3d對象代替SCNBox並用Image包裝?

我查看了文檔,並說可以將Mesh objects添加到SCNNode

https://developer.apple.com/documentation/scenekit/scnnode/1419841-init

編輯

每當我添加新的.dae並將其轉換為.scn時。 Xcode引發以下錯誤:

/Users/paly/Library/Developer/Xcode/DerivedData/sample-bohiilnhthuwfkechtmhscucgccc/Build/Products/Debug-iphoneos/sample.app: resource fork, Finder information, or similar detritus not allowed
Command CodeSign failed with a nonzero exit code

要將.dae.obj對象添加到場景中,您需要獲取.dae對象的childNode並將其簡單地添加到場景中。 我建議僅使用Xcode的“編輯器”菜單將.dae文件轉換為.scn

您還需要節點的名稱,可以在“場景圖視圖”中訪問該節點的名稱。 只需單擊.obj文件,然后單擊Xco​​de場景編輯器左下角的“場景圖視圖”按鈕。 在這里,我的節點名稱是“ objectNode”:

在此處輸入圖片說明

現在,您可以將3D對象作為SCNNode到場景中:

override func viewDidLoad() {
    super.viewDidLoad()
    ...

    let objectScene = SCNScene(named: "object.scn") // Here, add your .obj or .scn file
    let objectNode: SCNNode = objectScene.rootNode.childNode(withName: "YourObjectName", recursively: true) // Get the object name from Scene Graph View, which is "objectNode" for me.
    objectNode.position = SCNVector3(0,0,-4)

    let scene = SCNScene() // Main scene of the app
    scene.rootNode.addChildNode(objectNode)
    sceneView.scene = scene
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM