Beispiel #1
0
        /// <summary>
        /// 资源导入后处理
        /// </summary>
        /// <param name="importedAssets"></param>
        /// <param name="deletedAssets"></param>
        /// <param name="movedAssets"></param>
        /// <param name="movedFromAssetPaths"></param>
        static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
        {
            bool checkOpen = AssetCheckTool.OwnCheckOpen();

            if (!checkOpen)
            {
                return;
            }

            List <string> pathList = new List <string>();

            pathList.AddRange(importedAssets);
            pathList.AddRange(movedAssets);

            int pathCount = pathList.Count;

            if (pathCount > 0)
            {
                AssetCheckManager manager = new AssetCheckManager();
                manager.OnEnable();

                manager.SetPathList(pathList);
                manager.SetIncludeCheckTypeList(manager.allEnumArr.ToList());
                manager.SetIncludeOptionList(manager.allOptionArr.ToList());
                manager.onCheckEndCallBack = (() =>
                {
                    int dataCount = manager.GetCheckDataList().Count;
                    if (dataCount > 0)
                    {
                        LogTableViewWindow.OpenTableViewWindow(manager.GetCheckDataList());
                    }
                });
                manager.OnCheck();
            }
        }
        private void OnGUI()
        {
            if (guiStyle == null)
            {
                guiStyle = new LogGUIStyle();
            }

            Rect rect = new Rect(0, 0, this.position.width, this.position.height);

            GUILayout.BeginArea(rect);

            GUILayout.BeginHorizontal(guiStyle.ToolBar, GUILayout.Width(rect.width));
            {
                GUILayout.Label(new GUIContent("资源导入检查开关:"), GUILayout.Width(200));

                EditorGUI.BeginChangeCheck();

                openCheck = GUILayout.Toggle(openCheck, openCheck ? "已开启" : "已关闭", new GUILayoutOption[] { GUILayout.Width(200) });

                if (EditorGUI.EndChangeCheck())
                {
                    //Debug.Log("openCheck == " + openCheck);
                    AssetCheckTool.SetOwnCheckOpenState(openCheck);
                }
            }
            GUILayout.EndHorizontal();

            Rect tableRect = new Rect(0, offset, rect.width, rect.height - offset);

            table.Draw(tableRect);

            GUILayout.EndArea();
        }
        //TODO 替换震屏参数改成id,定义了一个全局列表?
        public override bool OnFormat(Object _obj, string _path, AssetImporter _importer)
        {
            ModelImporter modelImporter = _importer as ModelImporter;

            if (modelImporter == null)
            {
                return(true);
            }

            ModelImporterClipAnimation[] mcAnimationArr = modelImporter.clipAnimations;

            int mcAnimationArrLen = mcAnimationArr.Length;
            int animEventArrLen   = 0;

            for (int i = 0; i < mcAnimationArrLen; i++)
            {
                ModelImporterClipAnimation mcAnimation = mcAnimationArr[i];

                AnimationEvent[] animEventArr = mcAnimation.events;

                animEventArrLen = animEventArr.Length;

                for (int j = 0; j < animEventArrLen; j++)
                {
                    AnimationEvent animEvent = animEventArr[j];

                    if (AssetCheckTool.IsShakeCameraName(animEvent.functionName))
                    {
                        return(true);
                    }
                }
            }

            return(base.OnFormat(_obj, _path, _importer));
        }
        private void OnEnable()
        {
            table = new TableView(this, typeof(AssetCheckData));
            table.AddColum("resourcePath", "Path", 0.5f, TextAnchor.MiddleLeft);
            table.AddColum("logMsg", "CheckFailMsg", 0.5f, TextAnchor.MiddleLeft);
            table.onSelected += TableOnSelected;

            OnTableRefresh(dataList);

            openCheck = AssetCheckTool.OwnCheckOpen();
        }
Beispiel #5
0
        public override bool OnCheck(Object _obj, string _path, AssetImporter _importer)
        {
            Material mat = AssetDatabase.LoadAssetAtPath <Material>(_path);

            if (mat == null)
            {
                return(true);
            }

            bool contains = AssetCheckTool.ShaderNameEquils(mat.shader.name);

            shaderName = mat.shader.name;

            return(!contains);
        }