Swift 将SCNAction应用于SceneKit中具有约束的节点
我有一个有约束的节点;更具体地说,它有一个SCNLookAtConstraint:Swift 将SCNAction应用于SceneKit中具有约束的节点,swift,constraints,scenekit,Swift,Constraints,Scenekit,我有一个有约束的节点;更具体地说,它有一个SCNLookAtConstraint: let constraint = SCNLookAtConstraint(target: scene.retriveNodeFromScene(cameraNodeName)) constraint.gimbalLockEnabled = false self.constraints = [constraint] 但当我想把节点移动到其他坐标系时,它就是不移动。我没有收到任何错误,只是什
let constraint = SCNLookAtConstraint(target: scene.retriveNodeFromScene(cameraNodeName))
constraint.gimbalLockEnabled = false
self.constraints = [constraint]
但当我想把节点移动到其他坐标系时,它就是不移动。我没有收到任何错误,只是什么也没发生。我做了一些测试,若我移除了约束,一切都正常,节点移动并没有问题。那么,我该怎么办?我的问题是否有解决方案,或者我是否应该找到另一种方法,既与我的约束相同,又与SCNAction兼容
行动守则:
let timeForAction = calculateTimerForSecoundAction()
let action = SCNAction.moveTo(calculateEndingLocation(), duration: timeForAction)
let delay = dispatch_time(DISPATCH_TIME_NOW, Int64(NSEC_PER_SEC * timeForAction))
self.runAction(action)
explodeAfterReachingFinalPosition(timeForAction)
您可以创建一个新的中间节点用于操作,并将当前节点作为具有注视约束的子节点。与原始海报相同的问题。 我根据诺格斯的建议解决了这个问题 “LookAt”约束会打断/阻止在视图中发生这些动作。有趣的是,根据控制台,摄影机节点正在移动,只是在视图中没有更新。我还可以在视图中移动摄影机节点,将其更改为cameraNode.position=newPosition,但不使用漂亮的动画过渡
将cameraNode设置为emptyNode的父级。将lookAt约束指定给cameraNode,将moveTo约束指定给emptyNode。是否可以将创建和添加操作的代码包括在内?已添加。但是没有错误。它可能会起作用,但我不知道这是否是最优雅的方式。