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

news2025/1/21 18:55:03

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-Bezier

  

MojoTweenSample-Material

 

更多见GitHub上的视频:https://github.com/scottcgi/MojoTween/tree/main/Samples

如何获取

  • 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.coloradmin.cn/o/991088.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

恒运资本:人民币汇率何时走出低谷?

9月7日,国家外汇管理局发布统计数据显现,到2023年8月末,我国外汇储藏规划为31601亿美元,较7月末下降442亿美元,降幅为1.38%。 国家外汇管理局相关负责人表明,2023年8月,受首要经济体微观经济数…

《机器人学一(Robotics(1))》_台大林沛群 第 7 周 【轨迹规划_综合】Quiz 7

题 4-5 存疑,仅供参考,欢迎交流 文章目录 题4-9:题4-5求解代码: Python题6-7求解代码: Python求解 θ4-θ6 时, 记得 将 R 改成相应的!!!! 题8-9求解代码&…

深浅拷贝与赋值

数据类型 数据类型 在JavaScript中,数据类型有两大类。一类是基本数据类型,一类是引用数据类型。 基本数据类型有六种:number、string、boolean、null、undefined、symbol。 基本数据类型存放在栈中。存放在栈中的数据具有数据大小确定&a…

2023高教社杯数学建模B题思路代码 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播, 在不同界面上产生反射, 利用这一原理,从测量船换能器垂直向海底发射声波信 号,并记录从声波发射到…

更换Eclipse的JDK版本

点击window->Preferences 选择Installed JREs 点击 Add 按钮, 选择Standard VM, 点击 Next。然后选择自己安装的JDK路径

测量仪器方案——核辐射检测仪方案

核辐射在我们日常生活中是比较常见的,基本在任何地方都会存在或多或少的辐射放射源,当它的强度超过一定数值后,就会对人体造成一定的影响。如果是在辐射强度过高的领域工作时,建议选择核辐射检测仪作为防护仪器。目前核辐射检测仪…

一点感受

做了两天企业数字化转型的评委,涉及全国最顶级的公司、最顶级的实际落地项目案例,由企业真实的落地团队亲自当面讲解。主要是为了了解了解真实的一线、真实的客户、真实的应用现状和应用水平。 (1)现状 我评审的涉及底层技术平台&…

无涯教程-JavaScript - HEX2DEC函数

描述 HEX2DEC函数将十六进制数字转换为十进制。 语法 HEX2DEC (number)争论 Argument描述Required/Optionalnumber 您要转换的十六进制数。 数字不能超过10个字符(40位)。数字的最高有效位是符号位。其余的39位是幅度位。 负数使用二进制补码表示。 Required Notes 十六进…

在Spring Boot项目中使用JPA

1.集成Spring Data JPA Spring Boot提供了启动器spring-boot-starter-data-jpa,只需要添加启动器(Starters)就能实现在项目中使用JPA。下面一步一步演示集成Spring Data JPA所需的配置。 步骤01 添加JPA依赖。 首先创建新的Spring Boot项目…

Git_回退到上一次commit与pull

git 回退到上个版本 rollback 回滚 git reset HEAD, git 回退到上一版本

Codeforces Round 895 (Div. 3) A ~ F

Dashboard - Codeforces Round 895 (Div. 3) - Codeforces A 问多少次能使a 和 b相等&#xff0c;就是abs(a - b) / 2除c向上取整&#xff0c;也就是abs(a - b)除2c向上取整。 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #de…

vue checkbox-group和checkbox动态生成,问题解决

源码 <el-checkbox-group v-model"form[keyItem.name]"><el-checkboxv-for"(checkboxItem,cindex) in keyItem.options.split(,)":key"cindex":label"checkboxItem"></el-checkbox></el-checkbox-group> 我是…

freertos之任务运行时间统计实验

这里写目录标题 任务时间统计函数时间统计API函数使用流程实验 任务时间统计函数 void vTaskGetRunTimeStats(char * pcWriteBuffer); 时间统计API函数使用流程 实验 1.首先现在FreeRTOSConfig.h文件里将configGENERATE_RUN_TIME_STATS 和configUSE_STATS_FORMATTING_FUNCTIO…

scanf和scanf_s函数详解

目录 引言&#xff1a; 1.scanf函数的用法&#xff1a; 2.scanf_s函数的用法&#xff1a; 3.scanf和scanf_s的区别&#xff1a; 结论&#xff1a; 引言&#xff1a; 在C语言中&#xff0c;输入函数scanf是非常常用的函数之一&#xff0c;它可以从标准输入流中读取数据并将其…

在学习编程的过程中,我会记录下以下内容:

在学习编程的过程中&#xff0c;我会记录下以下内容&#xff1a; 常用代码片段&#xff1a;我会记录一些常用的代码片段&#xff0c;例如文件读写、列表操作、字符串处理等。这些代码片段可以在日常编程中快速复用&#xff0c;提高编码效率。 # 文件读取 with open(file.txt,…

手术麻醉信息系统源码 医院麻醉监护的功能覆盖整个手术与麻醉的全过程

手术麻醉信息系统源码 PHP手麻系统源码 手术麻醉信息系统是HIS产品的中的一个组成部分&#xff0c;主要应用于医院的麻醉科&#xff0c;属于电子病历类产品。医院麻醉监护的功能覆盖整个手术与麻醉的全过程&#xff0c;包括手术申请与排班、审批、安排、术前、术中和术后。 手…

0908集合总结

Java集合 Java的集合类主要由Collection接口和Map接口派生而来&#xff0c;其中Collection接口由两个常用的子接口&#xff0c;即List接口和Set接口&#xff0c;所以常说的Java集合框架由三大类接口构成&#xff08;Map接口、List接口和Set接口&#xff09; List接口 List的…

无锡哲讯与喜德金属联手推动“百城千园行”“十园千企”无锡站活动,数字化赋能活动动

当前&#xff0c;新一轮科技革命和产业革命席卷全球&#xff0c;数字经济发展速度之快、辐射之广、影响之深前所未有。2023年9月7日&#xff0c;为加快推进制造业智能化改造、数字化转型&#xff0c;促进供需两端精准对接&#xff0c;加速提升汽车及零部件产业集群企业智能制造…

【多线程】内存可见性

一、什么是内存可见性 内存可见性是在编译器优化的背景下&#xff0c;一个线程修改了变量而另一个线程却没有感知到修改。举个例子&#xff0c;一个线程一直频繁的读取变量n并将n值与某一值进行比较&#xff0c;在底层这个操作对应着两个指令&#xff1a;读取内存中的n值加载到…

【Redis】深入探索 Redis 的数据类型 —— 字符串 string

文章目录 前言一、string 类型的操作命令设置和获取相关命令1. SET 和 GET2. MSET 和 MGET3. SETNX、SETEX、SETPX 计数相关命令1. INCR 和 INCRBY2. DECR 和 DECRBY3. INCRBYFLOAT 字符串操作相关命令1. APPEND2. GETRANGE3. SETRANGE4. STRLEN string 相关命令总结 二、strin…