コード例 #1
0
        /// <summary>
        /// Jenkins 资源检查调用此接口
        /// </summary>
        public static void JenkinsCheck()
        {
            AssetCheckManager manager = new AssetCheckManager();

            manager.OnEnable();

            //检查类型list
            List <CheckEnumType> checkTypeList = new List <CheckEnumType>
            {
                CheckEnumType.UnKnow
            };
            //检查项list
            List <CheckOption> checkOptionList = new List <CheckOption>();

            //解析jenkins检查项
            //GetEnvironmentVariable("变量名")
            string[] checkTypeArr = GetOptionArr("AssetCheckType");
            if (checkTypeArr != null && checkTypeArr.Length != 0)
            {
                int arrLen = checkTypeArr.Length;
                for (int i = 0; i < arrLen; i++)
                {
                    CheckEnumType checkType = (CheckEnumType)System.Enum.Parse(typeof(CheckEnumType), checkTypeArr[i]);

                    checkTypeList.Add(checkType);
                }

                //收集具体检查项列表
                arrLen = checkTypeList.Count;
                for (int i = 0; i < arrLen; i++)
                {
                    var checkType = checkTypeList[i];

                    string[] strArr = GetOptionArr(checkType.ToString());

                    if (strArr == null || strArr.Length == 0)
                    {
                        continue;
                    }

                    GetOptionMix(manager, strArr, checkOptionList);
                }
            }

            //获得资源文件夹路径
            string filePath = System.Environment.GetEnvironmentVariable("AssetPath");

            manager.SetIncludeCheckTypeList(checkTypeList);
            manager.SetIncludeOptionList(checkOptionList);

            manager.SetFilePath(filePath);

            if (manager.GetPathListByFilePath())
            {
                //Check
                manager.OnCheck();
            }
        }
コード例 #2
0
 /// <summary>
 /// 添加打印信息
 /// </summary>
 /// <param name="_enumType"></param>
 /// <param name="_path"></param>
 /// <param name="_checkMsg"></param>
 private void AddInLog(CheckEnumType _enumType, string _path, string _checkMsg)
 {
     checkLogSb.Append(_enumType);
     checkLogSb.Append("|");
     checkLogSb.Append(_path);
     checkLogSb.Append("|");
     checkLogSb.Append(_checkMsg);
     checkLogSb.Append("\r\n");
 }
コード例 #3
0
        /// <summary>
        /// 添加或删除检查类型
        /// </summary>
        /// <param name="_checkType"></param>
        /// <param name="_add"></param>
        private void SetItemWinList(CheckEnumType _checkType, bool _add = true)
        {
            AssetCheckWinItem itemWin = this.checkWinItemList.Find((item) => item.name == _checkType.ToString());

            if (_add)
            {
                if (itemWin == null)
                {
                    AssetCheckWinItem winItem = new AssetCheckWinItem(this, checkOptionDic[_checkType], _checkType.ToString());
                    checkWinItemList.Add(winItem);
                }
            }
            else
            {
                if (itemWin != null)
                {
                    this.checkWinItemList.Remove(itemWin);
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// 添加到未通过检查的缓存数据list里
        /// </summary>
        /// <param name="_enumType"></param>
        /// <param name="_obj"></param>
        /// <param name="_path"></param>
        /// <param name="_importer"></param>
        /// <param name="_checkMsg"></param>
        private void AddInCheckDataList(CheckEnumType _enumType, UnityEngine.Object _obj, string _path, AssetImporter _importer, string _checkMsg)
        {
            //未通过的资源信息存储起来用于处理
            AssetCheckData checkData = new AssetCheckData();

            checkData.resourcePath = _path;
            checkData.obj          = _obj;
            checkData.importer     = _importer;
            checkData.logMsg       = _checkMsg;

            List <AssetCheckData> checkDataList;

            if (!checkDataDic.TryGetValue(_enumType, out checkDataList))
            {
                checkDataList = new List <AssetCheckData>();
                checkDataDic.Add(_enumType, checkDataList);
            }

            checkDataList.Add(checkData);
        }
コード例 #5
0
        /// <summary>
        /// 检查类型选择
        /// </summary>
        /// <param name="_checkTypeMix"></param>
        private void OnCheckTypeSelect(CheckEnumType _checkTypeMix)
        {
            var checkEnumArr = checkManager.allEnumArr;
            int checkEnumLen = checkEnumArr.Length;

            for (int i = 0; i < checkEnumLen; i++)
            {
                var checkType = checkEnumArr[i];

                if (checkManager.IsSelect((int)checkType, (int)checkTypeMix))
                {
                    if (!checkTypeList.Contains(checkType))
                    {
                        checkTypeList.Add(checkType);
                        //添加当前类型的Option GUI
                        SetItemWinList(checkType);
                    }
                }
                else
                {
                    if (checkTypeList.Contains(checkType))
                    {
                        checkTypeList.Remove(checkType);
                        //移除当前类型的Option GUI
                        SetItemWinList(checkType, false);
                    }
                }
            }

            checkManager.SetIncludeCheckTypeList(checkTypeList);

            //foreach(var item in checkTypeList)
            //{
            //    Debug.Log(item);
            //}
        }
コード例 #6
0
        private void OnGUI()
        {
            //Unable to use a named GUIStyle without a current skin.
            //Most likely you need to move your GUIStyle initialization code to OnGUI
            //GUI风格元素需要在OnGUI方法里初始化,否则会报以上错误,界面也会发生显示错误
            if (checkStyle == null)
            {
                checkStyle = new CheckStyle();
            }

            GUILayout.BeginHorizontal(checkStyle.ToolBar, new GUILayoutOption[] { GUILayout.Width(this.position.width) });
            {
                EditorGUI.BeginChangeCheck();

                checkTypeMix = (CheckEnumType)EditorGUILayout.EnumMaskPopup(new GUIContent(titleStr), checkTypeMix, checkStyle.TE_ToolBarBtn, new GUILayoutOption[] { GUILayout.Width(600) });

                if (EditorGUI.EndChangeCheck())
                {
                    //检查类型分类
                    OnCheckTypeSelect(checkTypeMix);
                }

                EditorGUI.BeginChangeCheck();

                if (GUILayout.Button(string.Format("当前目录{0}", filePath), checkStyle.TE_ToolBarBtn))
                {
                    filePath = EditorUtility.OpenFolderPanel("选择筛选目录{0}", Application.dataPath, string.Empty);

                    var currentDir = BuildUtils.GetUnityPath(Path.GetFullPath(Directory.GetCurrentDirectory()));

                    filePath = filePath.Replace(string.Format("{0}/", currentDir), "");
                }
                if (EditorGUI.EndChangeCheck())
                {
                    checkManager.SetFilePath(filePath);

                    Debug.Log(string.Format("当前选择目录:{0}", filePath));
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            {
                if (GUILayout.Button("Check"))
                {
                    //检查
                    if (checkManager.GetPathListByFilePath())
                    {
                        checkManager.OnCheck();
                    }
                }

                if (GUILayout.Button("Format"))
                {
                    //处理
                    checkManager.OnFormat();
                }
            }
            GUILayout.EndHorizontal();

            #region 表格GUI绘制
            //表格 GUI 绘制
            Rect viewRect = new Rect(border * 2 + this.position.width * percet, offset * 2, this.position.width * (1 - percet) - border * 3, this.position.height - offset * 2 - border);

            if (table != null)
            {
                table.Draw(viewRect);
            }
            #endregion

            #region 检查项GUI绘制

            //检查项 itemlist 绘制
            Rect itemViewRect = new Rect(border, offset * 2, this.position.width * percet, this.position.height - offset * 2 - border);

            GUILayout.BeginArea(itemViewRect, checkStyle.WindowBackground);

            scrollview = GUILayout.BeginScrollView(scrollview, GUIStyle.none, GUI.skin.verticalScrollbar);

            DrawItemWind(itemViewRect);

            GUILayout.EndScrollView();

            GUILayout.EndArea();

            #endregion
        }