Метод OnCollisionEnter2D() срабатывает два раза
Я делаю игру, где основной задачей является собрать как можно больше бомб при таймере в 60 секунд. Сбор я осуществляю через метод OnCollisionEnter2D(), где проходит проверка о столкновении объекта с нужным тегом (в моем случае "Player"), далее бомба уничтожается и происходит засчитывание 100 очков и увеличение таймера на 5 секунд через get и set. При тесте я обнаружил, что иногда при столкновении происходит баг, при котором вместо 100 прибавляется 200, то есть метод работает почему-то два раза, вместо нужного одного. Код прилагаю ниже.
using UnityEngine;
public class Bomb : MonoBehaviour
{
[SerializeField] GameObject Arrow;
private Timer time;
private GameBehavior gameMan;
private void Start()
{
gameMan = GameObject.Find("GameManager").GetComponent<GameBehavior>();
time = GameObject.Find("Canvas").GetComponent<Timer>();
}
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.CompareTag("Player"))
{
Destroy(gameObject);
gameMan.Score += 100;
Debug.Log("Collected! " + gameMan.Score);
time.SetTime += 5;
}
}
}