【发布时间】:2015-07-14 07:07:42
【问题描述】:
我想知道是否有人知道您是否在节点上执行 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 的更新位置。
如果有人遇到类似问题或只想查看代码,请告诉我,我会发布!
【问题讨论】: