Ios 在SceneKit中将全局节点位置转移到本地节点位置
到目前为止,我了解了如何在Swift(worldTransform)中将局部节点位置转换为全局值 我的问题是:我如何将它转换成另一种方式?(由于旋转,子节点的x/y/z轴可能会改变) 我知道这和我的位置有关,但我找不到任何有助于我理解它的参考资料 这就是我想做的: 节点A是rootNode的子节点,其位置为A。 节点B是rootNode的子节点,具有位置B和旋转B。 节点B1是节点B的子节点,其中包含局部坐标。 我想将节点B1移动到节点A的位置并替换它 如何将节点A的坐标转换为节点B的本地系统Ios 在SceneKit中将全局节点位置转移到本地节点位置,ios,swift,scenekit,Ios,Swift,Scenekit,到目前为止,我了解了如何在Swift(worldTransform)中将局部节点位置转换为全局值 我的问题是:我如何将它转换成另一种方式?(由于旋转,子节点的x/y/z轴可能会改变) 我知道这和我的位置有关,但我找不到任何有助于我理解它的参考资料 这就是我想做的: 节点A是rootNode的子节点,其位置为A。 节点B是rootNode的子节点,具有位置B和旋转B。 节点B1是节点B的子节点,其中包含局部坐标。 我想将节点B1移动到节点A的位置并替换它 如何将节点A的坐标转换为节点B的本地系统
干杯您必须在
节点B1
的父节点的坐标系中表达新的变换,并从
nodeA
父节点的坐标系
nodeB1.transform=[nodeB1.parentNode convertTransform:nodeA.transform fromNode:nodeA.parentNode]代码>
nodeB1.transform=[nodeB1.parentNode convertTransform:nodeA.worldtransfromnode:nil]代码>
当然,您可以用
nodeB
替换nodeB1.parentNode
,在这种情况下,nodeA
的父节点是根节点请看一看这个极好的答案:@sebastiandresler这个问题是关于精灵工具包的,这是关于场景工具包的。@DavidRönnqvist虽然您完全正确,但在我看来它仍然相关。