2015-01-21 76 views
4

到目前爲止,我想出瞭如何在Swift(worldTransform)中將本地節點位置轉換爲全局值。將全局轉移到SceneKit中的本地節點位置

我的問題是:如何將其轉換爲其他方式? (由於旋轉,可能會改變子節點的x/y/z軸)。

我知道它與convertPosition有關,但我找不到任何可以幫助我理解的參考。

這就是我想做的事: 節點A爲根節點的一個孩子,有一個位置A. 節點B爲根節點的一個孩子,有一個位置B和旋轉B. 節點B1是childnode節點B中有本地座標。 我想將節點B1移到節點A的位置並替換它。

如何將節點A的座標轉換爲節點B的本地系統?

乾杯

+0

請看看這個優秀的答案:[SKNode convertPoint toNode& fromNode confusion?](http://stackoverflow.com/a/21980663/172695) – 2015-01-21 10:43:11

+0

@ SebastianDressler這個問題是關於Sprite Kit的,這是關於Scene Kit的。 – 2015-01-21 10:50:46

+0

@DavidRönnqvist雖然你完全正確,但IMO仍然有關係。 – 2015-01-21 10:54:12

回答

5

你要表達新nodeB1的座標系中變換的父母,並從

  1. 要麼nodeA的座標系的父

    nodeB1.transform = [nodeB1.parentNode convertTransform:nodeA.transform fromNode:nodeA.parentNode];

  2. 或世界座標系

    nodeB1.transform = [nodeB1.parentNode convertTransform:nodeA.worldTransform fromNode:nil];

當然

您可以通過nodeB代替nodeB1.parentNode,在這種情況下nodeA的父是根節點

+0

謝謝。這工作非常完美! – Sebastian 2015-01-21 21:25:34

相關問題