I can't seem to change character material during gameplay

The mesh renderer and material in the inspector says that it has changed into the material I want, but the material ingame hasn’t changed. I’ve searched for quite a bit and this is the code I was sure would work. It is a blender model.

public Material[] materials;
private Renderer rend;

private void start()
{
        rend = GetComponent<Renderer>();
        rend.enabled = true;
        rend.sharedMaterial = materials[0];
}

private void update()
{
        if (Input.GetKeyDown(KeyCode.B))
        {
            rend.sharedMaterial = materials[1];
        }
}

It turns out the blender model has a material on the game object inside of my player model. So the the one that I had was overlapping I’m guessing.

I put the script on the gameobject which was created in blender, removed the material from the player model by changing the mesh renderer size to 0 and sure enough the material started changing during runtime.