2014-11-25 75 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