一直想在unity实现类似flash那样非常丰富简单的遮罩功能,后来找到这个很棒的插件叫Sprite Mask,点我链接 ,这个插件目前支持三种遮罩类型,分别是Rectangle、Sprite、Texture,如图
并且通过简单修改自己的shader也可以完美支持,目前我修改了Spine的shader使Spine动画也成功支持了遮罩,效果如下:
下面看看官方的描述:
大概看了代码如何实现的,原理就是用Shader里的StencilBuffer,官方链接
关于Stencil是什么,见这篇文章
好复杂,水平有限我也没有完全搞懂...shader真是太神奇了。