我想知道是否有人知道您是否在节点上执行 SCNAction,有没有办法在该节点执行操作时,您可以找到它在场景坐标系中的位置?
假设我有两个 SCNNodes A 和 B ...
SCNNode *A, *B;
我想为 A 运行一个 SCNAction
A.position = SCNVector3Make(0.0,0.0,0.0);
[A runAction:[SCNAction moveTo:SCNVector3Make(10.0,0.0,0.0)]];
当 A 运行它的动作时,B 是否实时跟随它?
[B runAction:[SCNAction repeatActionForever:[SCNAction moveTo:A.position]]];
所以每次 B 重复给定一个新的更新位置 A 移动到。
我遇到的问题是,即使我将 A 的presentationNode 设置为上面的 SCNAction,它仍然会返回我设置的初始输入(这是有道理的),但是如何获得 A 的更新位置?
旁注:当我采用 A.presentationNode.position 时,我得到默认的零向量
已解决的问题
经过进一步研究,我发现了如何使用 SCNSceneRendererDelegate 然后创建了一个(void)方法来更新节点 A 的位置,然后在同一个方法中我有一个 SCNAction 将 B 移动到 A 的更新位置。
如果有人遇到类似问题或只想查看代码,请告诉我,我会发布!