Search code examples
c#unity-game-engineunity3d-2dtools

Unity New UI Image changing Color not working


im trying implement health to my player using unity new UI Image system.but its not working.can anyone help me.Thank you.

    using UnityEngine.UI;

 if (health_value == 3) {
             GameObject.Find("health").GetComponent<Image>().color.a = 1;
             GameObject.Find("health1").GetComponent<Image>().color.a = 1;
             GameObject.Find("health2").GetComponent<Image>().color.a = 1;

         }

im getting this error.

  error CS1612: Cannot modify a value type return value of `UnityEngine.UI.Graphic.color'. Consider storing the value in a temporary variable

Solution

  • Because the Color is a struct of Image (I think that's the correct terminology? please correct me if I'm wrong), you can't edit its color directly, you have to create a new Color var, change its vars, and then assign it to Image.

    Image healthImage = GameObject.Find("health").GetComponent<Image>();
    Color newColor = healthImage.color;
    newColor.a = 1;
    healthImage.color = newColor;