我为其中一个动画使用了AnimationController,但我需要经常更改该动画的速度。我正在寻找做到这一点的任何资源友好的方法,完美的就像AnimationController.setSpeed(float speed)一样,但遗憾的是不存在。
因此,当我只想更改速度而所有其他属性都应保持不变时,是否有比每次调用AinmationController.animate(...)更好的方法?

最佳答案

要更改整体速度,只需相应地调整update方法的增量:

animationController.update(speed * Gdx.graphics.getDeltaTime());


要更改单个动画的速度(仅在混合动画时有用),请使用#animate()方法返回的AnimationDesc实例。

AnimationDesc ad = animationController.animate(...);
ad.speed = 0.5f;


您可以在动画过程中更改AnimationDesc。

最后,您也可以访问AnimationController的当前AnimationDesc,尽管我不建议这样做:

animationController.current.speed = 0.5f;


tl; dr:最好的方法是使用AnimationController#update(delta)方法更改速度。

另请参阅:https://github.com/libgdx/libgdx/wiki/3D-animations-and-skinning

08-06 05:15