有时候我们接到需求,比如要把一个图片变成黑白,当然可以要求美术出一套黑白的图,但是这样做会非常浪费资源,可以通过改变贴图的shader来实现你所要的效果。
一般当我们新建一个UITexture时,如下:
我们要改的就是Shader这个文件,例如加入一个黑白Shader效果
一切都很正常,但当把这个节点放到一个ScrollView中时,运行就出问题了:
查了一下源码,发现ScrollView用到了UIPanel的裁切功能
UITexture的默认Shader是Unlit - Transparent Colored,而当UITexture在UIScrollView中渲染时,会自动用Unlit - Transparent Colored 1,
所以对比一下这两个文件的差别,Shader "Unlit/Transparent Colored" ---->
Shader "Hidden/Unlit/Transparent Colored 1"
再实现一个针对UIScrollView的黑白Shader就解决问题了。
效果如下:
就这样…………