当我不破坏物体时,这些点只会不断增加,直到我移动播放器为止。我该如何解决?我也不想禁用对撞机。
void OnCollisionEnter(Collision hit)
{
if (hit.gameObject.tag == "Enemy")
{
score++;
}
}
答案 0 :(得分:0)
这个问题需要更多有关Unity中发生的情况的上下文,但是在我看来,您想要做的就是使用HashSet:https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.hashset-1?view=netframework-4.8
该HashSet<GameObject>
将是脚本的属性,并且您将hit.gameobject添加到脚本中。每次获取OnCollisionEnter时,您都将在HashSet上执行Contains()
,如果该对象不存在,则将其添加并增加分数,如果该对象已经存在,则不进行标记。