public static void RemoveUiTreeNode()

in Tools/UIRecorder/UIRecorder/UiTreeNode.cs [180:225]


        public static void RemoveUiTreeNode(RecordedUiTask uiTaskNode)
        {
            if (s_uiTreeNodes.Count == 0)
            {
                return;
            }

            UiTreeNode uiNode = FindUiTaskNode(s_uiTreeNodes.First(), uiTaskNode);
            if (uiNode == null)
            {
                s_uiTreeNodes.Clear();
                return;
            }

            UiTreeNode uiParent = uiNode.Parent;
            if (uiParent == null)
            {
                s_uiTreeNodes.Clear();
                return;
            }

            while (uiParent != null)
            {
                uiNode.UiTask = null;

                if (uiNode.Items.Count == 0)
                {
                    uiParent.Items.Remove(uiNode);
                }

                if (uiParent.Items.Count > 0)
                {
                    break;
                }
                else
                {
                    uiNode = uiParent;
                    uiParent = uiNode.Parent;
                }
            }

            if (uiParent == null && (s_uiTreeNodes.Count == 1 && s_uiTreeNodes.First().Items.Count == 0))
            {
                s_uiTreeNodes.Clear();
            }
        }