2015-05-04 69 views
0

我想知道是否有人知道你是否在一個節點上執行SCNAction,在節點執行動作的時候有沒有辦法,在哪裏可以找到它在場景座標系中的位置?在SCNNode上執行SCNAction是否更改節點位置?

比方說,我有兩個SCNNodes A和B ...

SCNNode *A, *B; 

,我想運行一個SCNAction對於A

A.position = SCNVector3Make(0.0,0.0,0.0); 
[A runAction:[SCNAction moveTo:SCNVector3Make(10.0,0.0,0.0)]]; 

而且一個正在運行的動作,有b按照它在實時?

[B runAction:[SCNAction repeatActionForever:[SCNAction moveTo:A.position]]]; 

所以每次B重複給定A的新更新位置移動到。

我得到的問題是,即使我將A的presentationNode設置爲上面的SCNAction,它仍然返回我設置的初始輸入(這很有意義),但是如何獲取A的更新位置?

側面說明:當我把我A.presentationNode.position獲取默認的零向量

解決問題

經過進一步研究,我發現瞭如何使用SCNSceneRendererDelegate,然後創建一個( void)方法,它更新了節點A的位置,然後在同一個方法中,我有一個將B移動到A的更新位置的SCNAction。

如果任何人有類似的問題或只想看代碼,我知道,我會發布它!

[SCNAction moveTo:A.position] 

沒有這裏涉及塊給你一個機會,隨着時間的推移定製的操作:當您創建行動

回答

0

A.position評估一次且僅一次。

+0

因此,是否有可能創建一個自定義的動作塊,以便能夠計算節點在任何給定時刻的位置? – Chris

相關問題