41 lines
1.0 KiB
C#
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
|
|
}
|
|
} |