Bootstrap

Unity 2D SpriteRenderer filled Shader实现

最近遇到个需求需要将2D图片SpriteRenderer支持类似UGUI的Image Filled填充功能,搜了下百度居然搜不到(=_=),然后就自己研究了下Shader,下边直接上代码

目前只支持水平和垂直方向的fill填充,暂时不需要角度填充,所以这里就懒得加了,后面有机会补上角度填充功能

Shader "Sprite/Filled"
{
    Properties
    {
        [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
        [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
        [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1)
        [HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1)
        [PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {}
        [PerRendererData] _EnableExternalAlpha ("Enable External Alpha", Float) = 0
        _Color ("Tint", Color) = (1,1,1,1)

        [Enum(Horizontal, 0, Vertical, 1)]_FillType ("FillType", Float) = 0
        _FillAmount ("Fi
;