How to make Update wait for AI Decision?

I am making a 2D fighting game for a class, and I am having issues trying to achieve the affect that I want in Unity.

The affect I want to do is have the Update function wait X amount of time for my AI to decide what to do, after waiting the AI will fire off it’s choice and I want the Update function to keep moving along like it was before it had to wait.

ex) I collide with the other player, and want to attack it. I need to wait X amount of time before firing off the attack command or else the AI will instantly win by firing off all the attack commands.

Is this possible? If so how?

I am using a state machine to figure out the AI logic (states are Attack, Evade, & Seek). The main function that calls the other state functions, doStateAction, is called initially by the Update function. I have tried using waitforseconds and startcoroutine, and I still can’t seem to get them to do what I want… I have placed them in the individual state functions and in the update function to no avail.

Please help!

You can’t make an Update function wait.
You will need to do all of this in a Coroutine.

When you collide with the other player, instead of calling your function, start a coroutine:

//OnCollision
StartCoroutine("AIAttack");

//And write this Coroutine function:
IEnumerator AIAttack(){
    //Wait for 2 seconds before attacking
	yield return new WaitForSeconds(2);
	Attack ();
}

//The Attack function
void Attack(){
    //Attack Code
}

Hope that helps!