Beispiel #1
0
 static IEnumerator ChangingProcedure(ProcedureBase next, object userdata)
 {
     if (isChanging)
     {
         yield break;
     }
     isChanging = true;
     helper.StartCoroutine(next.OnInit(userdata));
     while (next.Progress < 1.0f && next.Progress >= 0f)
     {
         yield return(null);
     }
     if (next.Progress < 0f)
     {
         isChanging = false;
         Messenger.Broadcast(MessageId.GAME_INIT_PROCEDURE_FAILED, next);
         yield break;
     }
     Messenger.Broadcast(MessageId.GAME_INIT_PROCEDURE_SUCCESS, next);
     if (current != null)
     {
         current.OnExit(next);
     }
     next.OnEnter(current);
     current    = next;
     isChanging = false;
 }
Beispiel #2
0
 public void ChangeProcedure(ProcedureType type)
 {
     if (m_CurrentProcedure.GetProcedureType() == type)
     {
         return;
     }
     m_CurrentProcedure.OnLeave(this);
     Debug.Log("Leave procedure : " + m_CurrentProcedure.GetProcedureType().ToString());
     m_CurrentProcedure = m_ProcedureList[type];
     Debug.Log("Enter procedure : " + m_CurrentProcedure.GetProcedureType().ToString());
     m_CurrentProcedure.OnEnter(this);
 }
Beispiel #3
0
    public Boolean Init()
    {
        foreach (KeyValuePair <ProcedureType, ProcedureBase> procedure in m_ProcedureList)
        {
            if (!procedure.Value.Init(this))
            {
                return(false);
            }
        }

        m_CurrentProcedure = m_ProcedureList[ProcedureType.GAME_STARTUP];
        Debug.Log("Enter procedure : " + m_CurrentProcedure.GetProcedureType().ToString());
        m_CurrentProcedure.OnEnter(this);

        return(true);
    }