随笔分类 -  UGUI详解

摘要:1.前言 在研究UGUI源码时会有一些好的想法产生或者借鉴,在这里面最大的一点就是Tween。曾经补间动画一致采用DoTween,但是对与简单使用或者少量使用时引入整个插件又不值得,所以都是自己写一个。曾将看到Tween.js实现后一直想自己实现一个轻量级的,一致没有行动,但是unity的Corou 阅读全文
posted @ 2022-05-24 12:35 81192 阅读(83) 评论(0) 推荐(0) 编辑
摘要:文章目录 1.前言 2.获取文字 3.光标设置 3.1 状态机模式 3.2 光标渲染 3.3 高亮渲染 4.总结 5.结语 1.前言 本文来讲一下InputField实现,本文之所以叫逻辑分析是因为跟作者自己和解了,不再去追求一些细节的实现(其实是脑细胞不够理解不了)。 2.获取文字 文字获取通过T 阅读全文
posted @ 2022-05-24 12:10 81192 阅读(171) 评论(0) 推荐(0) 编辑
摘要:文章目录 1.前言 2.逻辑梳理 3.贴图获取 4.获取Mesh 5.结语 1.前言 unity的文本渲染通过Text组件实现,文字的渲染也离不开贴图、mesh以及材质。材质则是根据MaskableGraphic材质,所以了解Text的主线则是了解如何生成贴图和mesh即可。本文不会去讨论文字贴图和 阅读全文
posted @ 2022-05-23 18:21 81192 阅读(350) 评论(0) 推荐(0) 编辑
摘要:文章目录 1.前言 2.实现 3.最后 1.前言 简单说一下unity的交互组件Selectable,此组件是所有组件交互的基类,即它实现了鼠标hover、点击、离开以及其他事件对应的状态。是button、toggle、slider等的基类,比较简单。 2.实现 其实现比较简单,即简单继承一些事件接 阅读全文
posted @ 2022-05-23 16:11 81192 阅读(318) 评论(0) 推荐(0) 编辑
摘要:1.前言 本文基于InputModule的逻辑,根据VR的操作特点,写一个VrInputModule。 2.Input 虚拟一个Input类,来获取最基本的信息,如下代码所示(示意代码): using UnityEngine; using System.Collections; public cla 阅读全文
posted @ 2020-04-12 10:57 81192 阅读(397) 评论(0) 推荐(0) 编辑
摘要:1.前言 在之前的文章中曾分析过unity事件系统中的rayCaster,其中GraphicRaycaster中曾分析过,射线在此类中的作用仅仅是为了检测与3D或者2D的碰撞距离,而ui检测时则使用如下代码: RectTransformUtility.RectangleContainsScreenP 阅读全文
posted @ 2020-04-11 19:53 81192 阅读(792) 评论(0) 推荐(0) 编辑
摘要:1.前言 本文从逻辑和原理上详细分析Ugui的Mask组件。Mask组件的逻辑没有RectMask2D复杂,但是原理稍微麻烦一点,用得到渲染的模板检测。 2.模板遮罩原理 2.1 模板值 以下图为例,假如均没有开启模板检测,canvas上只有一个RawImage组件,那么整个背景模板值为0。如果图中 阅读全文
posted @ 2020-04-11 17:52 81192 阅读(1144) 评论(0) 推荐(0) 编辑
摘要:1.前言 RectMaskD的基本原理就是CanvasRenderer的EnableRectClipping方法,上一节已经做了详细说明。而它的工作流程在(六)和(五)中也做了详细分析。此篇重新梳理一下流程,做更细致的分析。 2.详解 RectMask2D的基本原理比较建议,复杂点在于其上层逻辑比较 阅读全文
posted @ 2020-04-11 12:12 81192 阅读(1467) 评论(0) 推荐(0) 编辑
摘要:1.前言 基于CanvasRenderer实现一个自定义(破产版)的graphic。以往自定义ui形式时,可以新建脚本继承Graphic,通过重写虚方法来实现一些特殊功能。此文则从CanvasRenderer的层面,实现一个Graphic。实现时采用的方法则是SetMesh、SetMaterial以 阅读全文
posted @ 2020-04-11 11:04 81192 阅读(491) 评论(0) 推荐(0) 编辑
摘要:1.前言 此篇将对UGUI系统中图像显示的核心Graphic类进行详细分析 2.重点方法分析 基本流程已经在CanvasUpdate一文中的2.1和2.2节分析过了。即每帧在进行Canvas渲染前通过CanvasRenderer更新mesh和材质等信息,渲染时根据这些信息进行相应渲染。所以UI渲染的 阅读全文
posted @ 2020-04-06 10:37 81192 阅读(866) 评论(0) 推荐(0) 编辑
摘要:1.前言 ugui的图像显示核心是Graphic类,而这一切Graphic又由Canvas相关类进行管理。在ugui系统中Canvas是管理ui元素的生命周期与样式变化,而CanvasRenderer则负责ui的显示,包括网格、材质以及rect裁剪等。由于Canvas与CanvasRenderer真 阅读全文
posted @ 2020-04-05 21:56 81192 阅读(697) 评论(0) 推荐(0) 编辑
摘要:1.前言 此文来分析以下Raycaster。虽然Unity的Raycaster等一些组件跟ui放在一起,但是很多属于事件系统。 2.使用位置 在事件系统中,Raycaster用来获取获取当前交互位置(如鼠标位置)对应的游戏物体,其使用位置在EventSystem中的RaycastAll方法。而Ray 阅读全文
posted @ 2020-04-05 12:02 81192 阅读(698) 评论(0) 推荐(1) 编辑
摘要:1.前言 ExecuteEvent是一个非常有用的类,方法都是静态的。在Unity事件系统中负责执行各个事件。 2.关键方法 1)Execute 方法: public static bool Execute(GameObject target, BaseEventData eventData, Ev 阅读全文
posted @ 2020-04-05 10:52 81192 阅读(525) 评论(0) 推荐(0) 编辑
摘要:1.前言 在上一篇中梳理了一下整个事件系统的流程,包括Workflow,此文则详细讲解一下InputModule本身,并对一些方法做一下解释。 2.综述 InputModule的结构如下所示: BaseInputModule为原始基类,只包含最基本的功能。PointerInputModule主要功能 阅读全文
posted @ 2020-04-04 15:38 81192 阅读(943) 评论(0) 推荐(0) 编辑
摘要:1.前言 本文针对UGUI事件系统进行总体陈述,可以有一个宏观上的理解。事件系统保罗各种输入、EventSystem以及各种InputModule,其实不只是UGUI的事件系统,是整个Unity的事件系统。本文只是综述,只涉及各个模块之间的关系与各个模块的功能,每个模块的具体分析在后续详解,源码链接 阅读全文
posted @ 2020-04-04 11:16 81192 阅读(430) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示