2017-08-09 31 views
0

我使用SCNTransaction移动游戏对象。更具体地说,当玩家在屏幕上的某个地方点击时,该物体将移向该目的地。但有时玩家可能会犯错,所以我想创建一个可以终止所有SCNTransactions的按钮。如何终止正在进行的SCNTransaction?

但是,与SKAction不同的是,根据Apple开发人员文档,不能终止SCNTransaction,也不能从外部终止SCNTransaction,甚至不能从外部暂停SCOTransaction。更糟的是,我发现在对象到达目的地之前,它的位置已经改变到了目的地的位置,所以我不能简单地使用另一个SCNTransaction在知道对象的当前位置之后抵消正在进行的那个。

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

回答

0

SCNTransaction其动画原理遵循Core Animation和CATransaction之一。要停止动画,您必须将模型值设置为当前的演示值。例如:

node.position = node.presentation.position 

但是,如果你熟悉SKAction,想实现你的SceneKit应用同样的逻辑,你可能想看看SCNAction。他们的工作方式相同。

+0

非常感谢。也许使用SCNAction是一个更好的解决方案。我会试试看。 –

相关问题