Coroutine in place of InvokeRepeating in need of start at time parameter

IEnumerator SendSpriteForward(int no, Coroutine n,int prevhighestorderInlayer)
while (true) {
StopCoroutine (n);
for (int i = 0; i < gameObjectsContainer.transform.childCount; i++) {
gameObjectsContainer.GetChild (i).transform.GetChild (no).GetComponent ().sortingOrder = gameObjectsContainer.GetChild (i).transform.GetChild (prevhighestorderInlayer).GetComponent ().sortingOrder + 1;
n = StartCoroutine (GenericCoroutine (no, 0));
yield return new WaitForSeconds (6);


I need to call this coroutine in start method at different times .

In start Method i want to call them as such

          StartCoroutine(SendSpriteForward(5,one,0));  //start this call at 6 second 
	StartCoroutine(SendSpriteForward(4,two,5)); // this at 7 

and so .
The Repeating functionality has been attained but the start time i need to.
Thank you.

You could start a coroutine in your Start method like this

void Start()

IEnumerator SpriteSwaps()
   return yield WaitForSeconds(6f);
   return yield WaitForSeconds(1f);

So this Coroutine “SpriteSwaps” gets called in your Start ant then waits until the next sprite has to be set.