正在发生一些非常奇怪的事情,我正在尝试检查名为fireDelay的浮点数是否低于0.根据我编程的情况,它是。但似乎它不起作用。 我做了一个布尔检查,写在Debug.Log中,以及在调试日志中写入的实际浮点值。
public float fireDelay = 0.0f;
public void PrimaryFire(RaycastHit hit)
{
bool fireDelayLower = fireDelay <= 0.0f;
Debug.Log("fireDelayLower = " + fireDelayLower);
Debug.Log(fireDelay);
if (fireDelay <= 0.0f)
{
Debug.Log(pickupOwner.GetComponent<AudioSource>(), pickupOwner);
this.fireDelay = fireRate;
pickupOwner.GetComponent<AudioSource>().PlayOneShot(gunSound[Random.Range(0, gunSound.Length - 1)]);
}
if (currentClip <= 0)
{
DryFire();
return;
}
}
void Update()
{
if (fireDelay > 0.00f)
fireDelay -= Time.deltaTime;
}
输出:
fireDelayLower = False
0.3
更新被正确调用,我有一个Debug.Log并更新它。
但即便如此,fireDelay -= Time.deltaTime;
也没有被调用。因为某些原因fireDelay > 0.00f
是假的。
到底发生了什么,我该如何解决?