我正在使用SceneKit开发场景。我有一个带有子节点的主节点:
// Main node
SCNNode* planet = [SCNNode node];
planet.geometry = [SCNSphere sphereWithRadius:2];
planet.position = SCNVector3Make(0, -3, 5);
// sub-node
SCNNode* satellite = [SCNNode node];
satellite.geometry = [SCNSphere sphereWithRadius:0.4];
satellite.position = SCNVector3Make(4, 0, 0);
[planet addChildNode:satellite];
[scene.rootNode addChildNode:planet];
我使用NSTimer进行一些动作和一些动画处理。在计时器事件中,我这样做:
planetRotation + = 0.1; planet.rotation = SCNVector4Make(0,1,0,planetRotation);
但是,如果我尝试获取卫星节点的位置,我将始终获得相同的值。我试图让positionnode知道卫星节点的真实位置,但是没有任何变化。
更改父节点的旋转角度时,如何获取子节点的真实位置?
提前致谢
节点的位置以其父坐标系表示。就像UIKIt / AppKit中的视图一样。如果更改视图的框架,则其子视图的框架不会更改。
您想要的就是我们所说的子节点的世界变换(即,以场景根节点的坐标系表示的变换)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句