void InitIfNeeded() { if (!m_Initialized) { // Check if it already exists (deserialized from window layout file or scriptable object) if (m_TreeViewState == null) { m_TreeViewState = new TreeViewState(); } bool firstInit = m_MultiColumnHeaderState == null; var headerState = MultiUICreateTreeView.CreateDefaultMultiColumnHeaderState(multiColumnTreeViewRect.width); if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_MultiColumnHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(m_MultiColumnHeaderState, headerState); } m_MultiColumnHeaderState = headerState; var multiColumnHeader = new MultiColumnHeader(headerState); if (firstInit) { multiColumnHeader.ResizeToFit(); } var treeModel = new TreeModel <UICreateElement>(UICreateElement.CreateUITransformTree(m_tra, ref traElementDic)); m_TreeView = new MultiUICreateTreeView(m_TreeViewState, multiColumnHeader, treeModel); m_Initialized = true; } }
public static void AddUIChildElement(Transform tra, int depth, List <UICreateElement> treeElements, Dictionary <Transform, UICreateElement> dic) { var element = new UICreateElement(tra.gameObject.activeInHierarchy, tra.name, depth + 1, ++Index); treeElements.Add(element); dic.Add(tra, element); for (int i = 0; i < tra.childCount; i++) { AddUIChildElement(tra.GetChild(i), element.depth, treeElements, dic); } }
public static List <UICreateElement> CreateUITransformTree(Transform tra, ref Dictionary <Transform, UICreateElement> traElementDic) { Index = 0; var treeElements = new List <UICreateElement>(); if (traElementDic == null) { traElementDic = new Dictionary <Transform, UICreateElement>(); } var root = new UICreateElement(tra.gameObject.activeInHierarchy, tra.name, -1, Index); treeElements.Add(root); traElementDic.Add(tra, root); for (int i = 0; i < tra.childCount; i++) { AddUIChildElement(tra.GetChild(i), root.depth, treeElements, traElementDic); } return(treeElements); }