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(); } 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; } }