代码编织梦想

UI最重要的两部分

  1. UI是如何渲染出来的
  2. 点击事件如何触发
  3. 何时发生UI重绘

1:UI如何渲染出来的

UI渲染一定是有顶点的,没有顶点就没法确定贴图的采样,UGUI的顶点在一张Mesh上创建,经过渲染管线UI就渲染到屏幕上了,UI的渲染和3D模型的渲染本质上是没有区别的。

2:点击事件如何触发

UGUI里有个很重要的组件,EventSystem,还有一个非常重要的函数RaycastAll(),主要是获取目标。这个方法会首先获取所有的BaseRaycast对象,调用其Raycast方法,然后对最后得到的结果进行排序(大部分情况下按深度进行排序,也有一些情况下会使用距离、排序顺序)

所以结论就是UGUI的事件触发是通过射线实现的。

3:何时发生UI重绘

主动重绘

Rebuild方法是暴露出来的,但重绘的前提是有顶点数据或者材质球发生了变化才会发生重绘。如果你不想下一帧重绘,则可以主动调用,我目前没见过有主动调用的需求。

被动Tick重绘

被动重绘就很好理解了,因为UGUI的底层是每一帧都会检查是否有脏数据,如果有脏数据则会重新组装网格,并进入渲染流程。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liuyongjie1992/article/details/144068354

Unity UGUI源码解析-爱代码爱编程

前言 这篇文章想写的目的也是因为我面试遇到了面试官问我关于UGUI原理性的问题,虽然我看过,但是并没有整理出完整的知识框架,导致描述的时候可能自己都是不清不楚的。自己说不清楚的东西,别人就等于你不会。每当学完一个东西的时候,应该会大体框架流程,具体实现细节有所了解,然后整理出来,以备日后查阅。人的记忆是有限的,如果不记下来,每次翻的都是别人的博客,这样其

Unity UGUI 性能优化-爱代码爱编程

一、减少不必要的Raycast Target 所有UGUI组件在创建时都默认开启了Raycast Target这一选项,实际上是为接受事件响应做好了准备。而事实上,大部分比如Image、Text类型的UI组件是不会参与事件响应的,但仍然会在鼠标/手指划过或悬停时参与轮询,通过模拟射线检测判断UI组件是否被划过或悬停,造成不必要的耗时。尤其在项目中UI组件

unity ugui原理解析_superlin10的博客-爱代码爱编程

Unity uGUI原理解析 Unity uGUI 是Unity官方推出的UI解决方案。 以Package的方法在Unity中提供。官方参考手册 API参考 Unity uGUI的使用可以参考超详细的Unity UGUI教学 准备工作 由于UGUI是Untiy提供的核心包,为了能够看到看到及调试源码。 需要在 Preferences -> E

unity ugui的原理和优化-爱代码爱编程

UGUI介绍:     IMGUI : 是Unity自带得到古老UI系统。     NGUI : 是最流行的第三方UI插件。     FairyGUI : 是跨平台的UI系统。(小游戏居多)     UGUI : 是官方版本。     UI Element : 是最新版本的UI系统。(Unity2019版) 那么这么多的GUI,为什么选择UGU

unity ugui原理解析-爱代码爱编程

GUI原理解析-AutoLayout UGUI中提供的RectTransform本身足够灵活,可以处理许多不同类型的布局。但基本上是子节点去根据父节点进行适配。 而 自动布局系统(AutoLayout)提供了根据子节点自动

unity ugui系统概念分析_ugui类分析-爱代码爱编程

文章目录 前言一、UGUI运行原理二、UGUI组件分析1、Canvas组件2、Canvas Scaler3、Graphic Raycaster组件4、EventTrigger组件5、Image 和 RawIma

鸿蒙操作系统(harmonyos)开发的初学者了解和入门-爱代码爱编程

1. 什么是鸿蒙操作系统(HarmonyOS) 鸿蒙操作系统是华为开发的一种分布式操作系统,面向多种设备(如智能手机、智能家居设备、穿戴设备、车机等)。它的特点包括: 分布式架构:支持跨设备无缝协作。开发一次,多端部署。高性能:低时延和高吞吐率。安全性:微内核架构更注重系统安全。 2. ArkTS 简介 ArkTS 是一种面向现代 UI 开发的

tms fnc ui pack 5.4.0 for delphi 12-爱代码爱编程

TMS FNC UI Pack是适用于 Delphi 和 C++ Builder 的多功能 UI 控件的综合集合,提供跨 VCL、FMX、LCL 和 TMS WEB Core 等平台的强大功能。这个统一的组件集包括基本工具,如网格、规划器、树视图、功能区和丰富的编辑器,确保兼容性和简化的开发。 高性能网格通过高级功能增强数据可视化,看板和多列树视图为高效

【unity ugui】unity ugui源码分析 mask和rectmask2d分析和性能对比_unity rectmask2d-爱代码爱编程

一.前言 在Unity UGUI的性能优化中经常能看见,使用RectMask2D替换Mask,因为Mask会产生额外的Drwcall,而RectMask2D不会产生额外的Drwcall。但是RectMask2D的性能一定比

tailwindcss 总结-爱代码爱编程

目录 一、简介 二、盒子模型相关 三、将样式类写到一个类里面@apply 四、一款TailWind CSS的UI库 一、简介 官方文档:Width - TailwindCSS中文文档 | TailwindCSS中文网 Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何 模板中的 CSS