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


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