2015-01-21 75 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

相关问题