- Home /
Delay in a IEnumerator
Hey guys^^
I'm trying to make a delay in a IEnumerator function. The script makes an animation with my player and than Shot(); a bullet.
My IEnumerator function for the animation is working right. But the problem now is that I'm trying to shoot multiple bullets with one attack. This also works, but all bullets appears at the same time. So I want to make a small delay between each bullet. Hope you can follow me^^
This is my script:
IEnumerator WaitForAnimation ()
{
float animationTimer = 0;
currentStateTime = currentState.length;
do
{
AttackMoving();
animationTimer = animationTimer + Time.deltaTime;
yield return null;
}while ((animationTimer < currentStateTime || transform.position != attackEndPos) && (hits.isHitting == false));
//Until here all works right, but this is the problem:
//!!!!!!This is my problem, the delay!!!!!!!!!
for (float t = bulletDelay; t >= 0; t = t - Time.deltaTime) {
//Do Shot(); multiple times, this work right
for (int i = 0; i < bulletCount; i++) {
Shot ();
t = bulletDelay;
}
}
}
At the moment the my delay with t kills unity xD
I realy thank you for your time^^
Answer by SnotE101 · Oct 15, 2014 at 02:28 PM
Try: For(int i = 0; i < rateoffire;i ++)
Shooting stuff here
Yield return new waitforsecounds(delay)
Answer by frarees · Oct 15, 2014 at 02:27 PM
You can delay the coroutine a number of frames (using yield return null
) or you can yield an instance of WaitForSeconds.
Your answer
Follow this Question
Related Questions
Create a delay between function executions 1 Answer
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
How to translate code with yield waitforseconds to c#? 1 Answer
Delay If statement in Update c# 2 Answers