private void tagTree(bool toPlayer)
    {
        if (toPlayer)
        {
            //this.gameObject.GetComponent<SpriteRenderer>().color = new Color(0.5f, 0f, 1f);
            gameObject.tag = "Player";
        }
        else
        {
            gameObject.tag = "PlayerPart";
        }

        foreach (Transform child in transform)
        {
            loosePart childPart = child.GetComponent <loosePart>();
            childPart.playerEjected = playerEjected;
            childPart.tagTree(toPlayer);
        }
    }
    private void reverseTree()
    {
        if (transform.parent != null && transform.parent != playerReference)
        {
            loosePart partScript = transform.parent.GetComponent <loosePart>();
            partScript.reverseTree();

            if (transform.parent.parent == null)
            {
                //partScript.vel = Vector2.zero;
                partScript.rb.velocity        = Vector2.zero;
                partScript.rb.angularVelocity = 0;
                partScript.attached           = true;
            }

            partScript.joint.connectedBody = rb;
            partScript.joint.enabled       = true;

            Transform parentReference = transform.parent;
            transform.parent       = null;
            parentReference.parent = transform;
        }
    }