由此,网上查到的一些资料会得出“RectMask2D节点下的所有孩子都不能与外界UI节点合批且多个RectMask2D之间不能合批”的结论,实际上这是一种不严谨的说法,甚至是错误的。要搞清楚这个问题,需要先弄明白为什么RectMask2D会破坏合批? 通过帧调试器可以发现,是RectMask2D传递裁剪矩形时,修改了Shader的参数,导致不能合批。
RectMask2D会将RectTransform的区域作为_ClipRect传入Shader中,并且激活UNITY_UI_CLIP_RECT的Keywords。Stencil Ref 的值是0 表示它并没有使用模板缓冲比较,如果只是矩形裁切,RectMask2D并且它不需要一个无效的渲染用于模板比较,所以RectMask2D在特定情况下的效率会比Mask要高。 2、 组件用法 (1)、Mask组件可以实现遮...
在Shader的Frag处理像素中,被裁切掉的区域是通过UnityGet2DClipping()根据_ClipRect比较当前像素是否在裁切区域中,如果不在,将Color.a变成了透明。 Shader"UI/Default"{//...略fixed4frag(v2f IN) : SV_Target{ half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;//根据_...
最后,我们来看下Unity渲染UI组件时默认使用的Shader——UI/Default(略去了一些不相关内容): Shader"UI/Default"{Properties{[PerRendererData]_MainTex("Sprite Texture",2D)="white"{}_Color("Tint",Color)=(1,1,1,1)_StencilComp("Stencil Comparison",Float)=8_Stencil("Stencil ID",Float)=0_StencilOp(...
unity中mask镂空效果 unity mask原理 前言 UGUI的裁切分为Mask和Mask2D两种 目录 Mask原理分析 RectMask2D原理分析 RectMask2D和Mask的性能区分 一、Mask原理分析 Mask:IMaskable,IMaterialModifier 我们先来看Mask。它可以给Mask指定一张裁切图裁切子元素。我们给Mask指定了一张圆形图片,那么子节点下的元素都会被裁切...
从表现上直观看,mask是可以裁剪为使用遮罩图的形状,Mask2D 只能裁剪成四方形。 UI默认的材质同时支持mask 与 mask2D,这个可以看builtIn 的 UI-Default.shader // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) ...
Unity User Manual (2019.2) ユーザーインターフェース (UI) Unity UI UI リファレンス ビジュアルコンポーネント MaskRaw Image RectMask2D MaskMask は目に見える UI というよりは、むしろ子要素の外観を修正する方法です。Mask は子要素の形状を親要素のものに制限します。なので、もし子...
class in UnityEngine.UI/Inherits from: EventSystems.UIBehaviourImplements interfaces: ICanvasRaycastFilter, IClipperDescription A 2D rectangular mask that allows for clipping / masking of areas outside the mask.The RectMask2D behaves in a similar way to a standard Mask component. It differs though ...
详解Unity中Mask和RectMask2D组件的对⽐与测试 组件⽤法 Mask组件可以实现遮罩的效果,将⼀个图像设为拥有mask组件图像的⼦物体,最后就会隐藏掉⼦图像和mask图像不重合的部分。例如:(蓝⾊的圆形名为mask,数字图⽚名为image)在“mask”图⽚上添加mask组件后的结果(可以选择是否隐藏mask图像):Rect...
Check out the details in this blog post: Blog: Unity SpriteMask and RectMask2D support SpriteMask: RectMask2D: Reply vzlomvl Feb 25, 2019 Looks amazing. It's time to change the UI from Mash to RectMask2d. :rock: Reply 8 months later Aaltaf navalur Oct 15, 2019 Hi, I am trying ...