我想知道是否有人知道你是否在一個節點上執行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]
沒有這裏涉及塊給你一個機會,隨着時間的推移定製的操作:當您創建行動
因此,是否有可能創建一個自定義的動作塊,以便能夠計算節點在任何給定時刻的位置? – Chris