public static FolderLinkSetting GetInstance()
 {
     if (ms_Instance == null)
     {
         ms_Instance = Load <FolderLinkSetting>(SETTING_NAME);
     }
     return(ms_Instance);
 }
Ejemplo n.º 2
0
        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();
                }
            }
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        private void RegenerateItems()
        {
            m_Items.Clear();

            m_Items.AddRange(FolderLinkSetting.GetInstance().Items);
        }