自读FairyGUI以及源码分析

本文介绍了作者对FairyGUI的深入理解和源码分析,涵盖了从编辑器功能到运行时组件创建流程,重点讨论了UIPanel、Text、NGraphic、Image和Shape组件的实现原理,以及FairyGUI事件处理和组件继承体系。通过对源码的解析,揭示了FairyGUI如何提高Unity3D UI开发效率。
摘要由CSDN通过智能技术生成

  版权声明:本文为博主原创文章,未经博主允许不得转载。https://mp.csdn.net/postedit/82223258

 这里简单介绍一下自己看了几天对FairyGUI的一些认识,以及对和UGUI一样,理解的Text,NGraphic,Image,Shape这几个类的主要功能。只要是关于在Unity里面的使用,这里只是写一下自己对源码的一些认识和理解,有错误的地方,还希望大家给出意见。

一:参考的地址链接

官方地址:http://www.fairygui.com/以及UnityPackage包地址:https://github.com/fairygui/FairyGUI-unity/releases可以下载关于Unity里面各个版本支持的FairyGUI的SDK。

二:编辑器功能以及介绍

          首先是编辑器下载,直接官方文档进行下载。以及了解编辑器常用的功能也是参考上面的官方文档。了解编辑器操作和一些概念和流程制作。

       这里介绍一些简单布局操作面板,主要工具栏:主工具栏,库面板,侧工具栏。制作时常用的组件比如文本,滚动列表,滑动条,图片Image。这些官方文档都有介绍,这里就不着重进行介绍了。

三:编辑器到运行时创建流程

            启动创建组件UIPanel为例              
            Start()方法启动-----UIPanel
            CreateUI_PlayMode()  
            GComponent组件创建  UIPackage.CreateObject(string pkgName, string resName)  
            CreateObject(PackageItem item, System.Type userClass)  创建组件   里面有ConstructFromResource()方法接着解析创建
            GetItemAsset(PackageItem item) 根据PackageItemType创建
            LoadComponentChildren()根据XML解析出信息进行创建组件
            UIObjectFactory.NewObject()根据类型new 出相应的类比如GCompont,GImage走对应类里面的构造方法
            Image.Create先走构造方法                                                                          LatestGraphicsCreation现在创建到第几个组件
          驱动更新Update
          StageEngine继承自Monbehaviour
          LateUpdate()更新驱动Stage.inst.InternalUpdate()    stage舞台继承自Container容器是一个承载器
          Container.Update(_updateContext)更新要更新的上下文信息 遍历所有的Children.Count驱动每个DisplayObject.Update
          DisplayObject.Update(context)展示对象的Update
          执行到Image.Update(context)调用基类的Update   更新材质,更新Mesh,画图形了
          Rebuild()进行重建   都有标志位进行过滤提升性能 _requireUpdateMesh是否要求更新Mesh数据
          重建清除模式,根据填充方式,进行顶点填充。
          PackageItem 描述包里面组件的信息基本会把信息存在一个XML里面,到运行时进行解析

四:重要组件的介绍

  1. 介绍组件之前介绍,先介绍一下组件之间的继承体系。让更清楚类之间的关系

上面两层是FairyGUI核心事件系统,处理显示对象可以接收来自鼠标和键盘响应的事件,做出注册委托的事件处理。

IEventDispatcher接口

public interface IEventDispatcher
{
	void AddEventListener(string strType, EventCallback0 callback);
	void AddEventListener(string strType, EventCallback1 callback);
	void RemoveEventListener(string strType, EventCallback0 cal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值