作者在游戏开发中遇到一个问题,UGUI中一个scroll view使用了mask组件,将带有特效的元素拖出裁减区域发现元素中的特效是无法裁剪的
分析原因,是因为mask的实现是用stencil buffer做的,而且mask下的节点是一起渲染的,渲染完毕mask就会清除,即使例子的material使用的shader支持stencil功能也无法正确的裁剪,mask在收集子物体的时候是不会考虑特效的,只会考虑UI元素,这样stencil对特效无法正确的生效导致mask组件无法裁剪特效
经过研究,可以使用新的裁剪组件rect mask2d与sprite mask配合使用
使用默认的mask组件,效果如图