Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在统一中增加每个循环的内部分数?_C#_Loops_Unity3d_Increment - Fatal编程技术网

C# 如何在统一中增加每个循环的内部分数?

C# 如何在统一中增加每个循环的内部分数?,c#,loops,unity3d,increment,C#,Loops,Unity3d,Increment,我使用foreach循环检查用户输入的答案,以给出5个乘法问题。(使用实例在开始时显示5个问题) 现在我尝试添加分数计数器,如果答案正确,则将其增加1,并根据分数显示星星。例如,如果分数小于3,则显示1颗星;如果分数小于4,则显示2颗星;如果分数小于5,则显示3颗星。即使所有答案都正确,我也只得到一颗星。有人能告诉我如何做到这一点吗 我尝试在if语句中添加score++。但它不会增加分数值 public void CheckButton() { int answer; for

我使用foreach循环检查用户输入的答案,以给出5个乘法问题。(使用实例在开始时显示5个问题)

现在我尝试添加分数计数器,如果答案正确,则将其增加1,并根据分数显示星星。例如,如果分数小于3,则显示1颗星;如果分数小于4,则显示2颗星;如果分数小于5,则显示3颗星。即使所有答案都正确,我也只得到一颗星。有人能告诉我如何做到这一点吗

我尝试在if语句中添加score++。但它不会增加分数值

public void CheckButton() 
{
    int answer;

    foreach (TestModeQuestionUI _TestModeQuestionUIRefrence in testModeQuestionExampleList)
    {
        answer = _TestModeQuestionUIRefrence.GetAnswerInputField();

        if ((_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b) == answer)
        {
            _TestModeQuestionUIRefrence.SetResultOfAnswerInputField(1);
            score++;
        }
        else
        {
            _TestModeQuestionUIRefrence.SetResultOfAnswerInputField(2);
        }
    }

    roundCompletePanel.SetActive(true);
    CheckHowManyStars();

    ShowRoundCompletePanel(score);
}

这里假设

(_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b) == answer
都是
float
从不直接使用
=
比较
浮点
。他们可能永远不会平等,即使在逻辑上他们应该是平等的。由于不同的原因,它们可能相差很小的“ε”


相反,它使用的正是那个小“ε”作为其相等定义

if (Mathf.Approximately(_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b, answer))
它类似于

if (_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b - answer <= diferenceSmallEnoughThreshold)

if(_testmodequestionuireference.a*_testmodequestionuireference.b-回答假设

(_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b) == answer
都是
浮点数
值。从不直接使用
==
比较
浮点数
。它们可能永远都不相等,即使在逻辑上它们应该相等。它们可能因以下原因而相差很小的“ε”


相反,它使用的正是那个小“ε”作为其相等定义

if (Mathf.Approximately(_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b, answer))
它类似于

if (_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b - answer <= diferenceSmallEnoughThreshold)

if(\u testmode questionuireference.a*\u testmode questionuireference.b-answer在语句分数++上放一个断点,看看你是否达到了断点。我们无法判断答案是否永远正确或分数++是否错误。在语句分数++上放一个断点,看看你是否达到了断点。我们无法判断答案是否正确永远都不正确,或者分数++是错误的。好的,我将使用Mathf。大概在这里。如果可能的话,添加断点是什么意思?jdweng指的是调试,例如使用Mathf。大概已经解决了分数增加的问题。非常感谢。如果你真的想让这个游戏变得活跃起来,你会的我得花点时间研究那个臭名昭著的“断点”东西!@MKougiouris是的,我使用debug.log,但很抱歉,我不知道它叫什么。现在我知道了。好的,我将使用Mathf。大约在这里。如果可能的话,添加断点是什么意思?请您解释一下。jdweng指的是调试,例如使用Mathf。大约解决了分数增量问题。非常感谢您认真地想让这个游戏活跃起来,你最好花点时间研究一下那个臭名昭著的“断点”东西!@MKougiouris是的,我使用debug.log,但很抱歉我不知道它叫什么。现在我知道了。