Nodo Switch – Control de Flujo

publicado en: Control de Flujo, Unreal Engine 4 | 0

En esta entrada, vamos a profundizar en el Nodo Switch. En primer lugar, anotamos que su función es cambiar el flujo de ejecución. Este cambio se realiza cuando evaluamos determinados datos, y de acuerdo a su contenido, el flujo va hacia otro lado.

En segundo lugar, esto es un complemento mas flexible al nodo Branch ( rama ), ya que este nodo solo evalúa dos posibles resultados, falso o verdadero, sin embargo el nodo Swtich es mucho mas amplio.

Así que en esta entrada hablaremos del nodo Swicth on Int y de unas de sus variantes String.

Nodo Switch on Int
Nodo Switch on Int

Los tipos de nodos Swicth en la programación visual de Unreal Engine

Existe una gran variedad de estos nodos, sin embargo en esta entrada vamos ha hablar del uso de dos, uno es el nodo Int, y el otro es el nodo String. Estas variantes del nodo Switch buscan evaluar una condición y en su salida hacer algo.

Pensemos en el siguiente ejemplo, creamos un sistema que evalué posibles contralas de acceso basado en números enteros. Una contraseña sería necesaria para entrar al sistema, así que analicemos el siguiente gráfico.

Ejemplo 1 Nodo Switch On Int
Ejemplo 1 Nodo Switch On Int

En anterior ejemplo, al iniciar el proyecto, se evalúa el contenido de una variable llamada contraseña, en este caso yo he puesto el número 100, y el nodo Switch evalua ese contenido, un valor de tipo de dato entero. El resultado automático es que se muestra en pantalla un mensaje de que es la contraseña correcta.

Como se puede observar, esto no es muy practico, siempre dará paso al mismo flujo aunque cambie la contraseña. Ahora bien para mejor nuestro script visual, sería necesario dar otra salida fuera de “Defalut”. Esto lo hacemos dando clic en “Add pin” y tendremos otra posible salida.

Ejemplo 2 Nodo Switch On Int
Ejemplo 2 Nodo Switch On Int

Aquí sucede algo interesante, hemos cambiado el flujo de datos al nuevo que hemos creado, que equivale a un valor de 0, esto es un número entero. Ahora bien, si la contraseña es el número 0, se dará por entendido que se puede entrar al sistema, pero si por ejemplo la variable tiene otro número, es donde usamos la salida “Default” con otro mensaje indicando ese flujo.

Ejemplo 3 Nodo Switch On Int
Ejemplo 3 Nodo Switch On Int

Esto ya parecer ser más practico, si la contraseña es cero, evidentemente muestra que entramos al sistema, de lo contrario si el valor es diferente, no ingresaríamos.

Agregando Pines al node Switch on Int

Como puede ver, puede agregar todos los pines que crean necesarios. Esto es supremamente flexible para evaluar condiciones en un juego, por ejemplo, establecer que objeto se puede comprar en base a un sistema monetario.

Ejemplo 4 Nodo Switch on Int
Ejemplo 4 Nodo Switch on Int

Esto ya es un poco mas interesante, la variable Dinero evalúa la cantidad de monedas que tiene el jugador. Y de acuerdo a esto puede comprar ciertos objetos o no. Algo interesante de esto, es que hemos usado el nodo Branch, para evaluar si el jugador no tiene dinero, es decir, si la variable contiene un cero, le dirá que no puede comprar nada.

Algo para destacar es que en la vista “Detail”, podemos cambiar el índice en que comienza el Nodo hacer su verificación, en este caso he puesto uno. Y un valor “Default”, implica otro valor fuera de 1,2,3, esto incluye un posible 0, que indica que el jugador no tiene dinero. Además si pone un valor de 100 monedas, no sucede nada, pero podría implementar algo, como “No recibiremos altas sumas de dinero”.

Ya para Finalizar, la alternativa, es evaluar una cadena de texto, todo es muy similar a lo que hemos realizado hasta ahora. Solo que se evalúa un dato de tipo de dato cadena de texto. Y es que pensando en contraseñas, se puede evaluar un nombre de usuario igualmente.

Esto implicaría dar diferentes tipos de acceso, Administrador, usuario, visitante, etc.

Nodo Switch on String.
Nodo Switch on String.

0

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *