Unity3D高级编程:主程手记
上QQ阅读APP看书,第一时间看更新

4.3.1 UGUI事件系统源码剖析

Unity3D公开了大部分UGUI系统源码,除了渲染和网格合并算法外,组件逻辑也已经公开。下面剖析UGUI系统在Unity 2017中的公开源码。

图4-1为UGUI内核源码的文件夹结构图。它把UGUI系统分为输入事件、动画、核心渲染三部分。

图4-1 UGUI内核源码的文件夹结构图

其中动画部分相对比较简单,采用tween补间动画的形式对颜色、位置、大小进行了渐进的操作。tween的原理是启动一个协程,在协程里对元素的属性进行渐进式修改,除了修改属性数值,tween还设置了多种曲线以供选择,比如内翻曲线、外翻曲线等,一个数值从起点到终点的过程可以通过曲线来控制。例如,数字从0到100的变化可在3秒内完成,如果是线性,则在第2秒时的数值应该如下:

(100-0)×(2f/3f)=200f/3f=66.666

如果使用内翻曲线就不是这个结果了,但它们最终都会到达100,只是过程有点“曲折”,曲线也体现了动画的“有趣”。

下面重点剖析输入事件和核心渲染这两部分。