MANEJO DE EXPRESIONES C# PARA UNITY
Objetivo:
Comprender y aplicar el uso de expresiones en el lenguaje de programación
C# dentro del entorno de desarrollo Unity, con el fin de desarrollar scripts
eficientes que controlen el comportamiento de objetos, estructuras de
control, operaciones aritméticas, lógicas y relacionales, optimizando la
lógica del juego o aplicación interactiva.
Ingresamos al entorno de desarrollo Unity y accedemos al proyecto
previamente creado o, en su defecto, procedemos a crear uno nuevo
desde la pantalla de inicio de Unity Hub.
Dentro del proyecto, nos dirigimos a la carpeta donde se encuentra
almacenado el script en el cual deseamos trabajar. Posteriormente,
abrimos dicho script haciendo doble clic, lo que permitirá editarlo en
el entorno de desarrollo integrado (IDE) asociado, como Visual Studio
o Visual Studio Code.
Analizamos el método void OnUserInput(), el cual, aunque no es un
método predefinido por Unity, puede ser creado por el programador
para responder a eventos de entrada del usuario.
void indica que el método no retorna un valor.
OnUserInput es el nombre del método, siguiendo la convención On
para eventos.
() señala que no recibe parámetros, aunque podrían añadirse si se
requiere.
Implementamos en el método una instrucción que permita imprimir el
mensaje que el usuario está ingresando, utilizando la función
Debug.Log() para mostrarlo en la consola de Unity.
Al interactuar (hacer clic) sobre el elemento de la interfaz ubicado en
la esquina inferior, invocamos un método que imprimirá en consola el
texto “DESARROLLO DE SISTEMAS DE INFORMACIÓN”.
Implementamos una comparación entre dos valores y mostramos en
la consola el resultado (verdadero o falso). Aunque “mensaje de tipo
de comparación” no es un término oficial de Unity, suele utilizarse
para referirse a la salida que indica si una comparación entre dos
valores (por ejemplo, números o variables) resulta en true o false.
Cuando se comparan dos valores numéricos idénticos, la evaluación
resulta verdadera porque el tipo de dato int define que valores
iguales son equivalentes. Si se intenta comparar tipos incompatibles
(por ejemplo, un entero con una cadena) sin conversión, el
compilador de C# genera un error que Unity muestra para indicar que
la operación no es válida.
Ejemplos :
1+4 5
“1” + “4” “14”
Castear:
Castear (del inglés cast) consiste en forzar o indicar la conversión de
un valor de un tipo de dato a otro. Por ejemplo, transformar un
número de punto flotante (float) en un entero (int), o convertir una
referencia genérica a un tipo específico, como GameObject.
“1” + 4 “14”
“1” + 4 “14”
“1” + 4 “14”
1 == 1 True
1 == 2 False
“1” == “1” True
“1” == “2” False
“1” == “2” Expresión Invalida
1 == 2 Alerta
Declaramos la variable en el ámbito de la clase, fuera de cualquier
método, para que tenga alcance global. De este modo, si la definimos
dentro de un método, únicamente sería una variable local.
Cuando el usuario selecciona la opción “Menú”, debe ejecutarse la
lógica correspondiente definida en nuestro script. Para ello:
1. Ubicación del código:
Dentro de la carpeta de código (Scripts) de nuestro proyecto,
localizamos el archivo que contiene el método encargado de procesar
la entrada del usuario en el menú.
2. Comportamiento esperado:
Al detectar que la opción seleccionada es “Menú”, se deberá invocar
la función que despliega o carga la interfaz del menú. Por ejemplo, si
en el script existe un método MostrarMenu(), el flujo sería:
Aquí lo que haremos es permitir que el usuario ingrese un mensaje
usando una variable que represente su elección (1, 2 o 3). Según el
valor ingresado, el sistema indicará qué nivel ha sido seleccionado.
Ahora, al ingresar un número (1, 2 o 3), se mostrará
automáticamente un mensaje indicando la opción seleccionada. Si el
usuario ingresa la palabra “MENU”, el sistema limpiará la selección y
lo retornará al inicio.
Si estamos en una PC y ejecutamos el proyecto desde el botón Play en el
editor de Unity:
Podemos seleccionar el objeto que contiene nuestro script desde el
Inspector.
Ahí veremos las variables públicas o marcadas con [SerializeField]
actualizándose en tiempo real.
Esto permite observar cómo cambian los valores mientras se ejecuta
el juego, facilitando pruebas y depuración sin necesidad de detener la
ejecución.
Referencias
[1] Unity Technologies, "Unity Tutorial for Beginners - Your First Game,"
YouTube, 12 de mayo de 2020. [En línea]. Disponible en:
https://www.youtube.com/watch?v=azKeXA2A2u0.