using System.Collections; using System.Collections.Generic; using UnityEngine.Experimental.Rendering.Universal; using UnityEngine; public class LightIntensityController : MonoBehaviour { public enum LIUpdatePolicy { Update, FixedUpdate, LateUpdate }; [SerializeField] public LIUpdatePolicy updatePolicy; [SerializeField] public bool oscillateIntensity; [SerializeField] public float intensityAverage; [SerializeField] public float oscillationAmplitude; [SerializeField] public float oscillationPeriod; [SerializeField] private Light2D light2DController; // Start is called before the first frame update void Start() { light2DController = GetComponent(); } void SetIntensity() { light2DController.intensity = intensityAverage + Mathf.Sin(Time.time / oscillationPeriod) * oscillationAmplitude; } private void Update() { if (oscillateIntensity && updatePolicy == LIUpdatePolicy.Update) { SetIntensity(); } } void FixedUpdate() { if (oscillateIntensity && updatePolicy == LIUpdatePolicy.FixedUpdate) { SetIntensity(); } } private void LateUpdate() { if (updatePolicy == LIUpdatePolicy.LateUpdate) { SetIntensity(); } } }