Scenekit - SCNLookupConstraint导致childNode的ConvertPosition不更新其位置

时间:2018-02-03 06:30:28

标签: scenekit swift4

我有一个主节点,带有一系列childNodes。 childNodes是firePoints,因此当目标进入视图时,主节点旋转到目标,火点是我需要从中射击的偏移量。如果我通过我构建的一些矢量类进行目标,它可以正常工作,但如果我在主节点上使用SCNConstraint,它会更顺畅。主节点(和火点)旋转到目标,但是当调用convertPosition时,火点矢量值不会改变。我可以看到fireNodes正在与基节点一起旋转。感谢

func shoot()
    {
        isShooting = true
        // Convert position so that projectile fires from FirePoint
        let fireNode        = gNodes.getNode(vName: attr.name + "FirePoint" + "\(attr.firePointsSequence)", vRequired: true, vError: "FP0-Sproj")
        let fireNodeStart   = gNodes.gameNodes.convertPosition(fireNode.presentation.position, from: attr.node)

        print("FireNodePosition: \(fireNodeStart) 
}
func setTarget()
    {
        attr.node.constraints = []
        let vConstraint = SCNLookAtConstraint(target: targetNode)
        vConstraint.isGimbalLockEnabled = true
        attr.node.constraints = [vConstraint]
    }

1 个答案:

答案 0 :(得分:0)

我有这个问题。为我解决的是使用SCN的演示文稿scn。它有最新的职位。