Unity-Programmiertricks

Wenn es um die Programmierung in Unity geht, gibt es eine Fülle nützlicher Programmier-Schlüsselwörter und -Befehle, um den Workflow im Editor zu verbessern und den Entwicklungsprozess zu beschleunigen.

Einige der Schlüsselwörter dienen dem Debuggen, während andere dazu dienen, die Editorlogik von der Skriptlogik zu trennen.

1. '[SerializeField]' Attribut

Standardmäßig verbirgt Unity private Variablen vor dem Inspektor, aber durch das Hinzufügen eines '[SerializeField]'-Attributs vor ihnen werden sie im Inspektor konfigurierbar, während sie in anderen Skripten nicht zugänglich sind.

[SerializeField]
private int myPrivateVariable;

2. '[HideInInspector]' und '[System.NonSerialized]' Attribute

Die Attribute '[HideInInspector]' und '[System.NonSerialized]' haben eine ähnliche Funktion, öffentliche Variablen vor dem Inspektor zu verbergen, unterscheiden sich jedoch geringfügig in Bezug auf die Serialisierung.

Der Unterschied zwischen '[HideInInspector]' und '[System.NonSerialized]' besteht darin, dass '[HideInInspector]' die Variable lediglich vor dem Inspektor verbirgt, Unity sie jedoch weiterhin serialisiert (was bedeutet, dass der Standardwert von dem im Code angegebenen abweichen kann). '[System.NonSerialized]' hingegen verbirgt die Variable nicht nur vor dem Inspektor, sondern signalisiert Unity auch, sie nicht zu serialisieren (was bedeutet, dass der Standardwert zwischen den Sitzungen auf den im Code angegebenen Wert zurückgesetzt wird).

[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]' Erzwingt die Ausführung des Skripts im Bearbeitungsmodus und im Bearbeitungsmodus Prefab, auch wenn das Spiel nicht läuft. Dies kann zu Test- und Debugzwecken nützlich sein.

Das Attribut wird vor der Klassendeklaration hinzugefügt:

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

4. 'Debug.Break()'

'Debug.Break()' Pausiert den Editor.

Diese Funktion ist nützlich, wenn Sie bestimmte Werte im Inspektor überprüfen möchten und ihn nicht manuell anhalten können.

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

5. '[Range]' Attribut

Mit dem '[Range]'-Attribut können Sie im Editor einen Schieberegler für eine öffentliche Float- oder Int-Variable erstellen, der für die benutzerfreundlichere Anpassung von Werten unterwegs nützlich sein kann. Geben Sie einfach die Mindest- und Höchstwerte an, etwa so:

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

Kommentieren Sie unten Ihre bevorzugten Programmiertipps und -tricks in Unity.

Empfohlene Artikel
Unity-Liste nützlicher Schlüsselwörter in C#
Einführung in die Skriptsprache Unity C#
Verstehen der komponentenbasierten Architektur von Unity
Erstellen eines GrabPacks in Unity, inspiriert von Poppy Playtime
Erstellen eines Bullet-Time-Effekts in Unity
Erstellen interaktiver Objekte in Unity
Implementierung kinetischer Interaktionen in Unity