如何在碰撞时仅添加一个点而不会破坏碰撞的对象

时间:2019-05-05 08:01:27

标签: c# unity3d collision

当我不破坏物体时,这些点只会不断增加,直到我移动播放器为止。我该如何解决?我也不想禁用对撞机。

void OnCollisionEnter(Collision hit)
{
   if (hit.gameObject.tag == "Enemy")
   {
     score++;
   }
}

1 个答案:

答案 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(),如果该对象不存在,则将其添加并增加分数,如果该对象已经存在,则不进行标记。