gpt4 book ai didi

swift - 如何检查 SCNAction 是否已在 Swift 3 中完成

转载 作者:行者123 更新时间:2023-11-28 06:22:50 25 4
gpt4 key购买 nike

这里我有一组动画作用于名为 testNodeSCNSphere

//run this during the duration of the two animations below
earthNode.runAction(SCNAction.rotateBy(x: 0, y: 5, z: 5, duration: 4))
//run this action right away
earthNode.runAction(SCNAction.moveBy(x: 0, y: 0, z: -5, duration: 2))
//RUN THIS ACTION AFTER ACTION ABOVE IS COMPLETED
earthNode.runAction(SCNAction.moveBy(x: 0, y: 0, z: 5, duration: 2))

我试图阻止最后两个动画同时发生。我如何检查第二个动画是否完成,然后运行列出的最后一个动画。我也很感激检查一组同时运行的动画是否已完成的解释。

最佳答案

你可以像使用 SKActions 一样制作一个序列:

/* Actions */
let moveUp = SKAction.moveBy(x: 0, y: 100, duration: 1.0)
let zoom = SKAction.scale(to: 2.0, duration: 0.25)
let sequence = SKAction.sequence([moveUp, zoom])

let node = SKNode()
node.run(sequence)

SCNAction.group()SCNAction.sequence() 用于此:

class func group([SCNAction])

创建一个并行运行一组 Action 的 Action 。

class func sequence([SCNAction])

创建一个按顺序运行一组 Action 的 Action (我猜这就是你需要的)。

/* Action with sequence of actions */
let move = SCNAction.sequence([moveUp, moveDown, moveLeft, moveRight]) // will be executed one by one
let rotate = SCNAction.rotateBy(x: 0, y: .pi, z: 0, duration: 2)

/* Group actions */
let group = SCNAction.group([rotate, move])

node.runAction(group, completionHandler:nil)

关于swift - 如何检查 SCNAction 是否已在 Swift 3 中完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42840166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com