Unity programmering tricks

När det gäller programmering i Unity finns det en uppsjö av användbara sökord och kommandon för programmering för att förbättra arbetsflödet och hastigheten i redigeraren upp utvecklingsprocessen.

Några av nyckelorden är dedikerade till felsökning, medan andra är utformade för att skilja editorlogiken från skriptlogiken.

1. '[SerializeField]' Attribut

Som standard döljer Unity privata variabler från inspektören, men genom att lägga till ett '[SerializeField]'-attribut före dem kommer de att bli konfigurerbara i inspektören samtidigt som de håller dem oåtkomliga från andra skript.

[SerializeField]
private int myPrivateVariable;

2. '[HideInInspector]' och '[System.NonSerialized]' attribut

Både '[HideInInspector]' och '[System.NonSerialized]' attribut har en liknande funktion, för att dölja offentliga variabler från inspektören, men de skiljer sig något åt ​​vad gäller serialisering.

Skillnaden mellan '[HideInInspector]' och '[System.NonSerialized]' är att '[HideInInspector]' bara kommer att dölja variabeln för inspektören, men Unity kommer att fortsätta serialisera den (vilket innebär att standardvärdet kan vara annorlunda än den som tillhandahålls i koden), '[System.NonSerialized]' å andra sidan, kommer inte bara att dölja variabeln för inspektören utan kommer också att signalera Unity att inte serialisera den (vilket innebär att standardvärdet återställs mellan sessionerna till den som anges 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]' tvingar skriptet att köras i redigeringsläge och Prefab redigeringsläge, även när spelet inte spelas. Detta kan vara användbart för test- och felsökningsändamål.

Attributet läggs till före klassdeklarationen:

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

4. 'Debug.Break()'

'Debug.Break()' pausar redigeraren.

Denna funktion är användbar när du vill kontrollera vissa värden i inspektören och du inte kan pausa den manuellt.

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

5. '[Range]' Attribut

Attributet '[Range]' låter dig skapa ett skjutreglage i editorn för en public float- eller int-variabel, vilket kan vara användbart för att justera värden på språng, på ett mer användarvänligt sätt. Ange bara min- och maxvärden, så här:

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

Kommentera nedan dina favoritprogrammeringstips och tricks i Unity.

Föreslagna artiklar
Enhetslista med användbara sökord i C#
Introduktion till Unity C# Scripting Language
Förstå Unitys komponentbaserade arkitektur
Skapa ett GrabPack i Unity Inspirerad av Poppy Playtime
Skapa en kultidseffekt i Unity
Skapa interaktiva objekt i Unity
Implementering av kinetiska interaktioner i enhet