void OnGUI() { DoToolbar(); if ((treeView == null && !IsPrefabObject()) || (treeView != null && treeView.TargetPrefab == null)) { GUILayout.Label("Please select prefab."); } else { if (treeViewState == null) { treeViewState = new TreeViewState(); } if (IsPrefabObject()) { var root = GetPrefabRoot(); if (root != preRoot || treeView == null) { treeView = new PrefabTreeView(treeViewState, root); } preRoot = root; } DoTreeView(); } }
void Build(GameObject parent, GameObject target, Action <GameObject> changeAction) { _state = new TreeViewState(); _treeView = new PrefabTreeView(_state, parent); _treeView.Reload(); _treeView.SelectObject(target); _changeAction = changeAction; }
void OnSelectionChange() { GameObject curSelectPrefab = Selection.activeObject as GameObject; if (curSelectPrefab == null) { return; } if (curSelectPrefab != selectPrefab) { selectPrefab = Selection.activeObject as GameObject; prefabTreeView = new PrefabTreeView(treeViewState, selectPrefab); } Repaint(); }
void OnEnable() { if (null == treeViewState) { treeViewState = new TreeViewState(); } if (selectPrefab != null) { prefabTreeView = new PrefabTreeView(treeViewState, selectPrefab); } else { prefabTreeView = null; } }
private void DoSelectPrefabHierarchyVieww() { GUILayout.BeginArea(selectPrefabHierarchyViewRect); if (null != curSelectPrefab) { Rect rect = GUILayoutUtility.GetRect(0, 100000, 0, 100000); prefabTreeView = new PrefabTreeView(treeViewState, curSelectPrefab); prefabTreeView.OnGUI(rect); prefabTreeView.ExpandAll(); } else { } GUILayout.EndArea(); }