UIGU源码分析11:Canvas和CanvasUpdateRegistry

本文详细介绍了Unity UGUI系统中的Canvas组件和CanvasUpdateRegistry类。Canvas是UGUI的基础,提供了渲染模式、层级等设置。CanvasUpdateRegistry作为中介,管理着需要更新的ICanvasElement组件,通过监听Canvas的渲染事件,按阶段执行元素的Rebuild方法,确保UI系统的正确更新和渲染。

源码11:Canvas和CanvasUpdateRegistry

Runtime类图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wnyg7g0A-1647096526003)(D:\UnityProjectSpace\BlogRecord\UGUI源码分析\Image\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RtazE3NzcxNTUyMzA0,size_16,color_FFFFFF,t_70.png)]

Canvas

Canvas 画布 UGUI的重要组件。 UGUI源码里并没有给Canvas源码 他是在UnityEngine里,这里反射看下源码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b4zcV57n-1647096506318)(D:\UnityProjectSpace\BlogRecord\UGUI源码分析\Image\image-20220310232122002-16470964181041.png)]

Canvas本身提供给引擎调整的参数是上面那些。基本是调整渲染模式 层级 显示等等。

源码里有几个比较重要的属性要记录下

   public delegate void WillRenderCanvases();
  // 公有事件,在CanvasUpdateRegistry.cs的构造函数里,为willRenderCanvases事件添加了一个监听PerformUpdate。
	//在渲染(所有)Canvas之前会抛出willRenderCanvases事件,继而调用到CanvasUpdateRegistry.cs的PerformUpdate方法
   public static event WillRenderCanvases willRenderCanvases;
   public static event WillRenderCanvases preWillRenderCanvases;
   
   //强制更新所有Canvas, 当Canvas需要重新绘制时调用,可在外部主动调用
   public static void ForceUpdateCanvases()
   {
       SendPreWillRenderCanvases();
       SendWillRenderCanvases();
   }

CanvasUpdateRegistry

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值