@@ -22,6 +22,7 @@ public abstract class Tree
22
22
23
23
[ SerializeField ] public string PathIgnoreRoot ;
24
24
[ SerializeField ] public string PathSeparator = "/" ;
25
+ [ SerializeField ] public bool DisplayRootNode = true ;
25
26
[ SerializeField ] public GUIStyle FolderStyle ;
26
27
[ SerializeField ] public GUIStyle TreeNodeStyle ;
27
28
[ SerializeField ] public GUIStyle ActiveTreeNodeStyle ;
@@ -61,11 +62,13 @@ public void Load(IEnumerable<ITreeData> data, string title)
61
62
folders . Clear ( ) ;
62
63
nodes . Clear ( ) ;
63
64
65
+ var displayRootLevel = DisplayRootNode ? 1 : 0 ;
66
+
64
67
var titleNode = new TreeNode ( )
65
68
{
66
69
Name = title ,
67
70
Label = title ,
68
- Level = 0 ,
71
+ Level = - 1 + displayRootLevel ,
69
72
IsFolder = true
70
73
} ;
71
74
SetNodeIcon ( titleNode ) ;
@@ -101,7 +104,7 @@ public void Load(IEnumerable<ITreeData> data, string title)
101
104
Name = name ,
102
105
IsActive = d . IsActive ,
103
106
Label = label ,
104
- Level = level ,
107
+ Level = i + displayRootLevel ,
105
108
IsFolder = isFolder
106
109
} ;
107
110
@@ -148,26 +151,31 @@ public void Load(IEnumerable<ITreeData> data, string title)
148
151
public Rect Render ( Rect rect , Vector2 scroll , Action < TreeNode > singleClick = null , Action < TreeNode > doubleClick = null , Action < TreeNode > rightClick = null )
149
152
{
150
153
Profiler . BeginSample ( "TreeControl" ) ;
151
- bool visible = true ;
154
+ var visible = true ;
152
155
var availableHeight = rect . y + rect . height ;
153
156
154
157
RequiresRepaint = false ;
155
158
rect = new Rect ( 0f , rect . y , rect . width , ItemHeight ) ;
156
159
157
- var titleNode = nodes [ 0 ] ;
158
- bool selectionChanged = titleNode . Render ( rect , 0f , selectedNode == titleNode , FolderStyle , TreeNodeStyle , ActiveTreeNodeStyle ) ;
160
+ var level = 0 ;
159
161
160
- if ( selectionChanged )
162
+ if ( DisplayRootNode )
161
163
{
162
- ToggleNodeVisibility ( 0 , titleNode ) ;
163
- }
164
+ var titleNode = nodes [ 0 ] ;
165
+ var selectionChanged = titleNode . Render ( rect , 0f , selectedNode == titleNode , FolderStyle , TreeNodeStyle , ActiveTreeNodeStyle ) ;
166
+
167
+ if ( selectionChanged )
168
+ {
169
+ ToggleNodeVisibility ( 0 , titleNode ) ;
170
+ }
164
171
165
- RequiresRepaint = HandleInput ( rect , titleNode , 0 ) ;
166
- rect . y += ItemHeight + ItemSpacing ;
172
+ RequiresRepaint = HandleInput ( rect , titleNode , 0 ) ;
173
+ rect . y += ItemHeight + ItemSpacing ;
167
174
168
- Indent ( ) ;
175
+ Indent ( ) ;
176
+ level = 1 ;
177
+ }
169
178
170
- int level = 1 ;
171
179
int i = 1 ;
172
180
for ( ; i < nodes . Count ; i ++ )
173
181
{
0 commit comments