如何在Swift 3中检查SCNAction是否已完成

时间:2017-03-16 16:49:36

标签: swift scenekit

在这里,我有一组动画作用于名为SCNSphere的{​​{1}}

testNode

我试图阻止最后两个动画同时发生。如何检查第二个动画是否完成然后运行列出的最后一个动画。我还要感谢检查一组同时运行的动画是否已完成。

1 个答案:

答案 0 :(得分:1)

您可以制作与SKActions类似的序列:

/* Actions */
let moveUp = SKAction.moveBy(x: 0, y: 100, duration: 1.0)
let zoom = SKAction.scale(to: 2.0, duration: 0.25)
let sequence = SKAction.sequence([moveUp, zoom])

let node = SKNode()
node.run(sequence)

SCNAction.group() SCNAction.sequence()

class func group([SCNAction])

创建一个并行运行一系列操作的操作。

class func sequence([SCNAction])

创建一个按顺序运行一系列动作的动作(我猜你需要这个)。

/* Action with sequence of actions */
let move = SCNAction.sequence([moveUp, moveDown, moveLeft, moveRight]) // will be executed one by one
let rotate = SCNAction.rotateBy(x: 0, y: .pi, z: 0, duration: 2)

/* Group actions */
let group = SCNAction.group([rotate, move])

node.runAction(group, completionHandler:nil)