Weird light intensity behaviour

I have an annoying problem with the script modification of the intensity of a light.
My spot light is at a fixed position and pointing via LookAt to the world center of the screen, so, everytime I’m moving the camera, the spot light is following it.
The intensity of the light is changing depending on the world position of the point it’s looking at. The farther from the x = 0, z = 0, the lower the intensity.
Every camera movement, modification of screen parameters, etc, happens on an update.
Every modification of the spot light happens on a lateupadte.
Here’s my problem : every time I translate / zoom the camera, the intensity of the spot is flickering. It keeps coming back to its original editor value (for example : 1000) before taking the calculted value (for example : 500). When the camera is not moving, the value is correct.
There’s no case where I’m putting this editor value in the intensity of the camera.
I’m a little bit at loss with this behaviour.
Here’s the script of the light :

    public class ShadowLight : MonoBehaviour
    {
        private float _pointPlane;
        private Vector3 _shadowLightPos;
        private Vector3 _sLookAt;
        public static Light SLight { get; private set; }
        private Transform _selfTransform;
        private float _demiCamAngle;
        private float _intensity;
        private float _distCam;

        void Awake()
        {
            SLight = GameObject.Find("ShadowLight").GetComponent<Light>();
            SLight.range = SLight.range * (float)HexUtility.HEX_SCALE;
            _intensity = SLight.intensity;
            _pointPlane = transform.position.y;
            _shadowLightPos = transform.position;
            _selfTransform = transform;
        }

        void LateUpdate()
        {
            _sLookAt = GameDataManager.Instance.CentreMondeVue;
            _selfTransform.LookAt(_sLookAt);
            NewFieldOfView();
            SLight.spotAngle = 2 * _demiCamAngle * Mathf.Rad2Deg;
            SLight.intensity = (_intensity + _intensity * _pointPlane / _distCam) * 0.5f;
        }

        void NewFieldOfView()
        {                   
            _distCam = HexUtility.DistFastV3(_shadowLightPos, _sLookAt);
            float invDistCam = 1 / _distCam;
            float maxr = GameDataManager.Instance.FGM.MaxRayon;
            _demiCamAngle = Mathf.Atan(maxr * invDistCam);           
        }
    }

It’s working now, so obviously it’s not a bug. I inverted the modification of the intensity and the spotAngle, but I don’t see why this should matter…