
UGUI
文章平均质量分 87
拂面清风三点水
这个作者很懒,什么都没留下…
展开
-
Unity中的UGUI源码解析之图形对象(Graphic)(2)-ICanvasElement
Unity中的UGUI源码解析之图形对象(Graphic)(2)-ICanvasElement在上一篇文章中, 我们对整个Graphic部分做了概述, 这篇文章我们介绍ICanvasElement和CanvasUpdateRegistry.ICanvasElement是一个接口(Interface). 抽象了能够在画布上显示的元素行为. 文件所在为: UnityEngine.UI/UI/Core/CanvasUpateRegistry.cs.相关的辅助类有: enum CanvasUpdate和cla原创 2022-05-24 20:06:52 · 1185 阅读 · 1 评论 -
Unity中的UGUI源码解析之图形对象(Graphic)(1)-概述
Unity中的UGUI源码解析之图形对象(Graphic)(1)-概述从今天开始通过几篇文章一步步深入, 围绕**图形对象(Graphic)**展开对UGUI源码的解析.图形对象相关的类和接口有:UIBehevior: 大部分UI类的父类, 继承MonoBehaviour并添加了部分生命周期, 在之前的文章中有介绍.ICanvasElement: 接口类(Interface), 抽象所有能在Canvas上显示的对象行为CanvasUpdateRegistry: 单例工具类, 用于辅助图形对象向C原创 2022-05-17 17:37:31 · 1158 阅读 · 0 评论 -
Unity中的UGUI源码解析之事件系统(9)-输入模块(下)
Unity中的UGUI源码解析之事件系统(9)-输入模块(下)接上一篇文章, 继续介绍输入模块.StandaloneInputModule类是上一篇文章介绍的抽象类PointerInputModule的具体实现类, 事件系统的主要处理部分就在这个类.TouchInputModule类本来是单独处理触摸指针事件的触摸事件部分, 但是后面被挪到StandaloneInputModule中了, 不在维护, 所以我们也不介绍了.今天就和大家一起一步步来认识StandaloneInputModule.Sta原创 2022-04-19 20:30:00 · 4042 阅读 · 0 评论 -
Unity中的UGUI源码解析之事件系统(8)-输入模块(中)
Unity中的UGUI源码解析之事件系统(8)-输入模块(中)接上一篇文章, 继续介绍输入模块.Unity中主要处理的是指针事件, 也就是在2d平面上跟踪指针设备输入坐标的的事件, 这一类事件有鼠标事件, 触摸事件等.PointerInputModuleUnity将使用抽象类PointerInputModule定义指针输入的基本信息和基本函数, 由其子类StandaloneInputModule来具体实现.相关类TouchPhaseTouchPhase用来描述触摸阶段.Began: 开始触原创 2022-04-09 09:45:00 · 1299 阅读 · 0 评论 -
Unity中的UGUI源码解析之事件系统(7)-输入模块(上)
Unity中的UGUI源码解析之事件系统(7)-输入模块(上)从今天开始,我们进入事件系统的的最后一部分: 输入模块(InputModules).输入模块是事件系统的核心, 是真正使用检测和调用回调的地方.输入模块主要有几个角色, 分别为:BaseInput: UIBehavior类, 对Input模块部分函数的简单封装BaseInputModule: 输入模块的抽象基类, 定义了一些通用操作, 属性和字段PointerInputModule: 处理PointerEvent(指针事件)的输入模原创 2022-04-01 10:00:20 · 4011 阅读 · 0 评论 -
Unity中的UGUI源码解析之事件系统(6)-RayCaster(下)
Unity中的UGUI源码解析之事件系统(6)-RayCaster(下)接上一篇文章, 继续介绍投射器.GraphicRaycasterGraphicRaycaster继承于BaseRaycaster, 是BaseRaycaster具体实现类, 是针对UGUI元素的投射器, 需要对象上同时存在Canvas组件.值得一提的是, GraphicRaycaster和PhysicsRaycaster还有Physics2DRaycaster存放的目录不同, 后面两个放在EventSystem目录下, 而Gr原创 2022-03-25 22:30:00 · 2665 阅读 · 0 评论 -
Unity中的UGUI源码解析之事件系统(5)-RayCaster(上)
Unity中的UGUI源码解析之事件系统(5)-RayCaster(上)今天要分享的是事件系统中的射线投射器(RayCaster).Unity使用射线投射器来收集和鉴别被点击的游戏对象.射线投射的原理很简单, 就是在屏幕点击的位置发射一条射线, 根据一些规则收集被射线穿透的对象, 然后再根据一些规则将这些对象排序, 选出距离屏幕最近的对象, 最后在这个对象上进行各种事件操作.所以研究射线投射就是要围绕这个原理来展开, 有了方向, 我们才不会陷入各种代码中变得一头懵.由于内容比较多, 我们分山下两篇原创 2022-03-20 13:15:00 · 1676 阅读 · 0 评论 -
Unity中的UGUI源码解析之事件系统(4)-ExecuteEvents
Unity中的UGUI源码解析之事件系统(4)-ExecuteEvents今天介绍消息系统: ExecuteEvents.Unity实现的消息系统很简单, 一个静态类加一堆接口, 在处理事件时动态获取需要处理事件的对象, 几乎没有状态维护, 虽然每次处理事件都需要进行获取, 会损失一部分性能, 但是由于每个对象上的组件一般不会太多, 这个性能损失几乎可以忽略不计, 而带来的优势就是去除了大部分的状态管理, 极大的降低了维护和理解难度.EventInterfacesUnity通过接口(Interfac原创 2022-03-16 10:09:26 · 7323 阅读 · 4 评论 -
Unity中的UGUI源码解析之事件系统(3)-EventData
Unity中的UGUI源码解析之事件系统(3)-EventData为了在事件系统中传递数据, Unity提供了EventData相关的类来封装这一类数据. 了解这些结构有助于我们对后面模块的学习.EventData相关的类有几个, 下面一一介绍.AbstractEventData: 事件数据的抽象基类BaseEventData : AbstractEventData: 基础的事件数据类PointerEventData: BaseEventData: 指针事件数据类AxisEventData:原创 2022-03-12 08:45:00 · 3624 阅读 · 0 评论 -
Unity中的UGUI源码解析之事件系统(2)-EventSystem组件
Unity中的UGUI源码解析之事件系统(2)-EventSystem组件今天介绍我们的第一个主角: EventSystem.EventSystem在整个事件系统中处于中心, 相当于事件系统的管理器, 负责协调各个模块.其本身是一个MonoBehavior, 继承于UI模块统一的父类UIBehaviour.在一个场景中添加任意的UI控件, 会默认添加一个EventSystem对象, 身上挂载EventSystem组件和一个StandaloneInputModule(独立输入模块)组件. 各种事件要生原创 2022-03-11 09:26:13 · 1899 阅读 · 0 评论 -
Unity中的UGUI源码解析之事件系统(1)-概述
Unity中的UGUI源码解析之事件系统(1)-概述从今天开始通过几篇文章一步步深入, 围绕事件系统展开对UGUI源码的解析.网上大部分文章讲的是事件系统是什么, 怎么用. 我的文章会在这些基础之上进一步探讨其原理和设计思想, 当然, 只是我的一家之言, 也不一定正确(特别是不同版本之间的差异是存在的). 所以还是希望能给大家提供的是一种思路, 省去大量实践和抠细节的研究, 大家可以基于我的研究(也可以纠正), 发散出自己的理解.好了, 下面开始今天的内容.广义的事件系统是指Unity中整个事件相关原创 2022-03-10 09:31:31 · 4599 阅读 · 0 评论 -
Unity中调试开源的UGUI源码
Unity中调试开源的UGUI源码最近有点颓废, 很久没写文章了, 为了激励自己, 准备开一个新坑: 结合官方文档, 我自己的使用体验, 还有我自己的理解等各个方面来对UGUI的源码进行简单的梳理和分析.感觉这个系列我可以写一年, 再也不担心找不到内容水文章了, 哈哈.看到网上很多人都做过这个尝试, 但是没写几篇文章就放弃了, 希望我自己能够尽可能坚持下去.好了, 废话不多说, 正式开始今天的内容.今天是整个系列的开篇, 主要介绍如何将官方开源的UGUI源码嵌入项目进行调试.环境搭建我们首先需原创 2022-03-07 15:14:05 · 4215 阅读 · 0 评论