/// <summary> /// 遍历获取所有Resources 目录下的文件和目录 /// </summary> private static void GetAllShowPaths() { m_AllResourcesTopPath.Clear(); // Debug.LogInfor("AAAAAAAAAA " + ConstDefine.S_ResourcesPath); string[] directorys = System.IO.Directory.GetDirectories(ConstDefine.S_ResourcesPath, "*", SearchOption.TopDirectoryOnly); string[] files = System.IO.Directory.GetFiles(ConstDefine.S_ResourcesPath, "*", SearchOption.TopDirectoryOnly); foreach (var directory in directorys) { // Debug.Log("GetAllShowPaths directory=" + directory); if (System.IO.Path.GetExtension(directory) != ".meta") { BuildAssetBundleTreeNode infor = new BuildAssetBundleTreeNode(directory); infor.IsOn = true; GetSearchAllSubFile(infor, directory); m_AllResourcesTopPath.Add(infor); } } foreach (var file in files) { // Debug.Log("GetAllShowPaths file=" + file); if (System.IO.Path.GetExtension(file) != ".meta") { BuildAssetBundleTreeNode infor = new BuildAssetBundleTreeNode(file); infor.IsOn = true; m_AllResourcesTopPath.Add(infor); } } // Debug.Log("m_AllResourcesTopPath " + m_AllResourcesTopPath.Count); }
/// <summary> /// 递归显示子项 /// </summary> /// <param name="recordInfor"></param> /// <param name="layer"></param> private void ShowSubFilePath(BuildAssetBundleTreeNode recordInfor, int layer, bool isShow) { if (isShow == false) { return; } GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("", GUILayout.Width(m_SubItemSpace * layer)); bool isShowNode = GUILayout.Toggle(recordInfor.IsOn, new GUIContent(""), GUILayout.Width(m_ShowToggleWidth)); if (recordInfor.IsOn != isShowNode) { recordInfor.IsOn = isShowNode; } bool isSelect = GUILayout.Toggle(recordInfor.IsSelected, new GUIContent(GetRelativePath(recordInfor.m_ViewName))); if (recordInfor.IsSelected != isSelect) { recordInfor.IsSelected = isSelect; } GUILayout.EndHorizontal(); layer += 1; foreach (var item in recordInfor.m_AllSubNodesInfor) { BuildAssetBundleTreeNode node = item as BuildAssetBundleTreeNode; if (item.IsTreeNode) { GUILayout.BeginHorizontal(); GUILayout.Label("", GUILayout.Width(m_SubItemSpace * layer)); bool isShowSubNode = GUILayout.Toggle(item.IsOn, new GUIContent(""), GUILayout.Width(m_ShowToggleWidth)); if (item.IsOn != isShowSubNode) { item.IsOn = isShowSubNode; } bool isSubSelect = GUILayout.Toggle(node.IsSelected, new GUIContent(GetRelativePath(node.m_ViewName))); if (node.IsSelected != isSubSelect) { node.IsSelected = isSubSelect; } GUILayout.EndHorizontal(); } else { ShowSubFilePath(node, layer, item.IsOn); } } GUILayout.EndVertical(); }
/// <summary> /// 遍历子目录 /// </summary> /// <param name="infor"></param> /// <param name="path"></param> private static void GetSearchAllSubFile(BuildAssetBundleTreeNode infor, string path) { if (System.IO.Directory.Exists(path) == false) { return; } // Debug.Log("BBBBB " + path); string[] directorys = System.IO.Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly); string[] files = System.IO.Directory.GetFiles(path, "*", SearchOption.TopDirectoryOnly); if (directorys.Length == 0 && files.Length == 0) { return; } foreach (var directory in directorys) { // Debug.Log("GetSearchAllSubFile directory=" + directory); if (System.IO.Path.GetExtension(directory) != ".meta") { BuildAssetBundleTreeNode subInfor = new BuildAssetBundleTreeNode(directory); subInfor.IsOn = false; infor.m_AllSubNodesInfor.Add(subInfor); GetSearchAllSubFile(subInfor, directory); } } foreach (var file in files) { // Debug.Log("GetSearchAllSubFile file=" + file); if (System.IO.Path.GetExtension(file) != ".meta") { BuildAssetBundleTreeNode subInfor = new BuildAssetBundleTreeNode(file); subInfor.IsOn = false; GetSearchAllSubFile(subInfor, file); infor.m_AllSubNodesInfor.Add(subInfor); } } }