Unity Programmering Tricks

Når det kommer til programmering i Unity, er der et væld af nyttige programmering nøgleord og kommandoer til at forbedre arbejdsgangen i editoren og fremskynde udviklingsprocessen.

Nogle af nøgleordene er dedikeret til fejlretning, mens andre er designet til at adskille editorlogikken fra scriptinglogikken.

1. '[SerializeField]' Attribut

Som standard skjuler Unity private variabler fra inspektøren, men ved at tilføje en '[SerializeField]' attribut før dem, vil de blive konfigurerbare i inspektøren, mens de holder dem utilgængelige fra andre scripts.

[SerializeField]
private int myPrivateVariable;

2. '[HideInInspector]' og '[System.NonSerialized]' attributter

Både '[HideInInspector]' og '[System.NonSerialized]' attributter har en lignende funktion, for at skjule offentlige variabler fra inspektøren, men de adskiller sig lidt med hensyn til serialisering.

Forskellen mellem '[HideInInspector]' og '[System.NonSerialized]' er, at '[HideInInspector]' blot vil skjule variablen for inspektøren, men Unity vil fortsætte med at serialisere den (hvilket betyder, at standardværdien kan være anderledes end den, der er angivet i koden), '[System.NonSerialized]' på den anden side vil ikke kun skjule variablen for inspektøren, men vil også signalere Unity ikke at serialisere den (hvilket betyder, at standardværdien nulstilles mellem sessioner til den, der er angivet i koden).

[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]' Attribut

'[ExecuteAlways]' tvinger scriptet til at blive udført i redigeringstilstand og Prefab redigeringstilstand, selv når spillet ikke spilles. Dette kan være nyttigt til test- og fejlretningsformål.

Attributten tilføjes før klasseerklæringen:

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

4. 'Debug.Break()'

'Debug.Break()' sætter editoren på pause.

Denne funktion er nyttig, når du vil kontrollere bestemte værdier i inspektøren, og du ikke er i stand til at sætte den på pause manuelt.

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

5. '[Range]' Attribut

'[Range]'-attributten giver dig mulighed for at oprette en skyder i Editoren til en offentlig float- eller int-variabel, som kan være nyttig til at justere værdier på farten, på en mere brugervenlig måde. Angiv blot min og maks værdier, sådan her:

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

Kommenter nedenfor dine yndlingsprogrammeringstips og tricks i Unity.

Foreslåede artikler
Enhedsliste over nyttige søgeord i C#
Introduktion til Unity C# Scripting Language
Forstå Unitys komponentbaserede arkitektur
Oprettelse af interaktive objekter i enhed
Implementering af kinetiske interaktioner i enhed
Åbning af skuffer og skabe med specifikke nøgler i enhed
Pick and Drop-system uden inventar i Unity