Accidentally highlighting all objects in scene?

I am trying to be able to highlight the pieces on a game board I am building whenever I click them. Oddly enough, instead of this happening when the scene loads they typically lose their material’s color (turning into that beige that everything starts out as in Unity) and then uses one of my material colors as the “highlight color”…also, all the “game pieces” in the scene get clicked even if the mouse never touches them simply because they all share the same material. My code is below. How can I highlight a game piece (without losing any color) and not have other game pieces pressed as well?

public bool clicked;
    public Material m_Material;
    public Color32 gold = new Color32(149, 145, 12, 255);
    public Color32 white;

    // Start is called before the first frame update
    void Start()
    {
        m_Material.color = gold; 
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            
            if (!clicked)
            {
                m_Material.color = gold;
                //m_Material.color = Color.gold;
                //ColorUtility.ToHtmlStringRGBA(Gold);
                clicked = true;
            }
            else
            {
                m_Material.color = white;
                //m_Material.color = Color.white;
                clicked = false;
            }
        }
    }

You are not changing the color of an object, you are changing the color of a material. If you want the objects to be “material independant” they need different materials each, if they all share material, when you change the color everyone will get affected

@xxmariofer sorry for the delay. If they require different materials each, do I need a long list of if statements to account for every one of those materials? I still don’t understand why the color starts off wrong.