void lockRB2D(GameObject go)
    {
        Rigidbody2DLock gorb2dl = go.GetComponent <Rigidbody2DLock>();

        if (gorb2dl == null)
        {
            gorb2dl = go.AddComponent <Rigidbody2DLock>();
        }
        gorb2dl.addLock(this.gameObject);
    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        Rigidbody2DLock rb2dl = collision.gameObject.GetComponent <Rigidbody2DLock>();

        if (rb2dl)
        {
            if (rb2dl.holdsLock(gameObject))
            {
                rb2dl.removeLock(gameObject);
            }
        }
    }