public void CloseView(Action <GameObject, Vector2> buttonsMoveAnimationFunc)
    {
        ChildButtons.ForEach(b => buttonsMoveAnimationFunc(b, Vector2.zero));
        RootButton.SetActive(false);
        ParentButton.SetActive(false);
        NodeToButton.Clear();

        GameObject rootObj = CreateRootButton(Tree.Root);

        rootObj.GetComponent <Button>().onClick.AddListener(OpenView);
        CurrentMiddleNode = Tree.Root;
    }
    public void ShowRoot(Action <GameObject, Vector2> buttonsMoveAnimationFunc)
    {
        ChildButtons.ForEach(b => b.SetActive(false));
        RootButton.SetActive(false);
        ParentButton.SetActive(false);
        NodeToButton.Clear();
        if (useSpringJoints)
        {
            ChildButtons.ForEach(b => b.GetComponent <TargetJoint2D>().enabled = false);
        }

        ArrangeNodes(Tree.Root.Children, radius, 0, 330, buttonsMoveAnimationFunc);

        GameObject centerNodeGO = CreateRootButton(Tree.Root);

        centerNodeGO.GetComponent <Button>().onClick.AddListener(() => OnRootNodeClick(Tree.Root));
        CurrentMiddleNode = Tree.Root;
    }
    public void ShowNode(TreeNode <E> centralNode, Action <GameObject, Vector2> buttonsMoveAnimationFunc)
    {
        ChildButtons.ForEach(b => b.SetActive(false));
        RootButton.SetActive(false);
        ParentButton.SetActive(false);
        NodeToButton.Clear();
        if (useSpringJoints)
        {
            ChildButtons.ForEach(b => b.GetComponent <TargetJoint2D>().enabled = false);
        }

        ArrangeNodes(centralNode.Children, radius, 0, 270);

        GameObject centerNodeGO = CreateRootButton(centralNode);

        centerNodeGO.GetComponent <Button>().onClick.AddListener(() => OnCenterNodeClick(centralNode));

        GameObject    parentNodeGO     = CreateParentButton(centralNode.Parent);
        RectTransform parentRectTransf = parentNodeGO.GetComponent <RectTransform>();

        parentRectTransf.anchoredPosition = ComputeAnchoredPosition(315, radius + parentRectTransf.sizeDelta.x / 2);
        parentNodeGO.GetComponent <Button>().onClick.AddListener(() => OnParentNodeClick(centralNode.Parent));
        CurrentMiddleNode = centralNode;
    }