- Home /
When I try to change the Color of an Image, It will change to the original Image color instead.,When I change the color of an Image, it will show the original source image color instead
First of all, sorry for my English, as im Spanish. I'll try to explain my problem a little bit better.
Im trying to make a game like Pokemon in Unity, and I have some problems when I try to change the color of the health bar when the HP is less than a half.
To reduce the health, what I do is decreasing the Scale of the Image from the left, that works fine. In the Unity Editor I change the color to green to change it from the start. But when I change the color with GetComponent<Image>().color = new Color(255f, 255f, 30f);
it returns to the original image color, which is white.
This is the code:
public class HP_Bar_Control : MonoBehaviour
{
private Color green = new Color(31f, 255f, 30f);
private Color yellow = new Color(255f, 255f, 30f);
private Color red = new Color(255f, 30f, 30f);
private void Start()
{
transform.localScale = new Vector3(0.5f, 1f);
}
private void Update()
{
if (transform.localScale.x <= 0.25f)
{
GetComponent<Image>().color = red;
}
else if (transform.localScale.x <= 0.5f)
{
GetComponent<Image>().color = yellow;
} else
{
GetComponent<Image>().color = green;
}
}
}
In the start method I just change the state to test the color change.
Answer by yummy81 · Jan 01, 2021 at 07:51 PM
The problem lies in the float values you passed into the Color constructors. The range should be 0.0f - 1.0f, not 0.0f - 255f. The reason why you see white color is that if you pass float value higher than 1.0f, the Color automatically cuts it to 1.0f. Change your code like that:
private Color green = new Color(31f/255, 255f/255, 30f/255);
private Color yellow = new Color(255f/255, 255f/255, 30f/255);
private Color red = new Color(255f/255, 30f/255, 30f/255);
Thank you so much. I read something like that and that I should use Color32 but that wasn´t working for me either, probably cause i did something wrong there too. But this works, that was the problam, thanks.
Your answer
Follow this Question
Related Questions
Change the button target image alpha 1 Answer
Button image sprite colour change 1 Answer
Image UI color not changing when sprite is set via script 0 Answers
How to change the color of an image every two seconds 1 Answer
i'm trying to code a premise, if 3 objects are the same color then it will destroy the wall 1 Answer