Add delay in while loop

I am using a while loop and i want delay inside it. I have used coroutines and also async function with await Task.Delay()
But problem is that during delay they start executing other things which I don’t want .I want a delay inside that while loop and the controller should be there during delay or wait , Should not get out and start execute other code.

Here’s the line from the following example you’ll need: yield return new WaitForSeconds(5);

This waits for 5 seconds, then continues on. I use it in my games to get a delay in the script code execution like you’re wanting.

using UnityEngine;
using System.Collections;

public class WaitForSecondsExample : MonoBehaviour
{
    void Start()
    {
        //Start the coroutine we define below named ExampleCoroutine.
        StartCoroutine(ExampleCoroutine());
    }

    IEnumerator ExampleCoroutine()
    {
        //Print the time of when the function is first called.
        Debug.Log("Started Coroutine at timestamp : " + Time.time);

        //yield on a new YieldInstruction that waits for 5 seconds.
        yield return new WaitForSeconds(5);

        //After we have waited 5 seconds print the time again.
        Debug.Log("Finished Coroutine at timestamp : " + Time.time);
    }
}

Credit: Unity - Scripting API: WaitForSeconds

Keep on Creating!

Justin of JustinTime Studios
http://unity3d.expert