【发布时间】:2016-12-29 16:23:50
【问题描述】:
目标是同时为多个 SCNNode 设置动画,然后在所有动画完成后调用完成块。并行动画具有相同的持续时间,因此如果一起开始,将同时完成。
This SO answer 建议对 Sprite Kit 使用 group 函数,但 Scene Kit 中没有类似功能,因为 SCNScene 类缺少 runAction。
一个选项是针对每个节点单独运行所有操作,并让每个操作调用相同的完成函数,该完成函数必须维护一个标志以确保它只被调用一次。
另一种选择是避免完成处理程序并在与动画持续时间匹配的延迟后调用完成代码。但是,这会在测试期间产生竞争条件,因为有时动画在完成之前就被暂停了。
不过,这似乎很笨拙。在 SceneKit 中对多个节点的动画进行分组然后调用完成处理程序的正确方法是什么?
【问题讨论】:
标签: ios animation scenekit skaction scnnode