private void FixedUpdate() //tried it in update and late update
{
InvincibilitySlider.value = InvincibilityTimeElapsed;
NotInvincibilityslider.value = VisitPickUp;
InvincibilityFill.color = Gradient1.Evaluate(InvincibilitySlider.normalizedValue);
NotInvincibilityFill.color = Gradient2.Evaluate(NotInvincibilityslider.normalizedValue);
if (cpi.isInvincible == false)
{
InvincibilityHUD.SetActive(false);
VisitPickUp = Mathf.Clamp(VisitPickUp - Time.fixedDeltaTime, 0, PickupForInvincibility + 0.1f); // tried changing it to Time.deltaTime
InvincibilityTimeElapsed = InvincibilityDuration;
if (VisitPickUp <= 0)
{
NotInvincibilityHUD.SetActive(false);
}
else if (VisitPickUp >= 0)
{
NotInvincibilityHUD.SetActive(true);
if (VisitPickUp >= PickupForInvincibility)
{
VisitPickUp = PickupForInvincibility;
cpi.isInvincible = true; // Invincibility = true;
NotInvincibilityHUD.SetActive(false);
}
}
}
else if (cpi.isInvincible == true)
{
InvincibilityTimeElapsed = Mathf.Clamp(InvincibilityTimeElapsed - Time.fixedDeltaTime, 0, InvincibilityDuration + 0.1f);
VisitPickUp = 0f;
InvincibilityHUD.SetActive(true);
if (InvincibilityTimeElapsed <= 0f)
{
cpi.isInvincible = false;
InvincibilityHUD.SetActive(false);
NotInvincibilityHUD.SetActive(false);
}
}
if (InvincibilityTimeElapsed == 0 && VisitPickUp == 0f)
{
NotInvincibilityHUD.SetActive(false);
InvincibilityHUD.SetActive(false);
}
//all gameObjects are assigned in inspector
}