/// <summary> /// <para>Crea una transicion para cambiar el estado.</para> /// </summary> /// <param name="newEstado">Nuevo estado.</param> public virtual void Transicion(Estado newEstado) // Crea una transicion para cambiar el estado { // Si el estado dado, es igual al actual o se esta en transicion, paramos la transicion. if (estadoActual == newEstado || isInTransicion) { return; } // Activamos la auxiliar de la transicion en progreso isInTransicion = true; // Salimos del estado actual if (estadoActual != null) { estadoActual.Exit(); } // Cambiamos el estado actual estadoActual = newEstado; // Entramos al estado actual if (estadoActual != null) { estadoActual.Enter(); } // Desactivamos la auxiliar de la transicion en progreso isInTransicion = false; }