Painting sprite in unity

I want to make prototype for cleaning windows (I mean cleaning dirty windows) in unity.

I was searching about this subject and finding that I can change pixel by Texture2D.SetPixel.

I try to do it by this method, First I enabled read/write of texture and try this method but nothing happened on my sprite.

So I want to ask it if it’s possible to change alpha of the sprite that is clicked by mouse or touched to show the below sprite of original one !?

My Code :

private RaycastHit2D hitInfo;
    private SpriteRenderer spriteRendererComponent;
    private Color zeroAlpha;

    // Use this for initialization
    void Start ()
    {
        spriteRendererComponent = transform.GetComponent<SpriteRenderer>();
        zeroAlpha = Color.blue;
    }

    // Update is called once per frame
    void Update () {
        if (Input.GetMouseButton(0))
        {
            MouseClick();
        }
    }

    public void MouseClick()
    {
        Vector2 mousePosition = Vector2.zero;
        mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        hitInfo = Physics2D.Raycast(mousePosition, Vector2.zero);
        if (hitInfo)
        {
            spriteRendererComponent.sprite.texture.SetPixel((int)hitInfo.point.x, (int)hitInfo.point.y, zeroAlpha);
            spriteRendererComponent.sprite.texture.Apply();
        }
    }

I’ve used the cursor position and size of the sprite for calculating pixel on sprite but It returned wrong value.

My code :

pixelX = (int) hitInfo.point.x / 2 * texture.width pixelY = (int) hitInfo.point.y / 2 * texture.height