/// <summary> /// 到上一个 /// </summary> private void ToLast() { if (Data.CheckingIndex == 0) { TopTips = "当前是第一个资源"; return; } Data.CheckingIndex--; currentCheckUnit.Quit(); currentCheckUnit = DJAssetsCheckFactory.GetCheckUnit(currentConfig.type); }
/// <summary> /// 到下一个 /// </summary> private void ToNext() { if (Data.CheckingIndex == Data.SubmitAssetsList.Count - 1) { TopTips = "已经是最后一个资源了"; return; } Data.CheckingIndex++; currentCheckUnit.Quit(); currentCheckUnit = DJAssetsCheckFactory.GetCheckUnit(currentConfig.type); }
void OnAutoCheckGUI() { EditorGUILayout.LabelField("检测结束前,请不要取消锁定"); if (Data.CheckingIndex < Data.CheckingkeyList.Count) { TopTips = "自动检测进度:(" + Data.CheckingIndex + "/" + Data.CheckingkeyList.Count + ")"; //循环所有资源,并进行检查 var allAssets = DJAssetsDataManager.GetInstance().AssetsDict; var _config = allAssets[Data.CheckingkeyList[Data.CheckingIndex]]; //设计中的资源就不检测了 if (_config.state == DJAssetsDefine.AssetState.Designing) { Data.CheckingIndex += 1; return; } var testUnit = DJAssetsCheckFactory.GetCheckUnit(_config.type); //得到对应的检测脚本 if (testUnit == null) { //这里就不写出所有类型的测试脚本了 Data.CheckingIndex += 1; return; } if (testUnit.LoadAsset(_config.id) == false || testUnit.CheckAsset() == false) { ErrorList.Add(testUnit); Data.CheckingIndex += 1; return; } Data.CheckingIndex += 1; return; } if (ErrorList.Count > 0) { EditorGUILayout.BeginScrollView(new Vector2(300, 1200)); //执行到这里检测已经完毕了,就打印结果 for (int i = 0; i < ErrorList.Count; i++) { var _data = ErrorList[i]; for (int j = 0; j < _data.EditorInfos.Count; j++) { EditorGUILayout.LabelField(_data.EditorInfos[j]); } EditorGUILayout.Space(); } EditorGUILayout.EndScrollView(); TopTips = "共有" + ErrorList.Count + "份资源没有通过自动检查.注意,当退出检测模式时,未通过的资源会被设置为错误状态。"; } else { TopTips = "所有资源通过检查"; } if (ErrorList.Count > 0) { //方便将错误列表转发给各个负责人 if (GUILayout.Button("将错误列表复制到剪切板中")) { string errorListStr = ""; for (int i = 0; i < ErrorList.Count; i++) { var _config = DJAssetsDataManager.GetInstance().AssetsDict[ErrorList[i].id]; errorListStr += _config.id + " " + _config.type + " " + _config.name + "\n"; } var te = new TextEditor(); te.text = errorListStr; te.OnFocus(); te.Copy(); } } if (GUILayout.Button("退出检查模式")) { for (int i = 0; i < ErrorList.Count; i++) { var _data = ErrorList[i]; DJAssetsDataManager.GetInstance().SetAssetState(_data.id, AssetState.Error); } ChangeState(CheckType.None); } }
/// <summary> /// 人工检测过程页面 /// </summary> void OnManualCheckGUI_Proc() { //得到检测单元 if (currentCheckUnit == null) { currentCheckUnit = DJAssetsCheckFactory.GetCheckUnit(currentConfig.type); currentCheckUnit.Init(); currentCheckUnit.LoadAsset(currentConfig.id);//如果加载失败,应该有一些提示,但是这里就先不提示了 } EditorGUILayout.Space(); currentCheckUnit.DrawEditorTestGUI(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (Data.CheckingIndex > 0 && GUILayout.Button("上一个")) { ToLast(); } if (Data.CheckingIndex < Data.SubmitAssetsList.Count - 1 && GUILayout.Button("下一个")) { ToNext(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("通过检测")) { TopTips = "操作:通过检查"; //加入成功队列 if (Data.PassList.Contains(currentConfig) == false) { Data.PassList.Add(currentConfig); } if (Data.RefuseList.Contains(currentConfig) == true) { Data.RefuseList.Remove(currentConfig); } ToNext(); } if (GUILayout.Button("没通过")) { TopTips = "操作:没有通过检查"; //加入失败队列 if (Data.RefuseList.Contains(currentConfig) == false) { Data.RefuseList.Add(currentConfig); } if (Data.PassList.Contains(currentConfig) == true) { Data.PassList.Remove(currentConfig); } ToNext(); } EditorGUILayout.Space(); if (GUILayout.Button("结束检查")) { Data.mTypeCheckState = TypeCheckState.PrintResult; } }