Unity ReckMask2D 与 Mask 的一点小总结

写在最前:

1.工程环境:Unity 2017。

2.UI插件:UGUI。

3.本文章是个人的学习记录贴,如果有幸被翻阅,请不要吐槽排版。


先摘录一下 UI/Default 的相关关键代码,以下描述会用到(本人自己创建了一个Shader,并复制了UI/Default源码,所以可以更改!)

#pragma multi_compile __ UNITY_UI_CLIP_RECT   //-------------------------------------  a
#pragma multi_compile __ UNITY_UI_ALPHACLIP   //-------------------------------------  b

#ifdef UNITY_UI_CLIP_RECT
    color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);   //----------------c
#endif

#ifdef UNITY_UI_ALPHACLIP
    clip(color.a - 0.001);                                        //------------------d
#endif

正文:

1.Mask:

    ①.Mask原理是使用的模板缓冲区,来实现遮罩的功能。在绘制Mask下子物体时,与模板缓冲区的值进行比对来实现的裁剪效果,所以这种裁剪效果可以针对3D物体的。

    ②.实测表明 Mask与Image必须挂在同一GameObject下,否则Mask将失效。个人推测是如果没有Image组件,Mask将无法正确

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值