当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/492192.html

相关文章:

  • Spring框架使用xml方式配置ThreadPoolTaskExecutor线程池,并且自定义线程工厂
  • 架构-微服务-服务网关
  • 基于springboot的HttpClient、OKhttp、RestTemplate对比
  • (计算机组成原理)期末复习
  • 从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
  • 【Java从入门到放弃 之 Java程序基础】
  • 2024年11月26日Github流行趋势
  • 相亲交友小程序项目介绍
  • 使用ENSP实现默认路由
  • CSGO游戏搬砖党如何应对上海Major
  • 【人工智能】AutoML自动化机器学习模型构建与优化:使用Auto-sklearn与TPOT的实战指南
  • go-zero(八) 中间件的使用
  • vim 如何高亮/取消高亮
  • 蓝桥杯练习题
  • 【设计模式】创建型模式之单例模式(饿汉式 懒汉式 Golang实现)
  • 使用 Docker Compose 来编排部署LMTNR项目
  • 创建HTTPS网站
  • 以3D数字人AI产品赋能教育培训人才发展,魔珐科技亮相AI+教育创新与人才发展大会
  • springboot配置https,并使用wss
  • Qt SQL模块概述
  • JavaWeb后端开发知识储备2
  • RabbitMQ原理架构解析:消息传递的核心机制
  • redmi 12c 刷机
  • 四、Python —— 列表
  • Paper -- 建筑高度估计 -- 基于街景图像和深度学习的城区建筑高度计算
  • 机器学习周志华学习笔记-第6章<支持向量机>
  • 第三届航空航天与控制工程国际 (ICoACE 2024)
  • 【大数据技术基础】 课程 第8章 数据仓库Hive的安装和使用 大数据基础编程、实验和案例教程(第2版)
  • BERT 详解
  • 使用 MySQL 的 REPLACE() 函数轻松替换表中字段