相关疑难解决方法(0)

添加SCNBillboardConstraint会使节点消失

在我在文档和互联网上阅读之后,我SCNBillboardConstraint会将节点旋转到始终面向pointOfView节点 - 在ARKit用户的相机的情况下.

问题是,当我添加SCNBillboardConstraint到子节点时,它消失了.节点只是SCNTexts添加为更复杂模型的子节点.层次结构如下所示:RootNode - > Text节点(其中两个).

在我将根节点添加到场景的根节点之后,我按以下方式添加此约束:

updateQueue.async {
    self.sceneView.scene.rootNode.addChildNode(virtualObject)
    self.sceneView.addOrUpdateAnchor(for: virtualObject)
    self.addBillboardContraintsToText(object: virtualObject)
}

func addBillboardContraintsToText(object: VirtualObject) {
    guard let storeNode = object.childNodes.first else {
           return
   }

   for node in storeNode.childNodes {
        if let geometry = node.geometry, geometry.isKind(of: SCNText.self) {
            let billboard = SCNBillboardConstraint()
            node.constraints = [billboard]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

文本节点的位置相对于其根节点设置正确,因此没有问题.当我添加一个,SCNLookAtConstraint但它的工作正常.

node.pivot = SCNMatrix4Rotate(node.pivot, Float.pi, 0, 1, 0)
let lookAt = SCNLookAtConstraint(target: sceneView.pointOfView)
lookAt.isGimbalLockEnabled = true
node.constraints = …
Run Code Online (Sandbox Code Playgroud)

ios scenekit swift arkit

10
推荐指数
1
解决办法
898
查看次数

标签 统计

arkit ×1

ios ×1

scenekit ×1

swift ×1