I am proceedurally generating a generic game object and trying to make it transparent using the default diffuse transparency shader.
meshRenderer.materials[0]=new Material(Shader.Find("Transparent/Diffuse"));
meshRenderer.materials[0].color = new Color(0f,1f,0f,0.05f);
Just seems to make it Default-Diffuse, but if I do this
meshRenderer.materials[0]=new Material(Shader.Find("Transparent/Diffuse"));
meshRenderer.materials[0].shader = Shader.Find("Transparent/Diffuse");
meshRenderer.materials[0].color = new Color(0f,1f,0f,0.05f);
It works just fine and I get transparency. The Material constructor looks like it takes the exact same shader, but it doesnt seem to be applying. Why? I am already explicitly inluding the shader in the project settings.