So I have developed a hunger, thirst, and health system and I want to display it on my current HUD I used an image for the fill method and tried to develop a script to make it display onto the HUD but it doesn’t seem to display onto the HUD.
here is the code to the System:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SurvivalUIControl : MonoBehaviour
{
//variables
public float maxHealth, maxThirst, maxHunger;
public float thirstIncreaseRate, hungerIncreaseRate, deadIncreaseRate;
public float currentHealth, currentThirst, currentHunger;
public bool playerDead;
//functions
public void Start()
{
currentHealth = maxHealth;
currentThirst = maxThirst;
currentHunger = maxHunger;
}
public void Update()
{
//thirst and hunger
if (!playerDead)
{
currentHunger -= hungerIncreaseRate * Time.deltaTime;
currentThirst -= thirstIncreaseRate * Time.deltaTime;
}
if (currentThirst <= 0)
{
currentHealth -= deadIncreaseRate * Time.deltaTime;
print("Player is Thirsty!");
currentThirst = 0;
}
if (currentHunger <= 0)
{
currentHealth -= deadIncreaseRate * Time.deltaTime;
print("Player is Starving!");
currentHunger = 0;
}
if(currentHealth < 0)
{
Die();
currentHealth = 0;
}
}
public void Die()
{
playerDead = true;
print("player has Died!");
}
}
And here is the code to the HUD:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SurvivalHUDController : MonoBehaviour
{
public Image health;
public Image stamina;
public Image hunger;
public Image thirst;
public SurvivalUIControl survivalControl;
public void Update()
{
health.fillAmount = survivalControl.currentHealth;
hunger.fillAmount = survivalControl.currentHunger;
thirst.fillAmount = survivalControl.currentThirst;
}
}