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

相关推荐
龚子亦17 小时前
【Unity开发】热更新学习——HybridCLR框架
学习·unity·游戏引擎·热更新
出门吃三碗饭18 小时前
论文随笔 聊聊感知智能用户界面的三大核心
ui
BoBoZz1919 小时前
WarpTo 对 3D 几何体进行形变(Warping操作,使其顶点朝着一个指定的空间点移动
python·vtk·图形渲染·图形处理
Just_Paranoid19 小时前
【Android UI】Android 添加圆角背景和点击效果
android·ui·shape·button·textview·ripple
龚子亦20 小时前
【GameFramework框架】FSM使用
学习·unity·游戏开发·游戏框架
我的xiaodoujiao20 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 34--基础知识 9--文件上传功能
前端·python·测试工具·ui·pytest
龚子亦21 小时前
【Unity开发】安卓应用开发中,用户进行权限请求
android·unity·安卓权限
君莫愁。21 小时前
【Unity】相机与UI的自适应
ui·unity·c#·游戏引擎
feiduoge1 天前
教程 44 - 相机系统
windows·游戏引擎·图形渲染
lrh30251 天前
Custom SRP - 16 Render Scale
3d·unity·srp·render pipeline·render scale