2D-Platformer/Assets/Scripts/UI/HudManager.cs
2022-02-12 12:53:50 +02:00

42 lines
No EOL
833 B
C#

using DefaultNamespace;
using System;
using UnityEngine;
using Zenject;
namespace UI
{
public class HudManager : InjectableComponentSystem
{
[Serializable]
public class Settings
{
public CanvasGroup BloodyScreen;
public float CriticalHealth;
public GameObject GameOverScreen;
}
[Inject] private readonly Settings settings;
protected override void OnStartRunning()
{
}
protected override void OnStopRunning()
{
if (settings.BloodyScreen != null)
{
settings.BloodyScreen.alpha = 0;
}
}
protected override void OnSystemUpdate()
{
Entities.ForEach(
(ref PlayerData player, ref ActorData actor) =>
{
settings.BloodyScreen.alpha = 1 - Mathf.Clamp01(actor.Health / settings.CriticalHealth);
settings.GameOverScreen.SetActive(actor.Health <= 0);
});
}
}
}