Unity UGUI原理剖析

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的底层是每一帧都会检查是否有脏数据,如果有脏数据则会重新组装网格,并进入渲染流程。

相关推荐
呆呆敲代码的小Y1 小时前
【Unity 实用工具篇】| UX Tool 工具 快速上手使用,提高日常开发效率
游戏·unity·游戏引擎·游戏程序·ux
世洋Blog1 小时前
Unity开发微信小程序-避开新InputSystem有关坑
unity·微信小程序
小笔学长1 小时前
React 入门:构建交互式 UI 的基础
ui·项目实战·前端开发·react框架·jsx语法
zhaocarbon1 小时前
VUE 4向云台 8向云台UI
css·vue.js·ui
阿蔹1 小时前
UI测试自动化-Web-Python-Appium
前端·python·ui·appium·自动化
lifewange10 小时前
UI自动化页面元素定位有几种方式
前端·ui·自动化
简简单单OnlineZuozuo15 小时前
提示架构:设计可靠、确定性的AI系统
人工智能·unity·架构·游戏引擎·基准测试·the stanford ai·儿童
郝学胜-神的一滴19 小时前
OpenGL纹理技术详解:从原理到实践
c++·程序人生·游戏程序·图形渲染·贴图
我送炭你添花1 天前
Pelco KBD300A 模拟器:06+4.KBD300A 键盘 UI 布局的设计与响应式实现(二次迭代)
ui·计算机外设
BoBoZz191 天前
RescaleReverseLUT 演示和比较颜色查找表的重标定和反转
python·vtk·图形渲染·图形处理