Can't use script on more items

I got this script and want to use it on several items, but when I try, the text doesn’t show up anymore.

Every item gets their own canvas, but is there a better way? (The names show up above the object)

It works when I put it on 1 object. As soon as a try 2 the text will be gone.

    public string myString;
    public Text myText;
    public float fadeTime;
    public bool displayInfo;

     private void Awake()
    {
        myText = GameObject.Find("Text").GetComponent<Text>();
        myText.color = Color.clear;

    }

    private void Update()
    {
        FadeText();

        
    }


    private void OnMouseOver()
    {
        displayInfo = true;
        
    }


    private void OnMouseExit()
    {
        displayInfo = false;
    
    }

    
    void FadeText()
    {

       if (displayInfo)
        {
          
            myText.text = myString;

            myText.color = Color.white;
        }
        else
        {
            
            myText.color = Color.clear;
        }
    }

}

It looks like you’re always referencing the same object in your Awake() function. Try to make that a variable or simply write

myText = GameObject.GetComponent<Text>();

To reference the text component on the gameObject that you’ve attached the script to. Otherwise you’re constantly overwriting everything.