2014-11-25 77 views
0

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

通常当node.runAction(action)被称为一个动作和一个节点之间的关联而成。我假设我不应该打电话给node2.runAction(action2),因为据推测这将立即运行action2并因此忽略其对序列中的action1的时间依赖性。

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

UPDATE我想什么来完成如下:3分的动作旋转node1node2,并node3(即一组动作),然后在node4执行一个移动动作(进一步向上在节点的层次)当所有的旋转都完成了(即一个序列动作)?

我想知道的(SWIFT)语句用于开始的特定序列的行动在该在何时节点。

回答

0

操作是自包含的对象,并且不绑定到节点。它们在节点上运行,但该节点仅在执行操作时位于一个变量中。您可以安全地在多个节点上运行相同的操作。

测序行动的结果是一个新的动作,你可以在任何节点上执行,但在执行过程中它会运行一个独特的节点(除非你使用自定义的基于块的作用,这是)。

+0

所以,不要那么你用什么顺序报表旋转'node1','node2','node3'并行(即作为组动作),然后移动'node4'当所有的旋转完成(即作为序列动作) ?你在哪些节点和什么时候开始了哪些操作? – Drux 2014-11-25 13:21:48

+0

没有一个正确答案。你可以编写一个在node1,node2和node3上运行旋转动作的块动作,然后将这个动作分组进行等待动作,最后用move动作对结果进行排序,并在node4上运行所有内容。 – mnuages 2014-11-28 17:35:19

+0

请提供一些示例代码? – Drux 2014-11-28 17:44:25