## 核心类
### Stage:
* UIContantScale:屏幕大小
* StageCamera:渲染相机
* StageEngine: 驱动更新
* 内部更新流程InternalUpdate
** HandleEvents:处理输入事件->HitTest(获取点击目标)->获取点击位置->使用冒泡处理点击事件(OnMove->RollOver->OnTouchBegin-> OnTouchEnd-> OnClick|OnRightClick)->处理文本输入
** UpdateContext:渲染内容参数 ,Begin(重置初始状态), End(绘制结束回调)。设置裁剪区域
### 点击事件 EventDispatcher:
EventDispatcher : 事件 每一个逻辑组件都支持事件分发。由Stage处理输入,判断点击触摸,然后用以冒泡的形式分发消息
### Package:
* Package : 包资源管理,一个UIPackage包含了描述文件,一个或多个纹理图及,音频资源。支持从resource和assetbundle加载包资源。初次加载的时候,会加载包信息(id,name),解析依赖资源,,包里面导出的资源(图片,音频,字体,组件,图集,点击测试)
提供创建组件方法CreateObject -> ConstructFromResource,通过递归ConstructFromResource方式加载完整的fairy结构。只有实际用到的资源才会被加载.
* GCompenent : 重要逻辑容器组件。 渲染容器Container(逻辑变化会同步更新到这里),GObject的集合管理,页面滚动控制,包装了控制器管理,动效
* GObject:FairyGUI逻辑对象基础。是其他fairy控件基类,表现基于DisplayObject实现具体在Unity的渲染。保存编辑器配置的属性(名字,位置,宽高,透明,适配关系等等)。
其所用到的美术资源存在PackageItem(字体图片音频等)中,存储设置DisplayObject的渲染顺序同时按需各个注册的消息事件(点击,触摸等),并且继承消息分发器。
同时包装了一套控制器概念,其实就是基于状态机的表现(显隐,位置,大小等)。
关联适配功能的实现,坐标体系的转换。人性化的支持了tween动画
### 渲染流程
* UdpateContext:更新当前页面的渲染配置参数(透明,置灰,clip裁剪)
* Container : 渲染物体DisplayObject的集合, 提供点击测试方法, 设置DisplayObject的渲染顺序同时按需进行fairy合批(处理相同材质还有组件大小重叠情况)
* DisplayObject: 各个引擎下适配的游戏物体基础,继承于此的有图形,图片,序列帧动画,Container。{GameObject, NGraphics,各种相应onClick等事件,提供 位置大小旋转缩放变换,颜色透明灰度的修改,提供一句unity的字段范围如:layer,shader,matdeng }
Update流程:
* NGraphics: 渲染基本元素(包含,创建的mesh, shader,材质,等)
Update流程 :
* NMaterial:包装的材质(材质,透明混合类型)
* NTexure: 基础的图片包装类(旋转,贴图资源(这里包含了分离通道),)
网友评论