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助您实现动人特效。

相关推荐
小春熙子7 小时前
Unity图形学之Shader结构
unity·游戏引擎·技术美术
Sitarrrr10 小时前
【Unity】ScriptableObject的应用和3D物体跟随鼠标移动:鼠标放置物体在场景中
3d·unity
极梦网络无忧10 小时前
Unity中IK动画与布偶死亡动画切换的实现
unity·游戏引擎·lucene
逐·風17 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
_oP_i19 小时前
Unity Addressables 系统处理 WebGL 打包本地资源的一种高效方式
unity·游戏引擎·webgl
Leoysq1 天前
【UGUI】实现点击注册按钮跳转游戏场景
游戏·unity·游戏引擎·ugui
_oP_i1 天前
unity中 骨骼、纹理和材质关系
unity·游戏引擎·材质
Padid2 天前
Unity SRP学习笔记(二)
笔记·学习·unity·游戏引擎·图形渲染·着色器
Tp_jh2 天前
推荐一款非常好用的C/C++在线编译器
linux·c语言·c++·ide·单片机·unity·云原生
dangoxiba2 天前
[Unity Demo]从零开始制作空洞骑士Hollow Knight第十八集补充:制作空洞骑士独有的EventSystem和InputModule
游戏·unity·c#·游戏引擎·playmaker