我使用SCNTransaction移动游戏对象。更具体地说,当玩家轻敲屏幕上的某个地方时,该物体将朝向该目的地移动。但有时玩家可能会做出错误的动作,所以我想创建一个可以终止所有SCNTransactions的按钮。
然而,与SKAction不同,SKAction可以用简单的行终止 - self.removeAllActions(),根据Apple Developer Documentation,SCNTransaction不能从外部终止甚至暂停。更糟糕的是,我发现在物体到达目的地之前,它的位置已经改变到了目的地的位置,因此在知道物体的当前位置后,我不能简单地使用另一个SCNTransaction来抵消正在进行的操作。
有人可以给我一些提示吗?非常感谢。
答案 0 :(得分:1)
SCNTransaction
及其动画原则遵循核心动画和CATransaction
之一。要停止动画,您必须将模型值设置为当前演示文稿值。例如:
node.position = node.presentation.position
但是如果您熟悉SKAction
并希望在SceneKit应用中实现相同的逻辑,那么您可能需要查看SCNAction
。他们的工作方式相同。