API
var texture = new PaintableChannelMaskedTexture(Texture2D mainTexture); //This texture should contains full color info
texture.SetMainTexture(Texture2D newMainTexture);
//Color Mask Texture should be grayscale texture!
texture.SetMaskTexture(Texture2D mask); //Mask Texture could contain mask texture as separate RGB channel
texture.SetTintColor(Color maskTint1, Color maskTint2, Color maskTint3); //maskTint1 = Tint for R Channel, maskTint2 = Tint for G Channel, maskTint3 = Tint for B Channel
targetMat.mainTexture = texture.CurrentTexture; //This returns RenderTexture
texture.CreateCopy();