private void executeNext() { if (m_CurrentStage != null) { m_CurrentStage.Clear(); } m_CurrentStageType = m_CurrentStageType + 1; if (m_CurrentStageType > EAnalyzeStageType.EndAnalyze) { m_AnalyzeFinish?.Invoke(m_AnalyzeWrap.AnalyzedData); Clear(); return; } EditorUtility.DisplayProgressBar(m_CurrentStageType.ToString(), m_CurrentStageType.ToString(), (float)m_CurrentStageType / (float)EAnalyzeStageType.EndAnalyze); m_CurrentStage = getAnalyzeStage(m_CurrentStageType, m_Params.Vendor); if (m_CurrentStage == null) { Debug.LogErrorFormat("未能找到{0}阶段", m_CurrentStageType.ToString()); Clear(); return; } EAnalyzeStageStatus status = m_CurrentStage.Init(m_AnalyzeWrap, m_Params); handleStageStatus(status); }
private void Clear() { EditorUtility.ClearProgressBar(); EditorApplication.update -= update; m_CurrentStageType = EAnalyzeStageType.None; m_CurrentStage = null; m_AnalyzeWrap = null; m_Params = null; m_AnalyzeFinish = null; foreach (var item in AnalyzedStageMap) { foreach (var item1 in item.Value) { item1.Value.Clear(); } } }