到目前为止,我想出了如何在Swift(worldTransform)中将本地节点位置转换为全局值。
我的问题是:如何以相反的方式转换它? (由于旋转,可能会改变子节点的x / y / z轴。)
我知道它与convertPosition有关,但我无法找到任何可以帮助我理解它的参考。
这就是我想要做的: 节点A是rootNode的子节点,位置为A. 节点B是rootNode的子节点,具有位置B和旋转B. 节点B1是节点B的子节点,其中包含本地坐标。 我想将Node B1移动到Node A的位置并替换它。
如何将节点A的坐标转换为节点B的本地系统?
干杯
答案 0 :(得分:5)
你必须在nodeB1
的父级坐标系中表达新的变换,并从
nodeA
父母的坐标系
nodeB1.transform = [nodeB1.parentNode convertTransform:nodeA.transform fromNode:nodeA.parentNode];
或世界坐标系
nodeB1.transform = [nodeB1.parentNode convertTransform:nodeA.worldTransform fromNode:nil];
当然,您可以将nodeB1.parentNode
替换为nodeB
,在这种情况下,nodeA
的父级是根节点