Unity-programmeringstriks

Når det gjelder programmering i Unity, er det en mengde nyttige programmerings nøkkelord og kommandoer for å forbedre arbeidsflyten og hastigheten i redigeringsprogrammet opp utviklingsprosessen.

Noen av nøkkelordene er dedikert til feilsøking, mens andre er utformet for å skille redigeringslogikken fra skriptlogikken.

1. '[SerializeField]' Egenskap

Som standard skjuler Unity private variabler fra inspektøren, men ved å legge til et '[SerializeField]'-attributt foran dem, vil de bli konfigurerbare i inspektøren mens de holder dem utilgjengelige fra andre skript.

[SerializeField]
private int myPrivateVariable;

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

Både '[HideInInspector]' og '[System.NonSerialized]' attributter har en lignende funksjon, for å skjule offentlige variabler fra inspektøren, men de er litt forskjellige når det gjelder serialisering.

Forskjellen mellom '[HideInInspector]' og '[System.NonSerialized]' er at '[HideInInspector]' bare vil skjule variabelen for inspektøren, men Unity vil fortsette å serialisere den (noe som betyr at standardverdien kan være annerledes enn den som er oppgitt i koden), '[System.NonSerialized]' på den annen side, vil ikke bare skjule variabelen for inspektøren, men vil også signalisere Unity om ikke å serialisere den (som betyr at standardverdien vil bli tilbakestilt mellom øktene til den som er oppgitt 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]' Egenskap

'[ExecuteAlways]' tvinger skriptet til å kjøres i redigeringsmodus og Prefab redigeringsmodus, selv når spillet ikke spilles. Dette kan være nyttig for testing og feilsøkingsformål.

Attributtet legges til før klasseerklæringen:

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

4. 'Debug.Break()'

'Debug.Break()' setter redaktøren på pause.

Denne funksjonen er nyttig når du vil sjekke visse verdier i inspektøren og du ikke kan sette den på pause manuelt.

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

5. '[Range]' Egenskap

'[Range]'-attributtet lar deg lage en glidebryter i redigeringsprogrammet for en offentlig flyte- eller int-variabel, som kan være nyttig for å justere verdier mens du er på farten, på en mer brukervennlig måte. Bare oppgi min- og maksverdiene, slik:

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

Kommenter under dine favorittprogrammeringstips og -triks i Unity.

Foreslåtte artikler
Enhetsliste over nyttige søkeord i C#
Introduksjon til Unity C# Scripting Language
Forstå Unitys komponentbaserte arkitektur
Lag en GrabPack i Unity Inspirert av Poppy Playtime
Skape en kuletidseffekt i Unity
Opprette interaktive objekter i Unity
Implementering av kinetiske interaksjoner i enhet