Volver a la página principal
domingo 9 febrero 2025
2

Qué significa [SerializedField] en unity

En Unity, el atributo [SerializedField] se usa en C# para hacer que un campo privado de una clase sea visible y editable en el Inspector de Unity sin necesidad de cambiar su nivel de acceso a public.

🔹 Ejemplo de uso

using UnityEngine;

public class MiScript : MonoBehaviour
{
    [SerializeField] // Permite que el campo privado sea visible en el Inspector
    private int vida = 100;

    [SerializeField] // También funciona con otros tipos de datos
    private string nombre = "Jugador";

    [SerializeField] 
    private GameObject objeto;
}

🔹 Ventajas de usar [SerializeField]

1. Encapsulamiento: Permite mantener los campos privados mientras siguen siendo configurables en el Inspector.

2. Mejor organización del código: Evita exponer datos innecesarios en otras clases.

3. Funciona con tipos serializables: Puede usarse en int, float, string, bool, Vector3, GameObject, List<>, Dictionary<> (con tipos serializables) y más.

🔹 Alternativa: public vs [SerializeField]

Si en lugar de [SerializeField] usaras public, el campo también sería visible en el Inspector, pero quedaría expuesto a todas las clases, lo que puede romper el principio de encapsulamiento:

public int vida; // Visible en el Inspector y accesible desde cualquier parte

Con [SerializeField], el campo sigue siendo privado, pero sigue apareciendo en el Inspector:

[SerializeField] private int vida; // Visible en el Inspector pero no accesible desde otras clases

🔹 ¿Cuándo usar [SerializeField]?

  • Cuando necesitas configurar valores en el Inspector pero quieres mantener la privacidad del campo.
  • Para evitar exponer variables innecesarias al resto del código.
  • Cuando trabajas con variables de tipos serializables que Unity puede guardar.

Es una práctica recomendada en Unity para mantener el código más limpio y seguro. 🚀

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer