Юнити как определить сколько касается объектов?

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

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class colTag : MonoBehaviour
{
    private bool hasExecuted = false;

    public GameObject Olivca;

    public void MarkAsExecuted()
    {
        hasExecuted = true;
    }

    public void OnCollisionEnter2D(Collision2D collision)
    {
        if (!hasExecuted && collision.gameObject.CompareTag("Goroshec"))
        {
            //метод играть звук
            //задержка
            collision.gameObject.GetComponent<colTag>().MarkAsExecuted();
            Vector2 eggPosition1 = collision.gameObject.transform.position;
            Vector2 eggPosition2 = transform.position;
            Destroy(collision.gameObject);
            Destroy(gameObject);
            Vector2 centerPosition = (eggPosition1 + eggPosition2) / 2;
            Instantiate(Olivca, centerPosition, Quaternion.identity);
        }
    }
}

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