static void InitUiNode(UINode node) { node.AllRefs = new List <UIRef>(); node.AllNodes = new List <UINode>(); UINode[] uiNodes = node.GetComponentsInChildren <UINode>(); foreach (UINode uiNode in uiNodes) { uiNode.AllRefs = new List <UIRef>(); uiNode.AllNodes = new List <UINode>(); } foreach (UINode uiNode in uiNodes) { UINode parentNode = GetParentNode(uiNode.transform); if (parentNode) { parentNode.AllNodes.Add(uiNode); } } UIRef[] uiRefs = node.GetComponentsInChildren <UIRef>(); foreach (UIRef uiRef in uiRefs) { UINode parentNode = GetParentNode(uiRef.transform); if (parentNode) { parentNode.AllRefs.Add(uiRef); } } }