Exemple #1
0
    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;
        }
    }
Exemple #2
0
    IEnumerator GoToNextScene(string strNextScene)
    {
        yield return(CoroutineManager.Pass());

        SceneManager.LoadScene(strNextScene);
    }