как добавить только одну точку при столкновении, не разрушая столкнувшийся объект - PullRequest
0 голосов
/ 05 мая 2019

Когда я не уничтожаю объект, очки просто продолжают добавляться, пока я не переместлю игрока.Как это исправить?Я тоже не хочу отключать коллайдер.

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

1 Ответ

0 голосов
/ 05 мая 2019

Этот вопрос нуждается в дополнительном контексте того, что происходит в Unity, но мне кажется, что вы хотели бы использовать HashSet: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.hashset-1?view=netframework-4.8

Это HashSet<GameObject> будет атрибутом вашего скрипта, и вы добавите к нему объект hit.game. Каждый раз, когда вы получаете OnCollisionEnter, вы выполняете Contains() в HashSet, если объект не существует, вы добавляете его и увеличиваете счет, если объект уже существует, тогда вы ничего не делаете.

...