Пример #1
0
        static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
        {
            List <CheckerFileInfo> checkerFiles = CheckerUtility.ReadCheckerFileInfos();
            CheckerResultInfo      resultInfo   = CheckerUtility.ReadCheckerResultInfo();

            if (importedAssets != null && importedAssets.Length > 0)
            {
                foreach (var assetPath in importedAssets)
                {
                    if (AssetDatabase.IsValidFolder(assetPath) && !CheckerUtility.ReadSetting().isFolderAsAsset)
                    {
                        continue;
                    }

                    CheckerFileInfo cfi = checkerFiles.FirstOrDefault((cFileInfo) =>
                    {
                        return(cFileInfo.checker.enable && cFileInfo.checker.IsMatch(assetPath));
                    });

                    if (cfi == null)
                    {
                        resultInfo.AddPassedResult(assetPath);
                    }
                    else
                    {
                        Checker checker   = cfi.checker;
                        int     errorCode = 0;
                        if (checker.DoAnalyse(assetPath, ref errorCode))
                        {
                            checker.DoOperate(assetPath);

                            resultInfo.RemoveAsset(assetPath);
                        }
                        else
                        {
                            resultInfo.AddFailedResult(assetPath, errorCode);
                        }
                    }
                }
            }

            if (deletedAssets != null && deletedAssets.Length > 0)
            {
                foreach (var assetPath in deletedAssets)
                {
                    resultInfo.RemoveAsset(assetPath);
                }
            }

            CheckerUtility.SaveCheckerResultInfo();
        }
Пример #2
0
        public override void OnGUI(Rect rect)
        {
            GUILayout.BeginArea(rect);
            {
                EditorGUILayout.BeginVertical();
                {
                    EGUILayout.DrawBoxHeader("Setting", EGUIStyles.BoxedHeaderCenterStyle, GUILayout.ExpandWidth(true));
                    EditorGUILayout.Space();

                    CheckerSetting setting = CheckerUtility.ReadSetting();
                    setting.isFolderAsAsset = EditorGUILayout.Toggle("Is Asset For Folder", setting.isFolderAsAsset);

                    GUILayout.FlexibleSpace();


                    if (GUILayout.Button("Close"))
                    {
                        Window.CloseWindow();
                    }
                }
                EditorGUILayout.EndVertical();
            }
            GUILayout.EndArea();
        }