统一如何在函数调用之间进行时间限制?

时间:2015-04-08 20:40:45

标签: c# unity3d

我在c#中编写了一段代码,该代码应该阻止被快速调用的功能,但是它不起作用,它当前一遍又一遍地调用该函数。你能看看我的代码,看看有什么不对或建议另一种选择吗?

if (Input.GetKey (KeyCode.Mouse0)) {
        if(timeToShoot < 0){
            fire();
            timeToShoot = (1 / fireRate);
        }else{
            timeToShoot -= Time.deltaTime;
        }
}

1 个答案:

答案 0 :(得分:0)

timeToShoot = (1 / fireRate);太小,并且递减得太快,这就是为什么它低于零,因此函数调用得太快。

尝试类似:

timeToShoot = 20 * (1 / fireRate);

可选:您可能希望将因子20操纵为变量:

您的全球代码中的某处: int factor = 20;

然后:

timeToShoot = factor * (1 / fireRate);