Checking condition and calling continuous method with periods of delay unity

[亡魂溺海] 提交于 2019-11-27 19:43:55

问题


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.


回答1:


InvokeRepeating( "PossiblyShoot" , 1f, 1f );

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


来源:https://stackoverflow.com/questions/35807232/checking-condition-and-calling-continuous-method-with-periods-of-delay-unity

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!