Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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# 在鼠标上单击“上一步”;OnTriggerStay“;若要添加分数,请添加超过设置的金额_C#_Visual Studio_Unity3d - Fatal编程技术网

C# 在鼠标上单击“上一步”;OnTriggerStay“;若要添加分数,请添加超过设置的金额

C# 在鼠标上单击“上一步”;OnTriggerStay“;若要添加分数,请添加超过设置的金额,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,简短而简单,物体落入触发物体,我点击,分数上升。分数设置为+1,将+2添加到+5,没有合理解释(提供脚本和视频) 首先,调用OnTiggerStay()函数的确切含义是什么,因为这不是Unity函数,它应该是这样的: void OnTriggerStay(Collider col) { if (Input.GetMouseButtonDown(0)) { currentScore += addScore; } } 另外请注意,如果使用OnTigger,球

简短而简单,物体落入触发物体,我点击,分数上升。分数设置为+1,将+2添加到+5,没有合理解释(提供脚本和视频)


首先,调用OnTiggerStay()函数的确切含义是什么,因为这不是Unity函数,它应该是这样的:

void OnTriggerStay(Collider col)
{
    if (Input.GetMouseButtonDown(0))
    {
        currentScore += addScore;
    }
}
另外请注意,如果使用OnTigger,球必须有一个刚体,而不是GetMouseButtonDown(0)应该按预期工作,并且在我的测试中工作良好

我在这里的唯一解释是,其他脚本或任何脚本更改currentScore,您可以通过设置var private来测试这一点

编辑:

我想我知道你的问题,我假设多个碰撞器触发函数,因此它每帧被调用多次,因为它是相同的帧
输入。GetMouseButtonDown(0)
对于每个碰撞器都是正确的。 因此,您应该在if案例中添加一个检查

if(Input.GetMouseButtonDown(0) && col.name.Equals("Yoyo")){
...
}

我猜这个球叫yoyo;)

不幸的是,它不起作用。我不知道为什么会发生这个问题。尝试过交替增加和减少数量,但什么都没有。我住在西班牙,没有s://如果您将代码片段与Collider一起使用,那么代码片段本身就可以了,否则您自己调用该函数,所以请查看是否有其他东西在改变它。另一个问题可能是您的鼠标正在放弃,并且它将按住鼠标计数为多次按下。但我想你会注意到在其他应用程序上。只是为了确保你按住了鼠标,对吗?或者只要球在扳机内,不管你多久按一次鼠标,你都只想数一次。不,似乎是随机的。我试着按住鼠标,快速点击它。数字仍然是随机的。如果有帮助的话,我计划用一次点击一次触发的方法。你有一个MWE要看吗?请原谅我知识的缺乏,什么是MWE?
if(Input.GetMouseButtonDown(0) && col.name.Equals("Yoyo")){
...
}