void AddDirs() { if (m_dirInfos == null) { return; } string[] pathes = EditorUtil.GetSelectedFoldersPathes(false); foreach (string str in pathes) { bool isAdd = false; for (int i = 0; i < m_dirInfos.Count; ++i) { if (m_dirInfos[i].Path == str) { isAdd = true; break; } } if (isAdd) { continue; } XRDirInfo info = new XRDirInfo { Path = str }; m_dirInfos.Add(info); } }
void RemoveDir() { if (XRDirInfo.Keys == null || XRDirInfo.Keys.Length == 0) { return; } if (m_iSelectIndex < XRDirInfo.Keys.Length) { XRDirInfo.RemoveDir(XRDirInfo.Keys[m_iSelectIndex]); m_iSelectIndex = 0; } }
void CreateDir(bool isCopy) { if (string.IsNullOrEmpty(m_sCreateDirName)) { this.ShowNotification(new GUIContent("目录名不能为空")); return; } if (XRDirInfo.AddDir(m_sCreateDirName, isCopy?m_dirInfos:null)) { this.ShowNotification(new GUIContent("创建成功")); XRDirInfo.Save(); } else { this.ShowNotification(new GUIContent("创建失败")); } }
void OnGUI() { GUILayout.Label("目录", EditorStyles.boldLabel); if (XRDirInfo.Keys == null || XRDirInfo.Keys.Length == 0) { GUILayout.Label("当前没有目录"); m_dirInfos = null; } else { m_iSelectIndex = EditorGUILayout.Popup(m_iSelectIndex, XRDirInfo.Keys); m_dirInfos = XRDirInfo.GetDirInfos(XRDirInfo.Keys[m_iSelectIndex]); } m_sCreateDirName = EditorGUILayout.TextField("输入创建目录名", m_sCreateDirName, GUILayout.MinWidth(100)); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("创建目录")) { CreateDir(false); } if (GUILayout.Button("复制当前目录")) { CreateDir(true); } if (GUILayout.Button("移除当前目录")) { RemoveDir(); } if (GUILayout.Button("保存所有")) { XRDirInfo.Save(); } EditorGUILayout.EndHorizontal(); GUILayout.Label("目录管理", EditorStyles.boldLabel); m_vScrollPos = EditorGUILayout.BeginScrollView(m_vScrollPos); if (m_dirInfos != null) { for (int i = 0; i < m_dirInfos.Count; ++i) { EditorGUILayout.BeginHorizontal(); m_dirInfos[i].IsSelected = EditorGUILayout.Toggle(m_dirInfos[i].IsSelected, GUILayout.MaxWidth(25)); EditorGUILayout.LabelField(m_dirInfos[i].Path); if (GUILayout.Button("X", GUILayout.MaxWidth(25))) { m_dirInfos.RemoveAt(i); } EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndScrollView(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("添加选定目录", GUILayout.MaxWidth(100))) { AddDirs(); } if (GUILayout.Button("导出当前目录", GUILayout.MaxWidth(100))) { TempExport(); } EditorGUILayout.EndHorizontal(); }
void OnEnable() { XRDirInfo.LoadDataMap(); Debug.Log("开启目录管理"); }
void OnDisable() { XRDirInfo.Save(); XRDirInfo.UnLoadDataMap(); Debug.Log("关闭目录管理"); }