Trucchi per la programmazione dell'unità

Quando si tratta di programmare in Unity, c'è una pletora di utili parole chiave programmazione e comandi per migliorare il flusso di lavoro all'interno dell'editor e velocizzare il processo di sviluppo.

Alcune delle parole chiave sono dedicate al debug, mentre altre sono progettate per separare la logica dell'editor dalla logica di scripting.

1. '[SerializeField]' Attributo

Per impostazione predefinita, Unity nasconde le variabili private dall'ispettore, ma aggiungendo un attributo '[SerializeField]' prima di esse, diventeranno configurabili nell'ispettore mantenendole inaccessibili dall'interno di altri script.

[SerializeField]
private int myPrivateVariable;

2. '[HideInInspector]' e '[System.NonSerialized]' attributi

Entrambi gli attributi '[HideInInspector]' e '[System.NonSerialized]' hanno una funzione simile, per nascondere le variabili pubbliche dall'ispettore, tuttavia, differiscono leggermente in termini di serializzazione.

La differenza tra '[HideInInspector]' e '[System.NonSerialized]' è che '[HideInInspector]' nasconderà semplicemente la variabile dall'ispettore, tuttavia, Unity continuerà a serializzarla ( il che significa che il valore predefinito potrebbe essere diverso da quello fornito nel codice), '[System.NonSerialized]' d'altra parte, non solo nasconderà la variabile dall'ispettore ma segnalerà anche a Unity di non serializzarlo (il che significa che il valore predefinito verrà reimpostato tra le sessioni su quello fornito nel codice).

[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. '[ExecuteAlways]' Attributo

'[ExecuteAlways]' forza l'esecuzione dello script in modalità di modifica e in modalità di modifica Prefab, anche quando il gioco non è in esecuzione. Questo può essere utile per scopi di test e debug.

L'attributo viene aggiunto prima della dichiarazione di classe:

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

4. 'Debug.Break()'

'Debug.Break()' mette in pausa l'editore.

Questa funzione è utile quando si desidera controllare determinati valori nell'ispettore e non è possibile metterlo in pausa manualmente.

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

5. '[Range]' Attributo

L'attributo '[Range]' ti consente di creare uno slider nell'Editor per una variabile float o int pubblica, che può essere utile per modificare i valori in movimento, in un modo più intuitivo. Basta fornire i valori minimo e massimo, in questo modo:

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

Commenta sotto i tuoi trucchi e suggerimenti di programmazione preferiti in Unity.

Articoli suggeriti
Elenco Unity di parole chiave utili in C#
Introduzione al linguaggio di scripting Unity C#
Comprensione dell'architettura basata su componenti di Unity
Una guida per integrare il controller Nintendo con Unity
Principali frammenti di codice utili per gli sviluppatori Unity
Script per catturare oggetti in Unity
Guida completa per trasformare la rotazione in Unity