Unable to reset alpha to 1 after a fade

I’ve set up a canvas with a bit of text that should update, appear, and then fade out when you pick up an item unlock. All of this works, EXCEPT… only the first time. After that, the alpha refuses to go back to 1, so it can only appear once.

    void OnTriggerEnter(Collider obj)
    {
        if (obj.gameObject.name == "Player")
        {
        	// play pickup audio
            AudioSource.PlayClipAtPoint(pickup, transform.position, 0.05f);

            // Remove this item from the locked items list
    		GameControl.lockedItems.RemoveAt(itemIndex);
            
    		// Update item unlocked message
    		itemUnlockedText.text = itemName + " unlocked!";

            // Set up text color with alpha of 1 (starts at 0 by default)
            textColor = itemUnlockedText.color;
            textColor.a = 1f;                    // Need to first indirectly set alpha, then assign to the text object
            itemUnlockedText.color = textColor;
            itemUnlockedText.CrossFadeAlpha(0, 1.5f, false);  // Immediately start fading
            
    		// Destroy this game object
        	Destroy(this.gameObject);
        }
    }

I’ve tried a bunch of different techniques for fading the alpha, and they all work, but they all refuse to allow me to set it back to 1 again the next time the player picks up one of these objects.

I know this post is a little old, but regardless it appears that the issue is still present. I have tried and tried to set the text alpha to 1.0f. Debug.log even shows it as being set to 1.000, however it is still not visible.

I resorted to:

text.CrossFadeAlpha(1.0f, 0.0f, true);

Have a great day!

I’ve the same problem but I figure it out like this:

void Update()
{
	if(UI_img.enabled == true)
	{
		UI_img.color = new Color (1,1,1,1);
	}
	
	if (heli_dropbomb==true) 
	{
		// _aplpha is a private float

		_aplpha += 0.1f * Time.deltaTime;
		
//		UI_img.CrossFadeAlpha(0f,5,false);
		UI_img.color = new Color (1,1,1,_aplpha);

		UI_img.enabled = true;
	}
}

This should do it.

text.GetComponent<CanvasRenderer>().SetAlpha(1f);