public void DisableColliderCollPair(Collider2D coll1, Collider2D coll2, string key)
    {
        // only disable if both are colliders and are enabled
        if (coll1.isTrigger || coll2.isTrigger)
        {
            return;
        }

        Collider2DPair colliderPair = new Collider2DPair(coll1, coll2);
        LogicLocker    collLocker   = null;

        if (disabledColliders.TryGetValue(colliderPair, out collLocker))
        {
            collLocker.SetLocker(key);
        }
        else
        {
            collLocker = new LogicLocker();
            collLocker.SetLocker(key);
            disabledColliders.Add(colliderPair, collLocker);

            // make sure that objs have a destroy signal component
            if (coll1.GetComponent <ObjDestroyedSignal>() == null)
            {
                coll1.gameObject.AddComponent <ObjDestroyedSignal>();
            }
            if (coll2.GetComponent <ObjDestroyedSignal>() == null)
            {
                coll2.gameObject.AddComponent <ObjDestroyedSignal>();
            }
        }

        // tell the physics engine to ignore collision between the two colliders
        Physics2D.IgnoreCollision(coll1, coll2);
    }
    private void EnableColliderCollPair(Collider2DPair colliderPair, string key)
    {
        LogicLocker collLocker = null;

        if (disabledColliders.TryGetValue(colliderPair, out collLocker))
        {
            collLocker.RemoveLocker(key);
            if (!collLocker.IsLocked())
            {
                // tell the phsyics engine to enable collisions between the two colliders
                Physics2D.IgnoreCollision(colliderPair.coll1, colliderPair.coll2, false);

                // remove the pair from the dictionary
                disabledColliders.Remove(colliderPair);
            }
        }
    }
    public void EnableColliderCollPair(Collider2D coll1, Collider2D coll2, string key)
    {
        Collider2DPair colliderPair = new Collider2DPair(coll1, coll2);

        EnableColliderCollPair(colliderPair, key);
    }