Files
BABA_YAGA/Assets/Scripts/Trap/FlashbangScreenOverlay.cs
2026-07-02 08:59:23 +07:00

68 lines
1.6 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class FlashbangScreenOverlay : MonoBehaviour
{
[SerializeField] private Image flashImage;
private float currentIntensity = 0f;
private float fadeDuration = 3f;
private float elapsedTime = 0f;
private bool isFlashing = false;
void Start()
{
if (flashImage == null)
{
flashImage = GetComponent<Image>();
}
if (flashImage != null)
{
Color c = Color.white;
c.a = 0f;
flashImage.color = c;
flashImage.enabled = false;
}
}
void Update()
{
if (!isFlashing || flashImage == null) return;
elapsedTime += Time.deltaTime;
float progress = elapsedTime / fadeDuration;
if (progress >= 1f)
{
isFlashing = false;
Color c = Color.white;
c.a = 0f;
flashImage.color = c;
flashImage.enabled = false;
}
else
{
// Linear fade out for the white flashbang overlay
Color c = Color.white;
c.a = Mathf.Lerp(currentIntensity, 0f, progress);
flashImage.color = c;
}
}
public void Flash(float duration, float intensity)
{
if (flashImage == null) return;
flashImage.enabled = true;
isFlashing = true;
elapsedTime = 0f;
fadeDuration = duration;
currentIntensity = intensity;
Color c = Color.white;
c.a = intensity;
flashImage.color = c;
}
}