Módulo I

TUS en Diseño de Videojuegos

Ayose Lomba Pérez (LinkedIn)

Módulo 1: Introducción a la Programación y a C#

Programación I (24/25)

Ayose Lomba Pérez

Universidad del Atlántico Medio

Enlace principal  

📌 Programacion I

Conceptos Básicos

¿Qué es la programación?

La programación es el proceso de crear software a través de instrucciones que una computadora puede interpretar y ejecutar.

Lenguajes de programación

C# es un lenguaje de programación orientado a objetos, utilizado principalmente en el desarrollo de aplicaciones sobre la plataforma .NET y videojuegos con Unity.

![[../img/lenguajes.jpg|10]]

Instalación y configuración del entorno

Para programar en C# utilizaremos:

  • Unity Hub para gestionar versiones de Unity.

  • Visual Studio como entorno de desarrollo.

  • Aunque este año vamos a abordar también otros IDE como son Visual Studio Code y RIDER

Pasos iniciales

  1. Descargar e instalar Unity Hub desde aquí.

  2. Crear una cuenta en Unity ID.

  3. Instalar Unity y configurar Visual Studio.

Primeros Pasos con C#

Estructura de un programa en C

Un programa en C# se organiza en clases y métodos. Veamos un ejemplo básico:


using System; 

class Program
{
    static void Main()
    {
        Console.WriteLine("¡Hola, mundo!");
    }
}

Variables y tipos de datos

En C# existen varios tipos de datos:

  • int → Enteros

  • float → Números decimales

  • bool → Valores booleanos (true/false)

  • string → Cadenas de texto

Las variables permiten almacenar información en la memoria del programa.

Ejemplo


int edad = 25;
float altura = 1.75f;
bool esEstudiante = true;
string nombre = "Ayose";

Actividades y Preguntas

Actividad 1: Instalación de Unity

  1. Descarga e instala Unity Hub y Unity.

  2. Configura Visual Studio como tu editor de código.

  3. Crea tu primer proyecto en Unity.

Actividad 2: Primer Script en C

  1. Abre Unity y crea un nuevo script.

  2. Escribe un código que muestre un mensaje en consola.

  3. Ejecuta el código dentro de Unity y verifica su salida.

Preguntas de reflexión

  • ¿Qué ventaja posee C# como lenguae de programación que lo hace atractivo para su uso con UNITY?

  • ¿Por qué es importante la estructura de un programa?

  • ¿Cómo influye la programación en el desarrollo de videojuegos?

Ponte a prueba

Cuestionario

¡Nos vemos en la próxima sesión! 🚀

Tema 1. Introducción a C#

¿Qué es C#?

C# es un lenguaje de programación desarrollado por Microsoft. Es un lenguaje orientado a objetos y está diseñado para crear aplicaciones robustas y escalables en la plataforma .NET.

C# es un lenguaje de alto nivel que se compila en código de máquina para ser ejecutado por la computadora.

¿Pero que es eso de alto nivel?

Un lenguaje de alto nivel en programación es un lenguaje de programación diseñado para ser fácil de entender y escribir para los seres humanos. Estos lenguajes permiten a los programadores escribir programas utilizando términos y estructuras similares al lenguaje humano, en lugar de tener que trabajar con instrucciones de bajo nivel o códigos máquina.

¿Pero que es eso de alto nivel? (cont. II)

Los lenguajes de alto nivel suelen tener una sintaxis más simple y menos detalles técnicos que los lenguajes de bajo nivel, lo que facilita la tarea de escribir y leer el código. Estos lenguajes también ofrecen características avanzadas que hacen que la programación sea más eficiente, como la gestión automática de memoria y la abstracción de datos.

¿Pero que es eso de alto nivel? (cont. III)

Ejemplos de lenguajes de alto nivel incluyen Python, Java, C#, Ruby, PHP y JavaScript.

¿Qué ofrece entonces C# como lenguaje de alto nivel?

  • gestión automática de memoria a través del recolector de basura

  • la orientación a objetos

  • la capacidad de trabajar con componentes de software preexistentes mediante el uso de bibliotecas de clases.

¿Por qué es importante aprender C# para Unity?

Aprender C# es fundamental para poder crear juegos en Unity, ya que se utiliza para programar la lógica del juego, el comportamiento de los objetos, la interacción con el usuario y la comunicación con otros sistemas.

Entornos de desarrollo para C# en Unity

Para programar en C# para Unity, es necesario tener un entorno de desarrollo integrado (IDE). Unity incluye un IDE durante su instalación (Visual Studio), pero es posible usar otros como Visual Studio Code o Rider de la empresa Jetbrains.

Ejemplo de Script en C# para Unity


    using UnityEngine; 

    public class CrearCubo : MonoBehaviour
    {
        // Este es el método Start, que se ejecuta una vez al iniciar la escena
        void Start()
        {
            // Crear un cubo
            GameObject cubo = GameObject.CreatePrimitive(PrimitiveType.Cube);
            // Añadir un Rigidbody3D al cubo
            Rigidbody rigidbody = cubo.AddComponent<Rigidbody>();
            // Añadir un Collider al cubo
            BoxCollider collider = cubo.AddComponent<BoxCollider>();
        }
    }

Tema 2. Variables y tipos de datos en C#

Variables. Definición.

Las variables son elementos fundamentales en la programación en C#. Las variables se utilizan para almacenar valores en la memoria de la computadora y pueden ser de diferentes tipos.

Tipos de vbles.

Los tipos de datos básicos en C# son:

  • int: un número entero

  • float: un número con decimales

  • bool: un valor booleano (verdadero o falso)

  • string: una cadena de texto

Ejemplo

Una variable de tipo “int” en C#.

Para esto se utiliza la siguiente sintaxis:


int miVariable = 5;

Nomenclatura. Convenciones

Existen varias convenciones para nombrar variables y métodos en programación.

  • Camel case: El primer caracter de la primera palabra es minúscula, y el primer caracter de las siguientes palabras es mayúscula. Por ejemplo: miVariable, miMetodo.

  • Pascal case: El primer caracter de cada palabra es mayúscula. Por ejemplo: MiVariable, MiMetodo.

Nomenclatura. Convenciones (cont.)

  • Snake case: Las palabras están separadas por guiones bajos. Por ejemplo: mi_variable, mi_metodo.

  • Kebab case: Las palabras están separadas por guiones medios. Por ejemplo: mi-variable, mi-metodo.

Nomenclatura. ¿Qué recomienda UNITY?

En Unity se usa:

  • Archivos: PASCAL. MiArchivo -> MiClase (Esto es obligatorio)

  • Vbles y métodos: CAMEL CASE. miVble o miFuncion

Ponte a prueba

Cuestionario

Tema 3. Operadores y Estructuras de control de flujo

📌 Operadores en C#

🎯 Objetivos

  • Comprender los distintos tipos de operadores en C#.

  • Aprender su sintaxis y funcionamiento.

  • Aplicar operadores en ejemplos prácticos.

🔢 Tipos de operadores en C

  1. Operadores Aritméticos

  2. Operadores de Asignación

  3. Operadores de Comparación

  4. Operadores Lógicos

  5. Operadores de Incremento y Decremento

  6. Operador Condicional

➕ Operadores Aritméticos

Operador Significado Ejemplo Resultado
+ Suma 5 + 3 8
- Resta 10 - 2 8
* Multiplicación 4 * 3 12
/ División 10 / 2f 5.0
% Módulo (resto) 10 % 3 1

Ejemplos operadores aritméticos


int a = 10;

int b = 3;

Console.WriteLine(a + b); // 13

Console.WriteLine(a - b); // 7

Console.WriteLine(a * b); // 30

Console.WriteLine(a / b); // 3 (división entre enteros)

Console.WriteLine(a % b); // 1 (resto de la división)

📝 Operadores de Asignación

Operador Significado Ejemplo
= Asignación x = 5;
+= Suma y asignación x += 3;
-= Resta y asignación x -= 2;
*= Multiplicación y asignación x *= 4;
/= División y asignación x /= 2;
%= Módulo y asignación x %= 3;

Ejemplos operadores asignación


int x = 10;

x += 5; // x ahora es 15

x -= 2; // x ahora es 13

x *= 3; // x ahora es 39

Console.WriteLine(x);

🔄 Operadores de Comparación

Operador Significado Ejemplo Resultado
== Igual a 5 == 5 true
!= Diferente de 5 != 3 true
> Mayor que 7 > 4 true
< Menor que 2 < 5 true
>= Mayor o igual que 6 >= 6 true
<= Menor o igual que 3 <= 4 true

Ejemplos operadores de comparación


int a = 10, b = 20;

bool resultado = a < b; // true

Console.WriteLine(resultado);

🧠 Operadores Lógicos

Operador Significado Ejemplo Resultado
&& AND lógico (5 > 3) && (10 < 20) true
|| OR lógico (5 > 10) || (3 < 4) true
! NOT lógico !(5 > 3) false

Ejemplos operadores lógicos


bool a = true;

bool b = false;

Console.WriteLine(a && b); // false

Console.WriteLine(a || b); // true

Console.WriteLine(!a); // false

🔼🔽 Operadores de Incremento y Decremento

Operador Significado Ejemplo
++ Incremento en 1 x++ o ++x
-- Decremento en 1 x-- o --x

Ejemplos operadores de incremento/decremento


int x = 5;

Console.WriteLine(++x); // 6 (pre-incremento)

Console.WriteLine(x++); // 6 (muestra antes de incrementar)

Console.WriteLine(x);   // 7

❓ Operador Condicional (Ternario)

Operador Significado Ejemplo
? : Evalúa una condición y devuelve un valor resultado = (x > 5) ? "Mayor" : "Menor";

Ejemplos operador ternario


int x = 10;

string mensaje = (x > 5) ? "Mayor que 5" : "Menor o igual a 5";

Console.WriteLine(mensaje);

Comencemos con las estructura de control

¿Qué son las estructuras de control de flujo?

Las estructuras de control de flujo se utilizan para controlar el flujo de ejecución de un programa. Las estructuras de control de flujo básicas en C# son:

  • if/else

  • switch

If/else

 Se utiliza para ejecutar una acción si se cumple una condición y otra acción si no se cumple. Se pueden encadenar más a través del ELSE IF

Estructura de un IF (IF ELSE IF ELSE)


    if (condition1)

    {

    // block of code to be executed if condition1 is True

    }

    else if (condition2)

    {

    /* block of code to be executed if the condition1

    is false and condition2 is True*/

    }

    else

    {

    /* block of code to be executed if the condition1

    is false and condition2 is False*/

    }

Ejemplo de un IF


    if (numero > 0) {

        Debug.Log("El número es positivo.");

    } else {

        Debug.Log("El número es negativo.");

    }

Switch

El Switch es una estructura de control en la que bajo la evaluación de una expresión se ejecutará el caso que cumpla con el resultado de la misma.

Nótese que siempre, tras las sentencias de un caso, se añade un BREAK para que no se sigan comprobando el resto de posibilidades

Estructura de un Switch


switch(expression)

    {
    case x:
        // code block
        break;
    case y:
        // code block
        break;
    default:
        // code block
        break;
    }

Ejemplo de un Switch


int day = 4;

switch (day)

{

  case 1:

    Console.WriteLine("Monday");

    break;

  case 2:

    Console.WriteLine("Tuesday");

    break;

  case 3:

    Console.WriteLine("Wednesday");

    break;

  case 4:

    Console.WriteLine("Thursday");

    break;

  case 5:

    Console.WriteLine("Friday");

    break;

  case 6:

    Console.WriteLine("Saturday");

    break;

  case 7:

    Console.WriteLine("Sunday");

    break;

}

// Outputs "Thursday" (day 4)

  

Tema 4. Bucles y ejemplos prácticos

Bucles for, while y do-while

Bucles

Los bucles for son una forma de ejecutar un bloque de código un número determinado de veces.

Estructura FOR


    for (inicialización; condición; incremento/decremento) {

    // Código que se ejecuta en cada iteración

    }

Ejemplo de un FOR


    for (int i = 1; i <= 10; i++) {

    Debug.Log(i);

    }

Bucles WHILE y DO WHILE

Los bucles while y do-while son otra forma de ejecutar un bloque de código mientras se cumpla una condición.

Estructura de un WHILE


    while (condición) {

    // Código que se ejecuta mientras se cumpla la condición

    }

Ejemplo de un WHILE

   int i = 1;
   while (i <= 10) {
   Debug.Log(i);
   i++;
   }

Estructura de un DO WHILE


    do {

    // Código que se ejecuta al menos una vez

    // y después mientras se cumpla la condición

    } while (condición);

Ejemplo de un DO WHILE


    int j = 1;


    do {

    Debug.Log(j);

    j++;

    } while (j <= 10);