void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag != "Bodypart")
        {
            return;
        }

        if (!CanConnectAttachpoints(other.gameObject))
        {
            return;
        }

        var attach_points_for_obj = BodyPartSelector.FindAllAttachPoints(other.gameObject);

        if (attach_points_for_obj.Count == 0)
        {
            return;
        }

        var halo = transform.Find("Halo").GetComponent <HaloAnimator>();

        halo.EnterGoingToBody(other.gameObject);

        var bps = Resources.Load("BodyPartSelector") as GameObject;
        var go  = Instantiate(bps);

        go.GetComponent <BodyPartSelector>().InititateSelection(other.gameObject, gameObject);
    }
    private bool CanConnectAttachpoints(GameObject obj)
    {
        var attachpoints = GameObject.FindGameObjectsWithTag("AttachPoint");

        if (attachpoints.Length < 2)
        {
            return(false);
        }

        int counter        = attachpoints.Length;
        var points_in_part = BodyPartSelector.FindAllAttachPoints(obj);

        counter -= points_in_part.Count;
        return(counter > 0);
    }