如何终止SCNTransaction正在进行中?

时间:2017-08-09 23:58:15

标签: ios swift scenekit scntranscaction

我使用SCNTransaction移动游戏对象。更具体地说,当玩家轻敲屏幕上的某个地方时,该物体将朝向该目的地移动。但有时玩家可能会做出错误的动作,所以我想创建一个可以终止所有SCNTransactions的按钮。

然而,与SKAction不同,SKAction可以用简单的行终止 - self.removeAllActions(),根据Apple Developer Documentation,SCNTransaction不能从外部终止甚至暂停。更糟糕的是,我发现在物体到达目的地之前,它的位置已经改变到了目的地的位置,因此在知道物体的当前位置后,我不能简单地使用另一个SCNTransaction来抵消正在进行的操作。

有人可以给我一些提示吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

SCNTransaction及其动画原则遵循核心动画和CATransaction之一。要停止动画,您必须将模型值设置为当前演示文稿值。例如:

node.position = node.presentation.position

但是如果您熟悉SKAction并希望在SceneKit应用中实现相同的逻辑,那么您可能需要查看SCNAction。他们的工作方式相同。

相关问题