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