public void AddElement(ListElement parent, string fileName, bool isFolder) { fileName = BundleHelp.FullPath2AssetPath(ref fileName); //BundleDataManager.Instance.AddResource(fileName, IsFolder); //var data = new HierarchyElementData(fileName, isFolder); var element = new ListElement(new HierarchyElementData(), this, fileName, isFolder); if (parent != null) { parent.AddChild(element); parent.ResetSpace(); } else { listElement.Add(element); listElement[listElement.Count - 1].SetSpace(0f); } if (isFolder) { string[] fileStrings = Directory.GetDirectories(fileName); for (int i = 0; i < fileStrings.Length; i++) { //if (BundleDataManager.Instance.IsFilter(ref fileStrings[i]) == false) AddElement(element, fileStrings[i], Directory.Exists(fileStrings[i])); } } //return data; }
private List <Shader> FindAllShader() { string[] files = Directory.GetFiles(Application.dataPath, "*.shader", SearchOption.AllDirectories); List <Shader> result = new List <Shader>(); for (int i = 0; i < files.Length; i++) { string assetPath = BundleHelp.FullPath2AssetPath(ref files[i]); Shader shader = AssetDatabase.LoadAssetAtPath <Shader>(assetPath); result.Add(shader); } return(result); }
protected void GetChildFile() { string[] files = Directory.GetFiles(Path); for (int i = 0; i < files.Length; i++) { if (BundleDataManager.Instance.IsFilter(ref files[i])) { continue; } string assetFile = BundleHelp.FullPath2AssetPath(ref files[i]); ListElement childElement = new ListElement(new HierarchyListWindow.HierarchyElementData(), ElementOwner, assetFile, false); AddChild(childElement); } //Debug.Log(string.Format("Folder Name [{0}] Get Child File Count [{1}]", BundleHelp.GetFolderName(ref mPath), files.Length)); ResetSpace(); }
public static bool IsNeedBuild(BundleData bundle) { if (BuildManager.IsIgnoreState) { return(true); } string outputPath = GenerateOutputBundlePath(bundle.name); if (!File.Exists(outputPath)) { return(true); } BundleBuildState bundleBuildState = BundleManager.GetBuildState(bundle.assetPath); if (bundleBuildState == null) { return(true); } // 输出文件是否被修改 DateTime lastBuildTime = File.GetLastWriteTime(outputPath); DateTime bundleChangeTime = bundleBuildState.changeTime == -1 ? DateTime.MaxValue : DateTime.FromBinary(bundleBuildState.changeTime); if (System.DateTime.Compare(lastBuildTime, bundleChangeTime) < 0) { return(true); } if (DateTime.Compare(lastBuildTime, File.GetLastWriteTime(bundle.assetPath)) < 0) { return(true); } // 依赖是否改变 if (!EqualStrArray(bundle.depends, bundleBuildState.lastDependencies)) { return(true); } string[] allResDepends = GetFilterCsDepends(bundle.assetPath); for (int i = 0; i < allResDepends.Length; i++) { var fullPaht = BundleHelp.AssetPath2FullPath(ref allResDepends[i]); DateTime test = File.GetLastWriteTime(fullPaht); if (DateTime.Compare(lastBuildTime, File.GetLastWriteTime(fullPaht)) < 0) { return(true); } if (DateTime.Compare(lastBuildTime, File.GetLastWriteTime(fullPaht + ".meta")) < 0) { return(true); } } // 依赖文件是否被改变 //for (int i = 0; i < bundle.depends.Count; i++) //{ // // TODO:没有检测纹理之内的资源是否变化 // if (!File.Exists(GenerateOutputBundlePath(Path.GetFileNameWithoutExtension(bundle.depends[i])))) // return true; // if (DateTime.Compare(lastBuildTime, File.GetLastWriteTime(bundle.depends[i])) < 0) // { // return true; // } // // meta change // // Texture Format Change // if (DateTime.Compare(lastBuildTime, File.GetLastWriteTime(bundle.depends[i] + ".meta")) < 0) // { // return true; // } //} return(false); }
private bool DrawSubExporterPlan(ExporterData iter, ref List <int> deleteSuffix) { string title = BundleHelp.FullPath2AssetPath(ref iter.Path); if (!CSCommonEditor.DrawHeader(title ?? "<空>", iter.Path, true, true)) { return(false); } CSCommonEditor.BeginContents(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Path ", title); if (GUILayout.Button("...", GUILayout.MaxWidth(24))) { iter.Path = EditorUtility.OpenFolderPanel("Choose Output Path", Application.dataPath, ""); } GUI.color = Color.red; if (GUILayout.Button("-", GUILayout.MaxWidth(24))) { return(true); } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel = 1; for (int i = iter.Suffixs.Count - 1; i >= 0; i--) { EditorGUILayout.BeginHorizontal(); string safeSuffix = EditorGUILayout.TextField("Suffix ", iter.Suffixs[i]); if (string.IsNullOrEmpty(safeSuffix)) { safeSuffix = "*.prefab"; } else if (!safeSuffix.StartsWith("*.")) { safeSuffix = "*." + safeSuffix; } iter.Suffixs[i] = safeSuffix; GUI.color = Color.red; if (GUILayout.Button("-", GUILayout.MaxWidth(24))) { deleteSuffix.Add(i); } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); } // delelte click '-' foreach (int j in deleteSuffix) { iter.Suffixs.RemoveAt(j); } deleteSuffix.Clear(); GUI.color = Color.green; // new suffix if (GUILayout.Button("Add New Suffix")) { iter.Suffixs.Add("*.prefab"); } GUI.color = Color.white; CSCommonEditor.EndContents(); return(false); }