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

相关推荐
唐虞兮12 小时前
UI文件转py文件出问题
ui
在路上看风景17 小时前
1.2 Unity资源分类
unity·游戏引擎
one named slash18 小时前
BMFont在Unity中生成艺术字
unity·游戏引擎
梦想的旅途218 小时前
基于 UI 自动化(RPA)实现企业微信外部群操作的架构设计
ui·自动化·rpa
颜早早19 小时前
Unreal Engine MobileFSR插件实现机制分析
图形渲染·gpu·unreal engine 5·graphic
郝学胜-神的一滴19 小时前
图形学中的纹理映射问题:摩尔纹与毛刺的深度解析
c++·程序人生·unity·游戏引擎·图形渲染·unreal engine
谁怕平生太急20 小时前
MAI-UI的prompt
ui·prompt·gui agent·mai-ui
在路上看风景20 小时前
10. CPU-GPU协作渲染
unity
程序员agions20 小时前
Unity 游戏开发邪修秘籍:从入门到被策划追杀的艺术
unity·cocoa·lucene
JIes__20 小时前
Unity(一)——场景切换、退出游戏、鼠标隐藏锁定...
unity·游戏引擎