Ejemplo n.º 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;
 }