【问题标题】:Run SCNActions sequence with different nodes in SceneKit在 SceneKit 中使用不同节点运行 SCNActions 序列
【发布时间】:2023-03-20 01:45:01
【问题描述】:

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

  • 向前移动节点 A
  • 向前移动节点 B
  • 等待 1 秒
  • 向后移动节点 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)

【问题讨论】:

    标签: swift xcode scenekit sequences scnnode


    【解决方案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)
    

    使用任何节点运行操作将首先移动节点A,然后移动节点B。

    【讨论】:

    • 哦,谢谢你的帮助,你的回答对我帮助很大
    猜你喜欢
    • 1970-01-01
    • 2016-09-15
    • 2015-07-10
    • 2015-06-20
    • 1970-01-01
    • 2018-05-19
    • 2015-06-09
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多