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();
}
}