Here's the code :

using UnityEngine;

public class FadeColor : MonoBehaviour
{
    private new Camera camera;
    [SerializeField] [Range(0f, 1f)] float lerpTime;
    [SerializeField] Color[] myColors;

    private int colorIndex = 0;
    private float t = 0f;
    private int len;

    private void Start()
    {
        camera = GetComponent<Camera>();
        len = myColors.Length;
    }

    private void Update()
    {
        camera.backgroundColor = Color.Lerp(camera.backgroundColor, myColors[colorIndex], lerpTime * Time.deltaTime);

        t = Mathf.Lerp(t, 1f, lerpTime * Time.deltaTime);
        if (t > 0.9f)
        {
            t = 0f;
            colorIndex++;
            colorIndex = (colorIndex >= len ? 0 : colorIndex);
        }
    }

}

The Component

FadeColorComponent

Demo Video on how to use this script coming soon! In the meantime watch a video by : Hamza Herbou that inspired this script.