Unity IFramework 框架学习笔记 2021 (二): Tween(动画模块)

Tween(动画模块)

附上IFramework 下载地址:IFramewrok

IFramework QQ交流群:782290296

顾名思义,该模块是对动画的封装,最核心的类是:

1.Tween (动画类)

2.TweenValue (动画数据类)

最重要的就是这两个类了,但是为了方便理解,我们从动画提供给我们的使用的api入手,首先有一个静态扩展类TweenEx

这个类提供了一些动画接口,DoMove(移动坐标),DoMoveX(移动x坐标)等等,用过dotween的小伙伴肯定很了解,没用过的看着api名字也肯定可以看懂。各个参数的意思其实也非常明显,初始值,最终值,周期时间,是否卡顿(即没有浮点数),环境)。但是这些api的实现,都是去调用DoGoto这个函数,那我们进到里面看。

首先,先去获取一个动画类,然后去执行他的Config函数和Run函数,最后返回。那么我们进去里面看从这个api获取的动画类是什么类。

一个是SingleTween(简单动画类),另一个是AraayTween(数组动画类)。其实很容易理解,简单动画类就是一段动画,而数组动画类则是多段动画,在上面也是有提供多段动画的api的,只是我没有截图出来,传入的最终值是一个数组。最重要的是,这两个动画类都是继承至我们上面提到的核心类(Tween)类。我们先进去看Tween类。

首先,继承RecyelableObject类,说明这是一个可回收的类,

该类声明了一些属性,是否可回收啊,动画方向啊,完成后的回调,循环类型等等,这些看不懂的小伙伴可以直接百度翻译,就不一一解释了。然后看到SingleTween(简单动画类)。

这个就比较重要了。简单动画类中,有循环节点,顺序节点,还有一些,当前值,最终值,开始值,循环次数,变换器,设置回调,获取回调等等。内容太多,这里只讲重点。我们刚才说,再DoGoto中,我们获取到一个动画类之后是先去调用他的Config方法,那我们看到Config方法是做了什么。

没什么特别,实际上就是给这些属性进行了一些初始化。然后还去执行了Run方法,我们给他看下去

先判断该动画是否已经被回收,接着给顺序节点赋值。其实也不难看懂。设置循环节点,循环节点执行的是,Until,知道什么为真。再节点开始时执行OnLoopBegin函数。返回真了之后执行OnLoopCompelete。然后loop是循环节点循环次数。整个顺序节点执行完后执行OnTweenFinish。我们只赋值了开始方法和结束方法。并没有对循环中的每帧回调进行赋值。所以这里的OnLoopBegin和OnLoopCompelete都是只会执行一次的。

关于这个循环节点和顺序节点是封装再CSharp库中的,因为不细讲,感兴趣的小伙伴们可以自行去下载源码。

因为时动画,所以重点肯定是在他的循环节点上,不然怎么一直去执行变化呢?,所以我们看到OnLoopBegin方法。

首先他去获取了一个TweenValue(动画数据类)。

声明了一些相关属性,不再赘述了。

但是有一个比较重要的地方,他有一个字典

字典中以我们日常需要进行动画的结构体去对应具体的数据处理类。

比如我们可能会经常进行物体的三维坐标移动动画。当我们调用DoMove方法时,DoMove方法会去调用DoGoto,在我们上面获取TweenValue时,是需要把这个类型传进来的。通过TweenValue类中的Get方法,再去获取对应的具体数据处理类。

继续看到SingleTween的OnLoopBegin方法,获取到对应的TweenValue类后去执行Config方法,与SingleTween差不多,也是进行初始化,这里用了Switch,是根据循环类型进行区别处理。

在最后执行动画数据类的Run函数。

这里写的很清楚了。当动画未完成,循环调用LoopEvent函数,我们看到LoopEvent。

更新时间,然后调用MoveNext。而MoveNext是由我们的子类去实现的,也就是我们刚才所说的具体处理类。

用Vector3的来看

去更新当前的坐标。

其他类型则由其他具体类去实现格子的更新函数。

数组动画类也是差不多的逻辑,可自行去看代码,看了这个相信那个也是可以看懂的。差不多就是这样了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容