evershade/Assets/Scripts/UI/LightFlickerController.cs

41 lines
1.0 KiB
C#

using UnityEngine;
using UnityEngine.Rendering.Universal;
public class LightFlickerController : MonoBehaviour
{
public float minFlickerSpeed;
public float maxFlickerSpeed;
public float minIntensity;
public float maxIntensity;
public Light2D light2d;
private float _flickerTimer;
private float _nextFlickerTime;
private void Start()
{
_flickerTimer = 0;
light2d.enabled = true; // Keep the light enabled to control intensity
SetNextFlicker();
}
private void Update()
{
_flickerTimer += Time.deltaTime;
if (_flickerTimer >= _nextFlickerTime)
{
light2d.intensity = Random.Range(minIntensity, maxIntensity); // Randomize intensity
SetNextFlicker();
}
}
private void OnDisable()
{
light2d.enabled = false;
}
private void SetNextFlicker()
{
_flickerTimer = 0;
_nextFlickerTime = Random.Range(minFlickerSpeed, maxFlickerSpeed); // Randomize time until next flicker
}
}