Creating a randomly generated texture on a plane.

I am trying to create a generated textured mesh (Plane), the issue is that when I do the following code in the start function:

var plane = GetComponent<MeshFilter>();
Texture2D t2 = new Texture2D(10, 10);

for (int x = 0; x < t2.width; x++)
    for (int y = 0; y < t2.height; y++)
        float  r = Random.Range(0f, 0f);
        float g = Random.Range(0f, 0f);
        float b = Random.Range(0f, 1f);
        t2.SetPixel(x, y, new Color(r, g, b) );
byte[] bytes = t2.EncodeToPNG();
File.WriteAllBytes(Application.dataPath + "/Resources/Testing2.png", bytes);
plane.renderer.material.mainTexture = t2;

The texture is written out to the file correctly and if I restart with this texture it is correct, but when I don’t restart, the texture on the material is a static off white. Any ideas what I’m doing wrong?

I have had some luck writing the texture to a file than using the Resource.Load, but that will not work on other platforms.

I missed t2.Apply() before setting texture to mainTexture.