UGUI源码解析——StencilMaterial

Posted Hello Bug.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UGUI源码解析——StencilMaterial相关的知识,希望对你有一定的参考价值。

一:前言

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


二:源码解析

——Add

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

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


——Remove

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


——ClearAll

移除MatEntry列表中的全部材质

以上是关于UGUI源码解析——StencilMaterial的主要内容,如果未能解决你的问题,请参考以下文章

UGUI源码解析——StencilMaterial

UGUI源码解析——总览

UGUI源码解析——ICanvasElement

UGUI源码解析——IMeshModifier

UGUI源码解析——ICanvasElement

UGUI源码解析——LayoutUtility