zoukankan      html  css  js  c++  java
  • UI mask with shader

    Shader "xxxxxx"
    {
    Properties
    {
    ......
    
    //MASK SUPPORT ADD
    _StencilComp ("Stencil Comparison", Float) = 8
    _Stencil ("Stencil ID", Float) = 0
    _StencilOp ("Stencil Operation", Float) = 0
    _StencilWriteMask ("Stencil Write Mask", Float) = 255
    _StencilReadMask ("Stencil Read Mask", Float) = 255
    _ColorMask ("Color Mask", Float) = 15
    //MASK SUPPORT END
    
    }
    
    SubShader
    {
    Tags {...}
    
    //MASK SUPPORT ADD
    Stencil
    {
        Ref [_Stencil]
        Comp [_StencilComp]
        Pass [_StencilOp] 
        ReadMask [_StencilReadMask]
        WriteMask [_StencilWriteMask]
    }
    ColorMask [_ColorMask]
    //MASK SUPPORT END
    
    ......
    }
    View Code

    在你的 shader 中加入这2段代码,剩下的部分照旧。这时我们再把这个 shader 赋给 ugui 组件的时候,就发现 mask 组件可以正确的剔除被我们更换过材质球的组件了。

    其实mask的主要功能,计算都在ui组件上了,加上这2段以后,我们就可以正确的接受外部传入进来的mask相关参数了,剩下的就是把它们剔除掉就好了。

    在支持mask之后,在Mask组件下的Image等组件的Material只有第一次赋值有效,如果想要能动态修改的话,就要新建一个脚本继承Image并重写GetModifiedMaterial方法。

    原文链接:https://blog.csdn.net/wpapa/java/article/details/71242812

  • 相关阅读:
    053-509
    053-298
    053-255
    css实现省略号
    github上写blog
    解决内容被挤压缩小问题
    request.getRequestDispather().forward()与response.sendRedirect()
    资料,来自HTML5前端开发学习⑤群
    checkbox与jq<转>2
    checkbox与jq<转>
  • 原文地址:https://www.cnblogs.com/Joke-crazy/p/12858987.html
Copyright © 2011-2022 走看看