if语句中的表达式返回true,但if语句不执行其中的内容

时间:2018-06-29 12:19:59

标签: unity3d c#-2.0 floating

我使用unity and visual studio 2017调试和编辑我的统一代码,并创建了一个bool函数,但是当它返回true时,if语句将不执行内部操作:-

我的功能:-

private bool EnemyClosed(float enemyv, float playerv)
{
    for(float i = -0.9f; i<=0.9f; i+=0.1f)
        if (enemyv == (playerv + i))
            return true;
    return false;
}

错误在那里if (enemyv == (playerv + i)) return true;中,我调试了代码,而enemyv等于(playerv + i),但它不会返回true,我也不知道为什么,请问有什么错误吗?

编辑:-

我知道我无法使用等号比较浮点数,但是当我使用Mathf.Approximately函数比较浮点数时,它需要一些时间来找到结果,我在调试程序时就看到了这一点,并且使用了即时窗口始终使用上面的函数来找到它们的相等性,因此花了一些时间来找到结果,所以我不想使用Mathf.Approximately函数,所以请帮助我找到一些简单的代码来比较它们。

0 个答案:

没有答案