private void OnEnable() { assetDependencyConfig = AssetDependencyUtil.GetAssetDependencyConfig(); Selection.selectionChanged += OnSelectionChanged; EditorApplication.update += Repaint; }
public static AssetDependencyConfig FindAllAssetData() { List <string> assetPaths = new List <string>(); string assetDirectory = PathUtility.GetDiskPath("Assets"); List <string> assetSubdirectories = new List <string>() { assetDirectory }; while (assetSubdirectories.Count > 0) { string dir = assetSubdirectories[0].Replace("\\", "/"); assetSubdirectories.RemoveAt(0); var isIngore = (from folder in IngoreFolders where dir.IndexOf(folder) >= 0 select folder).Any(); if (isIngore) { continue; } (from file in Directory.GetFiles(dir, "*.*", SearchOption.TopDirectoryOnly) let ext = Path.GetExtension(file).ToLower() where Array.IndexOf(IngoreFileExts, ext) < 0 select PathUtility.GetAssetPath(file) ).ToList().ForEach((f) => { assetPaths.Add(f); }); string[] subdirectories = Directory.GetDirectories(dir, "*", SearchOption.TopDirectoryOnly); if (subdirectories != null && subdirectories.Length > 0) { assetSubdirectories.AddRange(subdirectories); } } AssetDependencyConfig dependencyConfig = new AssetDependencyConfig(); if (assetPaths.Count > 0) { for (int i = 0; i < assetPaths.Count; ++i) { AssetDependency dependency = new AssetDependency() { assetPath = assetPaths[i], directlyDepends = AssetDatabaseUtility.GetDirectlyDependencies(assetPaths[i], IngoreFileExts), allDepends = AssetDatabaseUtility.GetDependencies(assetPaths[i], IngoreFileExts), }; dependencyConfig.AddData(dependency); } } string filePath = GetConfigFilePath(); JSONWriter.WriteToFile(dependencyConfig, filePath); return(dependencyConfig); }
public static AssetDependencyConfig GetAssetDependencyConfig() { string filePath = GetConfigFilePath(); AssetDependencyConfig dependencyConfig; if (File.Exists(filePath)) { dependencyConfig = JSONReader.ReadFromFile <AssetDependencyConfig>(filePath); } else { dependencyConfig = new AssetDependencyConfig(); } return(dependencyConfig); }
private void DrawToolbar() { EditorGUILayout.BeginHorizontal("toolbar", GUILayout.ExpandWidth(true)); { if (GUILayout.Button("Reload", EditorStyles.toolbarButton, GUILayout.Width(80))) { if (EditorUtility.DisplayDialog("Warning", "This will take a lot of time.Are you sure?", "OK", "Cancel")) { assetDependencyConfig = AssetDependencyUtil.FindAllAssetData(); RefreshTreeView(); } } GUILayout.FlexibleSpace(); var newAutoRefresh = EditorGUILayout.ToggleLeft("Auto Refresh", isAutoRefresh); if (newAutoRefresh != isAutoRefresh) { isAutoRefresh = newAutoRefresh; RefreshTreeView(); } } EditorGUILayout.EndHorizontal(); }
public void SetDependencyConfig(AssetDependencyConfig config) { dependencyConfig = config; }