ARKIT DAE模型位置



i使用.dae模型创建scnnode。

   let node = SCNNode()  
   let scene = SCNScene(named: "scene.scnassets/scene.dae")! 
   for child in scene.rootNode.childNodes
   {
       node.addChildNode(child)
   }

然后添加simbtransform并将节点添加到AR场景

   var translation = matrix_identity_float4x4
   translation.columns.3.z = -1
   node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
   self.sceneView.scene.rootNode.addChildNode(node)

当我移动相机节点时。所以我不能四处走动或靠近走近。

但是当我这样做时,它会按照我的预期工作。

  let node = SCNNode(geometry: SCNBox(width: 0.5, height: 0.5, length: 0.5, chamferRadius: 0)) 
  var translation = matrix_identity_float4x4
  translation.columns.3.z = -1
  node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
  self.sceneView.scene.rootNode.addChildNode(node)

因此,如何使用.dae模型连接节点以指定位置而不是相机。

在您执行此代码的哪种方法中?
var translation = matrix_identity_float4x4 translation.columns.3.z = -1 node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation) self.sceneView.scene.rootNode.addChildNode(node)

如果您在AR会话的更新方法中执行此操作,那么这是合乎逻辑的,因为您每次摄像机移动时都会更改对象的变换。确保您仅在场景设置中调用一次。

最新更新