My "Health <= 50" is changing color if it's under 50. But when i hit 25 i wanna change it to red. (Im in Unity, C#) As tagged. I've tried many compbs and researched but aint found any answers. Thanks for reading!
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SomethingFunction : MonoBehaviour
{
[SerializeField] Text Informationsystem;
public int Health 100;
void Start()
{
TxtUI= GetComponent<Text>();
}
void Update()
{
Test();
}
public void Test()
{
if(health <= 50)
{
TxtUI.color = Color.yellow;
}
else if(health <= 25)
{
TxtUI.color = Color.red;
}
else if(health >= 50)
{
TxtUI.color = Color.white;
}
}
}```
Please research how if-else statements work.
The problem here is that if, for example, the health is 19: Then the color will be set to yellow, because 19<50.
Because of the else if statement the other checks are not executed. You can either change the order of if-else statements or remove the else part:
if (health <= 25)
{
TxtUI.color = Color.red;
}
else if (health <= 50)
{
TxtUI.color = Color.yellow;
}
else if (health > 50)
{
TxtUI.color = Color.white;
}