void OnDataChange(ThermalDataProvider provider)
 {
     if (currentPipelineVersion != dataProvider.pipelineVersion)
     {
         Restart();
     }
     if (Application.isPlaying && isActiveAndEnabled)
     {
         DisplayHeatData();
     }
 }
    void OnEnable()
    {
        _dataProvider = dataProvider;

        Restart();

        if (dataProvider)
        {
            dataProvider.Subscribe(OnDataChange);

            DisplayHeatData();
        }
    }
    void OnValidate()
    {
        if (Application.isPlaying && isActiveAndEnabled)
        {
            ValidateResources();

            if (_dataProvider != dataProvider)
            {
                if (_dataProvider != null)
                {
                    _dataProvider.Unsubscribe(OnDataChange);
                    Shutdown();
                }
                _dataProvider = dataProvider;
                if (dataProvider != null)
                {
                    Init();
                    dataProvider.Subscribe(OnDataChange);
                }
            }

            DisplayHeatData();
        }
    }