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

  • 相关阅读:
    VUE3 之 使用 Mixin 实现代码的复用 - 这个系列的教程通俗易懂,适合新手
    数字孪生智慧楼宇可视化平台实现对园区企业、公众服务一体化
    Windows 中环境变量的查看与设置
    Vue-集成环境
    路由备份策略
    沃尔玛、美客多跨境平台自养号全攻略:防关联环境系统搭建与养号技巧
    vue中组件之间的通信
    html静态商城网页制作 基于HTML+CSS+JavaScript在线服装商城店铺商城设计毕业论文源码
    输入学生成绩(最多不超过40),输入为负值时表示输入结束,统计成绩高于平均成绩的学生人数
    Abnova 环孢素A单克隆抗体,及其研究工具
  • 原文地址:https://blog.csdn.net/tom_221x/article/details/132756973