在SceneKit中使用不同节点运行SCNActions序列

时间:2018-02-01 05:56:35

标签: swift xcode scenekit sequences scnnode

我知道如何在 SceneKit 中逐个单个节点中创建 SCNActions 序列。但我想知道,如何使用不同的节点制作一系列 SCNActions ? 例如

  • 前进节点A
  • 前进节点B
  • 等一下
  • 向后移动节点A
  

我找到了 SpriteKit 的示例,但我无法使用它,这...   Run SKActions sequence with different nodes

序列的代码如下

var sequence = [SCNAction] ()
let force = SCNVector3(0.0, 0.0, -1.0)
let move = SCNAction.move(by: force!, duration: 1.5)
squence.append(move)
let actions = SCNAction.sequence(squence)
nodeSelected?.runAction(actions)

1 个答案:

答案 0 :(得分:1)

您可以使用customAction

let actionA = SCNAction.customAction(duration: 1.5) { (node, elapsedTime) in
    nodeA.position.z -= 1.0
}

let actionB = SCNAction.customAction(duration: 1.5) { (node, elapsedTime) in
    nodeB.position.z -= 1.0
}

let sequence = SCNAction.sequence([actionA,actionB])
anyNode.runAction(sequence)

任何节点的运行操作将首先移动nodeA然后移动nodeB。