MojoTween:使用「Burst、Jobs、Collections、Mathematics」优化实现的Unity顶级「Tween动画引擎」

MojoTween是一个令人惊叹的Tween动画引擎,针对C#和Unity进行了高度优化,使用了Burst、Jobs、Collections、Mathematics等新技术编码。

MojoTween提供了一套完整的解决方案,将Tween动画应用于Unity Objects的各个方面,并可以通过Editor UI可视化Tween动画的运行细节。

MojoTween的实现代码,简洁、清晰、易于理解,有详细的注释,使用#region进行组织,且易于自定义自扩展,同时还拥有丰富的代码示例与详细的使用文档

技术细节

缓动功能

  • 支持完全标准的EaseInOut效果。
  • 支持如Smooth、ShakeXYZ、BezierQuadraticXYZ、BezierCubicXYZ等更多效果。
  • 基于Burst和Mathematics优化所有函数。
  • 尽可能使用表达式扩展来优化函数。

设置动画

  • Transform可以使用Move、Scale、Rotate、Shake Position / Scale / Rotation、Bezier Quadratic / Cubic Move执行Tween。
  • RectTransform可以使用Anchored、OffsetMax、OffsetMin、sizeDelta执行Tween。
  • Graphic可以使用Fade、Color、RGB执行Tween
  • CanvasGroup可以使用Fade执行Tween
  • SpriteRenderer可以使用Fade执行Tween
  • AudioSource可以使用Volume执行Tween。
  • Material可以使用Float、Int、Vector、Color执行Tween。

动画控制

  • 支持在一个Tween中使用Append、AppendInterval、AppendCallback、AppendIntervalCallback、Add、AddWithDelay、AddDelayCallback、AddAfterAppend等,进行队列和并发操作。
  • 支持Tween Play、Rewind、Restart、GotoStart、Reverse、Stop、Pause等。
  • 支持IsPlaying、IsRewinding、IsPaused、IsStopped、IsCompleted、IsRecycled等,丰富的Tween状态测试。
  • 支持SetOnStart、SetOnComplete、SetOnStop、SetOnRecycle等,多种Tween回调绑定。
  • 支持Tween默认ease、relative设置。
  • 支持设置属性的链式调用。

动作控制

  • 支持Float、Vector2、Vector3、Vector4的缓动。
  • 支持使用SetOnStart、SetOnComplete进行独立回调。
  • 使用SetRelativeAt、SetEaseAt设置每个动作。
  • 支持带有SetExtraParams的自定义参数。
  • 支持设置属性的链式调用。

管理控制

  • 支持更新Tweens StopAll、RestartAll、ReverseAll、RewindAll、PauseAll、TogglePauseAll、RecycleAll等。
  • 支持本地数据释放。

性能缓存

  • 所有Tween都将被缓存和重用,无需手动管理内存数据。
  • 所有Tween操作,都有独立的缓存重用。
  • 所有操作的所有值,都由NativeList缓存,并由Jobs使用。
  • 所有动画功能和动作值设置,都通过BurstCompile和Unsafe Code及Mathematics进行了优化。

运行时信息

  • 集成编辑器扩展,以轻松快速地扩展检查器和窗口。
  • 所有Tween运行时信息,都可以通过Editor UI访问。

自定义扩展

  • 引擎代码具有高度内聚性和低耦合性,具有清晰的层次结构,易于扩展。
  • 许多引擎公共API,是基于核心代码的扩展实现的,因此使用核心代码定制自己的函数扩展,是非常自然和流畅的。
  • 所有引擎扩展都使用C#(static this)扩展方法,这使得使用起来方便快捷。

支持的平台

  • 理论上Unity支持的任何平台。

代码架构

使用示例 

MojoTweenSample-StartTransform

MojoTweenSample-Transform

MojoTweenSample-Shake

MojoTweenSample-Rewind

MojoTweenSample-Bezier

MojoTweenSample-StartUI

MojoTweenSample-UITransform

MojoTweenSample-Material

MojoUnityTweenSample-Runtime

如何获取

特别说明:MojoTween内置了一个Unity编辑扩展,可以非常轻松高效地自定义Unity的窗口面板,以及还有超多的技术细节优化技巧,包括代码的命名规范组织管理——强迫症地说,代码不仅实现优雅对称整齐

免费次级

Tween动画的核心是算法,MojoTween拥有超强的动画算法实现,几乎可以实现任何动效特效,但任何算法都不是一蹴而就的,而是需要不断迭代打磨的——那么,在升级到MojoTween之前,有长期积累使用的一个Tween算法,其设计架构难以实现Rewind与扩展EaseInOut(如Smooth、Shake、Bezier),但几乎可以满足大部分标准动画需求——代码已经开源,如下:

结语

工欲善其事,必先利其器——MojoTween助您实现动人特效。

猜你喜欢

转载自blog.csdn.net/tom_221x/article/details/132756973