Как предотвратить создание клонов объекта в Unity

Суть следующая. У меня есть шарик. Передвижение осуществляется при помощи мыши. Если его коллайдер сталкивается с любым другим коллайдером, то объект уничтожается. И создаётся новый объект в точке респауна. Когда столкновение происходит одновременно с несколькими коллайдерами, то создаётся несколько объектов. А должен один. Каким образом можно ограничить количество клонов, либо выполнять проверку на наличие клонов и уничтожать их?

Собственно код.

public class PlayerController : MonoBehaviour
{
    public GameObject _player;
    public Transform _startPosition;
    private Vector2 _distance;
    private float _playerPosX;
    private float _playerPosY;
    private void OnMouseDown()
    {
        _distance = Camera.main.WorldToScreenPoint(transform.position);
        _playerPosX = Input.mousePosition.x - _distance.x;
        _playerPosY = Input.mousePosition.y - _distance.y;
    }
    private void OnMouseDrag()
    {
        Vector2 _currentPosition = new Vector2(Input.mousePosition.x - _playerPosX, Input.mousePosition.y - _playerPosY);
        Vector2 _worldPosition = Camera.main.ScreenToWorldPoint(_currentPosition);
        _player.transform.position = _worldPosition;
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag.Equals("Hardles"))
        {
            ReInstantiatePlayer();
            Debug.Log("TAG is HARDLES");
        }
        Debug.Log("Collizion enter");
    }
    private void ReInstantiatePlayer()
    {
        Instantiate(_player, _startPosition.transform.position, Quaternion.identity);
        Destroy(_player, 0.0f);
    }
}

Ответы (1 шт):

Автор решения: Евгений Латынин

Если честно, по описанию не понятно почему бы просто не перемещать готовый шар на стартовую позицию, зачем удалять старые и плодить новые. Но если прям необходимо пересоздавать, то ранее вам уже описали идею с булевой isDead.

→ Ссылка