Propiedades públicas y privadas, [SerializeField], [Header] y [HideInInspector]

Clase 5 de 24Curso de Introducción a Unity: Scripting

Resumen

¿Por qué la programación no lo es todo en el desarrollo de videojuegos?

Programar es sin duda una parte crucial en el desarrollo de videojuegos, pero no es el único componente esencial. Muchos aspectos del desarrollo requieren configuración, algo que depende de las variables públicas y privadas que estructuramos en nuestro código. Además, los atributos ofrecen una manera intuitiva de manipular y adaptar nuestros juegos. Aprender a manejar estas herramientas no sólo enriquece el juego, sino también mejora la experiencia del usuario.

¿Qué son las variables públicas y privadas?

Las variables públicas son aquellas que declaramos al principio de una clase, fuera de cualquier método. Este tipo de variables son visibles en el inspector, lo que permite que otros componentes puedan verlas e incluso modificarlas. Imagina el fantasmita de Mario Bros: necesita saber hacia dónde mira Mario para cambiar su comportamiento. Ahí entran en juego las variables públicas.

Por otro lado, las variables privadas o protegidas no se muestran en el inspector y no pueden ser modificadas por otras clases. Sin embargo, esto no siempre es absoluto, ya que existen atributos que pueden modificar este comportamiento.

public float flotante;
private int entero;
[SerializeField] private int enteroVisibleEnInspector;
[HideInInspector] public string nombre;

¿Cuál es la función de los atributos en Unity?

Los atributos son como pequeñas decoraciones que podemos agregar encima de las variables para cambiar su comportamiento. Algunos de los atributos más comunes incluyen:

  • SerializeField: Hace que una variable privada se muestre en el inspector.
  • HideInInspector: Esconde una variable pública del editor.
  • Range: Crea un slider en el inspector, útil para limitaciones como entre 0 y 1.
  • TextArea: Convierte un campo de tipo string en un área más grande para escribir código o texto largo.
  • Header y Space: Permiten organizar mejor el código con títulos y espacios.
  • ToolTip: Proporciona mensajes cuando el mouse se coloca sobre la variable, como recomendaciones o advertencias.

Estos atributos ayudan a los desarrolladores a tener un control más preciso y estético sobre el comportamiento y presentación de sus variables en el editor de Unity.

¿Cómo usamos arrays y clases serializables?

Las propiedades serializables facilitan la gestión de colecciones de datos más complejas. Por ejemplo, un personaje en un juego puede tener múltiples amigos. En lugar de declarar variables individuales para cada amigo, podemos usar arrays. Sin embargo, para relaciones más complejas usamos clases serializables.

[System.Serializable]
public class Amistad {
    public string nombreAmigo;
    public GameObject[] regalos;
}

public Amistad[] amistades;

Al hacer una clase serializable, Unity puede manejar estos objetos personalizados de forma similar a cómo maneja los tipos primitivos, facilitando la visualización y modificación de datos en el inspector.

¿Qué ventajas ofrece la correcta configuración de las variables y atributos?

Implementar y configurar variables y atributos de manera efectiva permite:

  1. Optimización: Acceso y modificación directa desde el inspector sin recompilar.
  2. Organización: Mejora la claridad del código y el editor con diferencias visuales (headers, spaces).
  3. Control preciso: Restringir o permitir la visibilidad de propiedades según sea necesario.
  4. Eficiencia del equipo: Facilita el trabajo conjunto y evita errores mediante atributos inteligentes y recomendaciones con ToolTips.

Profundizar en estas prácticas no solo eleva la calidad de los proyectos, sino también incrementa la eficiencia del equipo, propiciando un entorno de trabajo más ordenado y productivo. ¡Continúa explorando estas herramientas para llevar tus habilidades de desarrollo al siguiente nivel!