如何将FadeOut持续时间添加到SCNAction

嘿我试图弄清楚如何结束scnActions移动行动与淡出持续时间。 基本上我有一辆车,汽车移动到现场然后突然停止一旦动作完成。 我希望尝试让汽车更顺畅地停下来。 但我真的需要弄清楚如何在scnAction上获得淡出持续时间。 我还检查了Apple的开发者页面,但这没有帮助。 如果解决方案在那里。 我不知道如何把它变成可用的swift代码。

失败的代码失败

let moveAction = SCNAction.moveTo(location, duration: 1.5) moveAction.fadeInWithDuration = 1 moveAction.fadeIn(withDuration: 1) moveAction = SCNAction.fadeIn(withDuration: 1) moveAction.fadeOut(1.0) moveAction.fadeOutWithDuration = 1 

您需要调整动作的时间模式,以便随着时间的推移平稳,缓慢地移动/变化。 Scene Kit(和Sprite Kit)有四种不同的模式。

  1. 线性(默认,您所看到的)
  2. 缓和(慢启动,快速完成)
  3. 缓和(快速启动,慢速完成)
  4. 缓和(缓慢完成,快速中间,缓慢完成)

这是通过枚举来设置的: SCNActionTimingMode将每个都作为一个案例。

由于Swift 3.0的简洁,它现在看起来像这样:

 let moveAction = SCNAction.move(to: location, duration: 1.5) moveAction.timingMode = .easeInEaseOut 

这里有更多种类的计时行动产品:

https://github.com/craiggrummitt/SpriteKitEasingSwift