C# para Unity · Sección 16

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.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Depuración, pruebas y rendimiento.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Errores de sintaxis y tipos con Referencias, alcance y flujo y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Instala Unity Hub, una versión LTS compatible y un IDE con integración para C#. Conserva un proyecto de laboratorio separado.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Errores de sintaxis y tipos y Referencias, alcance y flujo? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Aprenderás a leer los mensajes como evidencia, agrupar errores por causa y cerrarás la ruta con una pequeña experiencia jugable verificable.

Al terminar podrás
  • Sintaxis, firmas, tipos y alcance explican la mayoría de errores
  • Referencias, índices, instancias y recursión rompen contratos distintos
  • Un vertical slice pequeño demuestra arquitectura, calidad y entrega
01
Leer el compilador

Sintaxis, firmas, tipos y alcance explican la mayoría de errores

XXX expected suele indicar delimitadores faltantes; una sobrecarga rechaza argumentos incompatibles; una conversión inválida enfrenta tipos; y un nombre fuera de contexto revela alcance u ortografía. El primer error puede causar muchos mensajes posteriores.

01

Lee archivo, línea, código y primer mensaje.

02

Revisa también la línea anterior y equilibra llaves y paréntesis.

03

Consulta la firma real antes de cambiar tipos al azar.

Comprueba lo aprendido · 01

¿Qué significa “not all code paths return a value”?

Mostrar respuesta +

Que existe al menos una ruta que termina sin devolver el tipo prometido. Debes cubrir todas las ramas, añadir un retorno final o rechazar un estado imposible.

02
Diagnosticar en ejecución

Referencias, índices, instancias y recursión rompen contratos distintos

Un campo no asignado y NullReference indican ausencia en momentos diferentes; IndexOutOfRange exige revisar límites; acceder a un miembro de instancia desde static requiere un objeto; y StackOverflow suele revelar recursión sin progreso o propiedades que se llaman a sí mismas.

01

Localiza dónde debía crearse o asignarse la referencia.

02

Comprueba Count o Length antes de acceder.

03

Toda recursión necesita caso base y avance hacia él.

Comprueba lo aprendido · 02

¿Por qué una guard clause no siempre soluciona una referencia nula?

Mostrar respuesta +

Puede evitar el choque, pero también ocultar que un requisito obligatorio no se configuró. La respuesta correcta depende de si la ausencia es válida o rompe el contrato.

03
Integrar lo aprendido

Un vertical slice pequeño demuestra arquitectura, calidad y entrega

Construye una escena con movimiento, interacción, salud, UI, un dato ScriptableObject, un evento, una colección y una herramienta o prueba. El alcance debe caber en pocos minutos de juego y funcionar desde un clon limpio.

01

Define controles, objetivo, victoria, derrota y criterios de terminado.

02

Versiona Assets, Packages, ProjectSettings y documentación.

03

Prueba referencias, errores, rendimiento y build en una plataforma objetivo.

Comprueba lo aprendido · 03

¿Qué evidencia demuestra mejor que el proyecto está terminado?

Mostrar respuesta +

Un clon limpio que abre sin errores, instrucciones breves, una build ejecutable, criterios observables cumplidos, pruebas o casos documentados y una lista honesta de límites conocidos.

Resumen de la sección

Tu recorrido en tres ideas

  1. Sintaxis, firmas, tipos y alcance explican la mayoría de errores
  2. Referencias, índices, instancias y recursión rompen contratos distintos
  3. Un vertical slice pequeño demuestra arquitectura, calidad y entrega
PROFUNDIZACIÓN / LABORATORIO GUIADO

Entrega una sala jugable desde un clon limpio

Combina fundamentos, ciclo, arquitectura, eventos, datos, control de versiones, tests, rendimiento y entrega.

CASO

Debes construir una experiencia de tres minutos: recoger una llave, abrir una puerta, evitar proyectiles y llegar a una meta.

Procedimiento

  1. Define criterios, arquitectura mínima, controles y casos de prueba antes de crear contenido.
  2. Implementa en cortes verticales pequeños y registra commits comprobables.
  3. Clona en otra carpeta, abre, ejecuta tests, crea la build y completa una revisión de rendimiento.

Evidencia mínima

  • README, versión de Unity y controles.
  • Build ejecutable y recorrido sin errores.
  • Pruebas, perfil básico y lista de límites conocidos.
Mostrar razonamiento modelo +

El proyecto demuestra más que cantidad de scripts: tiene un objetivo comprensible, dependencias visibles, estado válido, eventos simétricos, datos separados, historial legible y evidencia de que otra persona puede reproducirlo.

Para ir más lejos

¿Cuál sería el siguiente cambio de diseño y qué parte debería poder modificarse de forma local?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Corregir mensajes secundarios antes del primer error del compilador.

ERROR 02

Ocultar referencias obligatorias con comprobaciones nulas que silencian el síntoma.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Entrega una sala jugable con interacción, salud, UI, datos configurables, eventos, una colección, una prueba y una build desde un clon limpio.

Mostrar pauta de corrección +
Una respuesta sólida:
  • No hay errores de compilación ni excepciones durante el recorrido normal y fronterizo.
  • El repositorio incluye fuentes, configuración e instrucciones reproducibles.
  • El diseño, las pruebas, el rendimiento y los límites conocidos se explican con evidencia.