Trucos de programación de Unity

Cuando se trata de programar en Unity, hay una plétora de palabras clave útiles programming y comandos para mejorar el flujo de trabajo en el editor y acelerar el proceso de desarrollo.

Algunas de las palabras clave están dedicadas a la depuración, mientras que otras están diseñadas para separar la lógica del editor de la lógica de secuencias de comandos.

1. Atributo '[SerializeField]'

De forma predeterminada, Unity oculta las variables privadas del inspector, pero al agregar un atributo '[SerializeField]' antes de ellas, se volverán configurables en el inspector y se mantendrán inaccesibles desde otros scripts.

[SerializeField]
private int myPrivateVariable;

2. Atributos '[HideInInspector]' y '[System.NonSerialized]'

Los atributos '[HideInInspector]' y '[System.NonSerialized]' tienen una función similar, para ocultar las variables públicas del inspector, sin embargo, difieren ligeramente en términos de serialización.

La diferencia entre '[HideInInspector]' y '[System.NonSerialized]' es que '[HideInInspector]' simplemente ocultará la variable del inspector, sin embargo, Unity continuará serializándola ( lo que significa que el valor predeterminado podría ser diferente al proporcionado en el código), '[System.NonSerialized]' por otro lado, no solo ocultará la variable del inspector sino que también indicará a Unity que no lo haga. serialícelo (lo que significa que el valor predeterminado se restablecerá entre sesiones al proporcionado en el código).

[HideInInspector]
public int myInternalVariable = 0; //Will always be 0 after the first initialization, so if you decide to change the value in the script, it may not always reflect in the Editor. Often used to remove clutter from the inspector.

[System.NonSerialized]
public int myNonSerializedVariable = 1; //The initial value will always be 1, or whatever value is set. Often used to mimic a private variable, while keeping it accessible from within other scripts.

3. Atributo '[ExecuteAlways]'

'[ExecuteAlways]' obliga a que el script se ejecute en el modo de edición y en el modo de edición Prefab, incluso cuando el juego no se está jugando. Esto puede ser útil para fines de prueba y depuración.

El atributo se agrega antes de la declaración de clase:

[ExecuteAlways]
public class MyScript : MonoBehaviour {
    // ...
}

4. 'Debug.Break()'

'Debug.Break()' pausa el editor.

Esta función es útil cuando desea verificar ciertos valores en el inspector y no puede pausarlo manualmente.

void Update() {
    if (someCondition) {
        Debug.Break();
    }
}

5. Atributo '[Range]'

El atributo '[Range]' le permite crear un control deslizante en el Editor para una variable pública flotante o int, que puede ser útil para ajustar valores sobre la marcha, de una manera más fácil de usar. Simplemente proporcione los valores mínimo y máximo, así:

[Range(0f, 1f)]
public float myFloatVariable;

Comenta a continuación tus consejos y trucos de programación favoritos en Unity.

Artículos sugeridos
Lista de Unity de palabras clave útiles en C#
Introducción al lenguaje de secuencias de comandos Unity C#
Comprender la arquitectura basada en componentes de Unity
Creando un GrabPack en Unity inspirado en Poppy Playtime
Creando un efecto de tiempo bala en Unity
Creando objetos interactivos en Unity
Implementación de interacciones cinéticas en Unity