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

时间:2016-09-25 18:40:23

标签: ios swift scenekit

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

错误的代码失败

  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

1 个答案:

答案 0 :(得分:2)

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

  1. 线性(默认情况下,您正在看到的内容)
  2. 缓入(缓慢启动,快速完成)
  3. 轻松(快速启动,慢速完成)
  4. 缓和(缓慢完成,快速中间,缓慢完成)
  5. 这是通过enum:SCNActionTimingMode 设置的,其中每个都是一个案例。

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

    {{1}}

    这里提供了更多元化的时序行动:

    https://github.com/craiggrummitt/SpriteKitEasingSwift