C# 在鼠标上单击“上一步”;OnTriggerStay“;若要添加分数,请添加超过设置的金额
简短而简单,物体落入触发物体,我点击,分数上升。分数设置为+1,将+2添加到+5,没有合理解释(提供脚本和视频)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,球
首先,调用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")){
...
}