Unity New UI Image changing Color not working

hash picture hash · Mar 5, 2015 · Viewed 17.1k times · Source

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

Answer

Chris McFarland picture Chris McFarland · Mar 5, 2015

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;