unity – Night cycle object not going smootly when object instantiated

Hello so I’m adding night cycle to my game it’s going smoothly for object except the instantiated one
enter image description here
enter image description here

as you can see that is a different color on it.

so here the script for night cycle:

 public GameObject ca1, ca2, ca3, ca4, ca5, ca6;

 void Update()
    {
        if (_GameManager.instance.isStarted)
        {
            timer += Time.deltaTime;

            if (timer >= maxTime)
            {
                GenerateObstacle();

                if (_GameManager.instance.score >= 450)
                {
                    if (_GameManager.instance.score % 2 == 0)
                    {
                        GenerateBuwungObstacle();
                    }

                    if (_GameManager.instance.score >= 3000)
                    {
                        if (_GameManager.instance.score % 5 == 0)
                        {
                            GeneratedMeteorObs();
                        }
                    }
                }

                timer = 0;
            }

            if (_GameManager.instance.score % 200 == 0 && activeFade == null && activeFadeObjectClouds == null)
            {

                fadeToBlack = !fadeToBlack;

                Color colorCactusObs = fadeToBlack ? Color.white : Color.gray;

                activeFadeObjectCactus = StartCoroutine(ObjectCactusFadeTo(colorCactusObs));

            }
        }
    }
   

   // for generating the cactus
  public void GenerateObstacle()
    {
        choosedObstacle = Random.Range(0, Obstacles.Length);
        GameObject obstacle = Instantiate(Obstacles(choosedObstacle));
    }

  IEnumerator ObjectCactusFadeTo(Color destination)
    {
        Color start1 = ca1.GetComponent<SpriteRenderer>().color;
        Color start2 = ca1.GetComponent<SpriteRenderer>().color;
        Color start3 = ca3.GetComponent<SpriteRenderer>().color;
        Color start4 = ca4.GetComponent<SpriteRenderer>().color;
        Color start5 = ca5.GetComponent<SpriteRenderer>().color;
        Color start6 = ca6.GetComponent<SpriteRenderer>().color;

        for (float t = 0; t < 1f; t += (Time.deltaTime / fadeSpeed) * 2)
        {
            ca1.GetComponent<SpriteRenderer>().color = Color.Lerp(start1, destination, t);
            ca2.GetComponent<SpriteRenderer>().color = Color.Lerp(start2, destination, t);
            ca3.GetComponent<SpriteRenderer>().color = Color.Lerp(start3, destination, t);
            ca4.GetComponent<SpriteRenderer>().color = Color.Lerp(start4, destination, t);
            ca5.GetComponent<SpriteRenderer>().color = Color.Lerp(start5, destination, t);
            ca6.GetComponent<SpriteRenderer>().color = Color.Lerp(start6, destination, t);

            yield return null;
        }

        ca1.GetComponent<SpriteRenderer>().color = destination;
        ca2.GetComponent<SpriteRenderer>().color = destination;
        ca3.GetComponent<SpriteRenderer>().color = destination;
        ca4.GetComponent<SpriteRenderer>().color = destination;
        ca5.GetComponent<SpriteRenderer>().color = destination;
        ca6.GetComponent<SpriteRenderer>().color = destination;

        activeFadeObjectCactus = null;
    }

I already try with for loop in the object cactus fade but still not smooth