public virtual void Update() { bool bResult = false; if (m_bPause) { return; } CoroutineManager.Pass(); #if UNITY_EDITOR CoroutineManager.ClearLog(); #endif //안전을 중요시한다면 D_SAFE를 Define 하십시오. (추천) //성능을 중요시한다면 D_SAFE를 Define 하지 마십시오. (비활성화 할경우 하나의 코루틴이라도 예외가 발생되었을때 다른 코루틴에 대한 동작을 보장할 수 없습니다!) #if COROUTINE_MANAGER_SAFE_MODE try { bResult = m_Iterator.MoveNext(); } catch (Exception ex) { RemoveThis(); Debug.LogError("[코루틴매니저-FatalError] 심각한 에러가 있어 에디터를 일시정지합니다. 다음 에러 로그를 확인하십시오."); Debug.LogError(string.Concat("[코루틴매니저-FatalError] 잘못된 코루틴 사용이 있어 이 코루틴(", m_Iterator.ToString(), ")은 제거되었습니다. 해당 코루틴을 확인하십시오. 자세한 내용은 아래의 에러를 확인하십시오.\n", ex.ToString())); string errorLog = string.Concat("ERROR : CoroutineManager : ", m_Iterator.ToString()); CoroutineManager.OnErrorEvent.Execute(ex); return; } #else bResult = m_Iterator.MoveNext(); #endif if (!bResult) { RemoveThis(); } else { SetState(); } if (m_nUpdateCount > 1000000) { m_nUpdateCount = 0; } }
IEnumerator GoToNextScene(string strNextScene) { yield return(CoroutineManager.Pass()); SceneManager.LoadScene(strNextScene); }