原理:修改stencil
1.在viewport上挂上新shader ,x_mask
x_mask由ui/default修改,
将原来的stencil修改如下
...
Stencil
{
Ref 1
Comp Always
Pass Replace
}
...
2.修改unity自带的特效shader
如Particles/Additive,增加Stencil配置
...
Stencil
{
Ref 1
Comp equal
}
...
3.ScrollView顶层增加1个GameObject,和scrollview大小一致,命名为ClearMaskStencil,
ClearMaskStencil增加canvas组件, canvas比当前order in layer高10,
ClearMaskStencil再增加Mask+Image组件。
ClearMaskStencil功能是还原此区域的stencil