Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
245 views
in Technique[技术] by (71.8m points)

c# - Checking condition and calling continuous method with periods of delay unity

I want code to check if target is alive, and if yes shoot at it. I want to check it all the time, and shoot all the time, The only problem is that checks can be made anytime u want, but shooting must have limits of fire per second. I mean u check the target all the time, but when u decide to shoot, bullets will fire one after another with some delays. And also when u realize that target is dead u stop shooting at the same time.

void Update()
{
   StartCoroutine(Shoot(currentTarget, 1f));
}

IEnumerator Shoot(Collider currentTarget, float delayTime)
{
    yield return new WaitForSeconds(delayTime);
    if (currentTarget != null)
    {
         .......
    }
}

This code starts to shoot but with no delays between shooting.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
InvokeRepeating( "PossiblyShoot" , 1f, 1f );

private void PossiblyShoot()
   {
   1. check if target still exists
   2. if it exists shoot at it
   }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...