C# para Unity
Programación de videojuegos con C#, ciclo de vida de Unity, arquitectura, herramientas de editor, patrones, pruebas, Git y depuración.
- C# y MonoBehaviour
- Arquitectura y SOLID
- Patrones de diseño
- Editor, pruebas y rendimiento
- 16
- secciones
- 48
- lecciones
- 48
- ejercicios resueltos
Avanza una sección
a la vez.
Empieza por la primera y continúa en orden. Cada sección incluye tres lecciones, ejemplos claros y respuestas desplegables.
C#, Unity y el primer componente
Qué responsabilidades cumplen C#, Unity Hub, el Editor y el IDE; cómo crear un proyecto de laboratorio y ejecutar un primer MonoBehaviour.
- Lenguaje, motor e IDE
- Proyecto y escena
- Primer MonoBehaviour
Fundamentos de C# para gameplay
Variables, tipos, operadores, cadenas, métodos, enum, struct, arrays, conversiones y diferencias de inicialización entre clases comunes y componentes.
- Tipos y expresiones
- Métodos y modelos de datos
- Conversión e inicialización
Ciclo de vida y tiempo en Unity
Awake, Start, Update, FixedUpdate, LateUpdate, activación, colisiones, triggers, tareas diferidas y corrutinas organizadas por responsabilidad.
- Inicialización y activación
- Frames, física y colisiones
- Temporizadores y corrutinas
Inspector, atributos y serialización
Atributos que vuelven el Inspector legible y seguro, visibilidad de campos, validación en edición y dependencias obligatorias entre componentes.
- Inspector legible
- Serialización y encapsulación
- Validación y dependencias
Decisiones, bucles y estados
Estructuras de control aplicadas a reglas de juego, casos frontera, recorridos de colecciones, retornos tempranos y máquinas de estado sencillas.
- if y switch
- for, foreach y while
- Estados y salidas del flujo
POO, composición y objetos válidos
Encapsulación, herencia, polimorfismo, abstracción y composición para repartir responsabilidades sin crear jerarquías frágiles.
- Encapsulación
- Polimorfismo y abstracción
- Composición sobre herencia
Colecciones para sistemas de juego
Elección entre arrays, List, Dictionary, Stack y Queue según orden, acceso, mutabilidad y costo de la operación dominante.
- Arrays y listas
- Diccionarios
- Pilas y colas
Interfaces, genéricos y contratos
Contratos por capacidad, interacción desacoplada, código reutilizable con seguridad de tipos y restricciones genéricas explícitas.
- Interfaces
- Genéricos
- Contratos verificables
Delegados, eventos y callbacks
Funciones como valores, Action, Func, eventos de C#, UnityEvent y suscripciones simétricas para comunicar sistemas sin dependencias ocultas.
- Delegados y lambdas
- Eventos y UnityEvent
- Suscripción segura
Arquitectura y organización del proyecto
Convenciones, documentación, validación, ScriptableObject, namespaces, compilación condicional y Assembly Definitions para proyectos escalables.
- Código y validación
- ScriptableObject
- Namespaces y ensamblados
Herramientas y extensiones del Editor
Custom Inspector, EditorWindow, SerializedProperty, Undo y AssetDatabase para automatizar tareas de autoría sin contaminar el runtime.
- Custom Inspector
- EditorWindow
- Assets, Undo y persistencia
Git y control de versiones para Unity
Qué versionar, cómo trabajar con commits y ramas, cómo interpretar conflictos y cómo proteger escenas, assets y archivos .meta.
- Repositorio Unity
- Commit, push y ramas
- Conflictos y colaboración
Principios SOLID aplicados a Unity
Responsabilidades, extensibilidad, sustitución, contratos pequeños e inversión de dependencias usados como criterios de refactorización.
- SRP y OCP
- LSP e ISP
- DIP y composición
Patrones de diseño con criterio
Adapter, Facade, Mediator, Strategy, Command, Factory, Observer, Template Method, Null Object, Object Pool y los costos de acceso global.
- Integrar y coordinar
- Variar, crear y notificar
- Estado global y reutilización
Depuración, pruebas y rendimiento
Método sistemático de diagnóstico con Consola, Inspector, Debug, assertions, excepciones, Gizmos, breakpoints, Test Framework y Profiler.
- Evidencia y diagnóstico
- Depurador y pruebas
- Profiler y regresiones
Errores frecuentes y proyecto final
Lectura de errores de compilación y ejecución, referencias nulas, índices, tipos, alcance, recursión y una integración final verificable.
- Errores de sintaxis y tipos
- Referencias, alcance y flujo
- Proyecto final
