C# para Unity · Sección 4

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.

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 Ciclo de vida y tiempo en Unity.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Inspector legible con Serialización y encapsulación y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.

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 Inspector legible y Serialización y encapsulación? +

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

Usarás metadatos y validación para mejorar la autoría sin confundir una interfaz bonita con un diseño de código correcto.

Al terminar podrás
  • Header, Space, Tooltip y campos de texto explican el Inspector
  • SerializeField no convierte un campo en API pública
  • Range, Min, OnValidate y RequireComponent protegen capas distintas
01
Organizar la edición

Header, Space, Tooltip y campos de texto explican el Inspector

Los atributos pueden agrupar valores, añadir ayuda contextual y presentar texto largo. Son útiles para quien configura una escena, pero demasiados grupos en un componente suelen revelar responsabilidades mezcladas.

01

Header y Space separan grupos visuales.

02

Tooltip explica unidades, rango o intención.

03

TextArea y Multiline facilitan contenido extenso.

Comprueba lo aprendido · 01

¿Un Header soluciona que un script controle movimiento, audio, inventario y guardado?

Mostrar respuesta +

No. Solo organiza su presentación. Las razones de cambio siguen mezcladas y probablemente convenga separar componentes.

02
Separar accesos

SerializeField no convierte un campo en API pública

La visibilidad en C# y la serialización son decisiones diferentes. Un campo privado serializado puede configurarse en Inspector sin permitir que cualquier script lo modifique. HideInInspector oculta presentación, pero no corrige un acceso público innecesario.

01

Mantén campos privados por defecto.

02

Expón propiedades o métodos que protejan invariantes.

03

Los datos serializados pueden sobrevivir cambios de código y requieren migración cuidadosa.

Comprueba lo aprendido · 02

¿Por qué public int vida facilita estados inválidos?

Mostrar respuesta +

Porque cualquier script podría asignar valores negativos o saltarse reglas. Un método controlado puede validar y notificar el cambio.

03
Prevenir fallos

Range, Min, OnValidate y RequireComponent protegen capas distintas

Range y Min guían la edición; OnValidate comprueba o normaliza cambios; RequireComponent declara una dependencia estructural; y las guard clauses protegen la ejecución. ContextMenu agrega acciones de prueba o mantenimiento que deben ser deterministas y seguras.

01

La ayuda del Inspector no reemplaza validación en runtime.

02

RequireComponent agrega la dependencia, pero aún debes obtenerla.

03

Una acción de editor debe soportar Undo cuando modifica datos.

Comprueba lo aprendido · 03

¿Range impide que otro script asigne un valor fuera de rango?

Mostrar respuesta +

No. Controla la edición desde Inspector. La lógica debe validar cualquier dato crítico cuando se usa o se modifica por código.

Resumen de la sección

Tu recorrido en tres ideas

  1. Header, Space, Tooltip y campos de texto explican el Inspector
  2. SerializeField no convierte un campo en API pública
  3. Range, Min, OnValidate y RequireComponent protegen capas distintas
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

Usar campos públicos solo para verlos en Inspector.

ERROR 02

Confiar en Range, Min o RequireComponent como sustitutos de validación en ejecución.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diseña el Inspector de un arma con campos privados serializados, unidades, límites, ayuda, validación y una acción segura para restablecer valores.

Mostrar pauta de corrección +
Una respuesta sólida:
  • La presentación ayuda sin ocultar responsabilidades mezcladas.
  • La API pública protege invariantes.
  • Los datos incorrectos se detectan tanto en edición como al ejecutar.