Example #1
0
        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);
        }
Example #4
0
        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();
        }
Example #5
0
 public void SetDependencyConfig(AssetDependencyConfig config)
 {
     dependencyConfig = config;
 }