当前位置: 首页 > news >正文

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

如何获取

  • Unity官方资源商城——国产原创,匠心之作,值得拥有。
  • GitHub售后技术支持——详细文档、使用指南、更新日志。

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

免费次级

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

  • JS版本:GitHub MojoJS-Animation
  • C版本:GitHub Mojoc-Tween
  • 开源的Unity插件:GitHub MojoUnity-Packages

结语

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

http://www.lryc.cn/news/160721.html

相关文章:

  • Vue3响应式源码实现
  • 【RapidAI】P1 中文文本切割程序
  • 4、QT中的网络编程
  • 单例模式(饿汉式单例 VS 懒汉式单例)
  • Oracle数据库连接之TNS-12541异常
  • sql中的排序函数dense_rank(),RANK()和row_number()
  • Flask狼书笔记 | 05_数据库
  • HJ70 矩阵乘法计算量估算
  • Doris数据库使用记录
  • 华为OD机试真题【篮球比赛】
  • sublime text 格式化json快捷键配置
  • Spring Cloud 面试题总结
  • 如何实现24/7客户服务自动化?
  • 2022年12月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 【Spring Cloud系列】 雪花算法原理及实现
  • Postgresql 阿里云部署排雷
  • l8-d10 TCP协议是如何实现可靠传输的
  • 9月9日扒面经
  • 项目实战:ES的增加数据和查询数据
  • vs code调试rust乱码问题解决方案
  • 大数据课程K22——Spark的SparkSQL的API调用
  • 数据结构学习系列之顺序表的两种删除方式
  • 机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)
  • ES-索引管理
  • linux中常用shell脚本整理
  • 介绍PHP
  • selenium+find_elements用法
  • 1DM+下载器_11.2.1魔改增强版下载
  • vue3:3、项目目录和关键文件
  • ChatGPT实战与私有化大模型落地