Generating texture coords from a physics collision

As the question says, I am trying to generate texturecoords from a physics collection, for a window cleaning mechanic. I have a cuboid “brush”, and a cuboid window which contains the following script:

    private void OnCollisionStay(Collision other) 
    {
        Debug.Log("Hit!");
        if (isBrushEquipped)
        {
            RaycastHit hit = new RaycastHit();
            Ray ray = new Ray(other.contacts[0].point, -other.contacts[0].normal);
            if (Physics.Raycast(ray, out hit))
            {
                Debug.DrawRay(other.contacts[0].point, -other.contacts[0].normal, Color.red, 60.0f, false);
                print(hit.textureCoord);
                Debug.Log(hit.textureCoord.x.ToString() + ", " + hit.textureCoord.y.ToString());
                Vector2 textureCoord = hit.textureCoord;

                int pixelX = (int) (textureCoord.x * _templateDirtMask.width);
                int pixelY = (int) (textureCoord.y * _templateDirtMask.height);
                for (int x = 0; x < _brush.width; x++)
                {
                    for (int y = 0; y < _brush.height; y++)
                    {
                        Color pixelDirt = _brush.GetPixel(x,y);
                        Color pixelDirtMask = _templateDirtMask.GetPixel(pixelX + x, pixelY + y);

                        _templateDirtMask.SetPixel(pixelX + x,
                            pixelY + y,
                            new Color(0, pixelDirtMask.g * pixelDirt.g, 0 ) );

                    }
                }
                     _templateDirtMask.Apply();
            }

        }
    }

However, the texturecoords are always returned as 0,0. Both objects have a mesh collider, and the “Hit!” appears everytime, but the coords appear inconsistently and always at 0,0.

Has anyone had any luck doing this in the past? I’ve seen many tutorials using a raycast from the mouse, but this is a VR mechanic using a brush object. I have used the On Collision Stay as it needs to continue the detection for as long as the brush is scraping the window.

The only other code in this script is a function to create the _templateDirtMask from the base dirt mask I have created.

Thanks!