static void InitToggleTag(string[] strs) { if (strs == null || strs.Length == 0) { return; } int index = 1; FTagNode node = null; for (int i = 0; i < nodeList.Count; i++) { if (nodeList[i].name.Equals(strs[0])) { node = nodeList[i]; } } while (index < strs.Length && node != null) { for (int i = 0; i < node.childs.Count; i++) { if (node.childs[i].name.Equals(strs[index])) { node = node.childs[i]; break; } } ++index; } node.OnToggleChanged(true); }
void DrawTag(FTagNode node, int level) { EditorGUI.indentLevel = level; EditorGUILayout.BeginHorizontal(); node.bOpen = EditorGUILayout.Foldout(node.bOpen, node.name); bool preToggle = node.bToggle; node.bToggle = EditorGUILayout.ToggleLeft("", node.bToggle); if (preToggle != node.bToggle) { node.OnToggleChanged(node.bToggle); } EditorGUILayout.EndHorizontal(); if (node.bOpen) { for (int i = 0; i < node.childs.Count; i++) { DrawTag(node.childs[i], level + 1); } } }