为了实现2D游戏一个需求,我需要对SpriteRenderer中的image做fill效果,因为SR的填充方式只有simple、tiled和sliced,所以考虑使用shader做修改。
可实现fill效果的shader很多,这里不贴代码了,主要是说明后续情况。后来的问题是,尝试将image合并成单一图集合批优化,但是这时候发现shader对图片的操作偏移了。
在网上找了很多资料,但是都没有用,只好自己通过git一个个提交去定位。经过多次定位后,发现直接用Load<Sprite>加载图片,并且必须删除图集,只有这样ui才不会受到图集的影响,从而能被shader正确渲染显示。
等项目结束后我会抽时间出来分析一下,这也是我少有的接触shader的经验,是很值得学习的一个点。