private PackageGroup GetOrCreateGroup(string groupName) { var group = packageGroups.FirstOrDefault(g => string.Compare(g.name, groupName, StringComparison.InvariantCultureIgnoreCase) == 0); if (group != null) { return(group); } var hidden = string.IsNullOrEmpty(groupName); var expanded = m_PageManager.IsGroupExpanded(groupName); group = new PackageGroup(m_ResourceLoader, m_PageManager, m_SettingsProxy, m_PackageDatabase, groupName, GetGroupDisplayName(groupName), expanded, hidden); if (!hidden) { group.onGroupToggle += value => { var s = GetFirstSelectedItem(); if (value && s != null && group.Contains(s)) { EditorApplication.delayCall += ScrollToSelection; } }; } m_ItemsList.Add(group); return(group); }