NodeA的SCNAction运行持续时间为10秒。 说4秒过去了。 如何获得正在进行的SCNAction的剩余持续时间(在这种情况下为6秒)?
我计划使用剩余的持续时间来动态创建另一个最多可累计10秒的SCNAction。
NodeA动作持续时间+ NodeB动作持续时间= 10.
答案 0 :(得分:1)
如果您想操纵elapsedTime
,则应使用SCNAction.customAction
,例如:
let runningAction = SCNAction.customAction(duration: 10) { (node, elapsedTime) -> () in
// do stuff here with elapsedTime
print(elapsedTime)
}
当动作执行时,SceneKit会反复调用该块,直到动作的持续时间到期。对于每个调用,SceneKit计算经过的时间并将其传递给块
文档here