using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.Rendering.Universal; public class OcclusionManager : MonoBehaviour { [SerializeField] private bool occludeLights = true; [SerializeField] private List<Light2D> lights = new(); private Transform _transform; private void Awake() { _transform = transform; //Get lights if(occludeLights) lights = FindObjectsOfType<Light2D>().Select(a => a.GetComponent<Light2D>()).ToList(); } void Update() { if (occludeLights) { foreach (Light2D light in lights) { if (light.lightType != Light2D.LightType.Global) { if ((_transform.position - light.transform.position).sqrMagnitude > gameData.LightOcclusionDistance * gameData.LightOcclusionDistance) light.enabled = false; else light.enabled = true; } } } } }