【发布时间】:2020-01-19 21:56:17
【问题描述】:
我正在寻找一种链接 SceneKit 动画的方法。
我正在向场景中添加 x 个节点,我想添加第一个节点,使其淡入,一旦它可见,然后我们转到下一个节点,直到所有节点都可见。所以我需要在我们开始第二个节点之前结束第一个节点上的动画。
显然,我尝试了一个带有 SCNActions 的 for 循环,但动画是批处理的,所以所有节点同时出现。
我不知道会添加多少节点,所以我无法制作序列。
处理此问题的最佳方法是什么?
编辑:
好的,我想如果我在将序列添加到暂停场景之前将其添加到节点(包括增加的等待间隔)
let sequence = SCNAction.sequence([.wait(duration: delay), .fadeIn(duration: 0.5)])
node.runAction(sequence)
然后,一旦添加了所有节点,我就会取消暂停场景,它会达到我正在寻找的效果。但这似乎很hacky。
有没有更好的办法?
【问题讨论】:
-
您可以将
runAction与在操作完成时调用的completionHandler结合使用。那会有帮助吗? developer.apple.com/documentation/scenekit/scnactionable/…