0
点赞
收藏
分享

微信扫一扫

UGUI源码解析——StencilMaterial


一:前言

StencilMaterial是一个静态类,负责管理模板材质,维护了一个MatEntry类型的列表,主要作用就是提供一个新的材质
对材质设置的参数,实际上是设置给Shader的(UI-Default.shader)

二:源码解析

——Add

UGUI源码解析——StencilMaterial_unity


添加一个材质

创建一个MatEntry,用指定的baseMat以及其他参数赋值给MatEntry并创建了customMat(实际上赋值的是customMat的shader参数)

设置材质时会开启UNITY_UI_ALPHACLIP,这也解释了为什么将Mask对象上Graphic对应的Alpha值设置为0,所有子对象都显示不出来了,在UI-Default.shader中有以下操作:透明度过小会被裁剪

UGUI源码解析——StencilMaterial_静态类_02

——Remove

UGUI源码解析——StencilMaterial_赋值_03


从MatEntry列表中移除一个已存在的材质 ——ClearAll

UGUI源码解析——StencilMaterial_unity_04


移除MatEntry列表中的全部材质

举报

相关推荐

0 条评论