public static FolderLinkSetting GetInstance() { if (ms_Instance == null) { ms_Instance = Load <FolderLinkSetting>(SETTING_NAME); } return(ms_Instance); }
public override void OnGUI(string searchContext) { base.OnGUI(searchContext); FolderLinkSetting setting = FolderLinkSetting.GetInstance(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("保存")) { setting.Items = m_ItemsForGUI.Items.ToList(); setting.Save(); RegenerateItems(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); m_SettingFoldout.Set(EditorGUILayout.Foldout(m_SettingFoldout, "设置")); EditorGUILayout.EndHorizontal(); if (m_SettingFoldout) { EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(m_SP_Items , EditorGUIUtility.TrTextContent("Links") , true); if (EditorGUI.EndChangeCheck()) { m_SO_Items.ApplyModifiedProperties(); EditorUtility.SetDirty(m_ItemsForGUI); } EditorGUI.indentLevel--; } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); m_LinkFoldout.Set(EditorGUILayout.Foldout(m_LinkFoldout, "Link")); EditorGUILayout.EndHorizontal(); if (m_LinkFoldout) { for (int iItem = 0; iItem < m_Items.Count; iItem++) { Item iterItem = m_Items[iItem]; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(iterItem.Name); if (GUILayout.Button("创建Link", GUILayout.Width(72))) { CreateLink(iterItem); } if (GUILayout.Button("移除Link", GUILayout.Width(72))) { DeleteLink(iterItem); } EditorGUILayout.EndHorizontal(); } } }
public FolderLinkSettingProvider(string path, SettingsScope scopes, IEnumerable <string> keywords = null) : base(path, scopes, keywords) { m_SettingFoldout = new PrefsValue <bool>("FolderLinkSettingProvider m_SettingFoldout"); m_LinkFoldout = new PrefsValue <bool>("FolderLinkSettingProvider m_LinkFoldout"); m_ItemsForGUI = ScriptableObject.CreateInstance <ItemsForGUI>(); m_ItemsForGUI.Items = FolderLinkSetting.GetInstance().Items.ToList(); m_SO_Items = new SerializedObject(m_ItemsForGUI); m_SP_Items = m_SO_Items.FindProperty("Items"); m_Items = new List <Item>(); RegenerateItems(); }
private void RegenerateItems() { m_Items.Clear(); m_Items.AddRange(FolderLinkSetting.GetInstance().Items); }