【问题标题】:Relationship between sequence SCNActions and SCNNodes序列SCNActions和SCNNodes之间的关系
【发布时间】:2015-01-23 11:02:20
【问题描述】:

序列动作之间的关系是什么,例如由let sequence = SCNAction.sequence( [action1, action2] )SCNNodes 创建?

通常在调用node.runAction(action) 时会在动作和节点之间建立关联。我认为我不应该打电话给例如node2.runAction(action2),因为这可能会立即运行action2,因此忽略它在序列中对action1 的时间依赖性。

那么node.runAction(sequence)“隐式”将序列中的所有动作与同一个节点(即node)相关联是不是这样?或者是否可以在不同节点上按顺序运行单个操作,如果可以,如何?

更新 我想要完成的是:将node1node2node3 旋转 3 个动作(即一个组动作),然后执行一个移动动作node4(在节点层次结构中更靠前)当所有旋转都完成时(即序列操作)?

我想知道 (Swift) 语句的特定序列,用于在什么时间在哪个节点启动哪些操作。

【问题讨论】:

    标签: swift ios8 core-animation scenekit


    【解决方案1】:

    动作是独立的对象,不依赖于节点。它们在节点上操作,但在执行操作时该节点仅在一个变量中。您可以安全地在多个节点上运行相同的操作。

    排序操作的结果是一项新操作,您可以在任何节点上执行该操作,但在执行期间它将操作一个唯一节点(除非您使用基于块的自定义操作)。

    【讨论】:

    • 那么您使用什么语句序列来并行旋转node1node2node3(即作为组操作),然后在所有旋转完成后移动node4(即作为序列动作)?您在哪些节点和何时开始执行哪些操作?
    • 没有一个正确的答案。您可以编写一个块操作,在 node1 node2node3 上运行旋转操作,然后将此操作分组为等待操作,最后使用移动操作对结果进行排序并在 node4 上运行所有操作
    猜你喜欢
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2016-06-10
    • 2013-02-03
    • 2019-07-10
    相关资源
    最近更新 更多