停止/暂停 .runActionForever() SCNAction

Stop / Pause .runActionForever() SCNAction

如何暂停或停止 .runActionForever() 在没有密钥的情况下调用的 SCNAction?我看到了使用 node.removeActionForKey("action") 的选项,但我的 SCNAction 没有密钥。这就是我创建它的方式:

var turnAction = SCNAction.rotateByX(0, y: 1, z: 0, duration: 1)

...以及如何使用:

node.runAction(SCNAction.repeatActionForever(turnAction))

我试过的

我知道有方法 node.removeActionForKey("action") 但是当我为我的 SCNAction 创建一个 keyValue 时它得到 void 并且不能再与 .repeatActionForever() 一起使用.

我该如何阻止它?
提前致谢:)

你只要给节点另一个动作,之前的动作就停止了。你可以只对你的节点说旋转 0(所以什么也不会发生)。做类似的事情:

nodeName.runAction(SCNAction.rotateByX(0,y:0,z:0), duration: 1)

要使用键添加操作,请使用

SCNNode.runAction(SCNAction, forKey: String)

方法。

现在您可以通过该键删除特定操作

SCNNode.removeAction(forKey: String)

如果要结束并删除节点中的所有操作,只需使用以下代码:

node.removeAllActions()