This shader provides a flexible way to draw any kind of progress bar. You need two textures include a progress texture and a mask texture.
There is a “_Progress” value in this shader. Every pixel on the progress texture shows only when the corresponding alpha value on the mask texture is greater than the “_Progress” value. To make more complex progress bars, you just need to make more complex mask textures.