Unity Scripting – Der ultimative Unity C# Guide

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Seiteninhalt

Mit dem Unity Scripting kann das Verhalten von Objekten und Interaktionen in einer Anwendung gesteuert werden. Über Skripte lassen sich somit Logiken erstellen, um verschiedene Objekte und Elemente mit der Umgebung interagieren zu lassen. In der Unity-Engine wird dafür die Programmiersprache C# verwendet.

Im Wesentlichen handelt es sich bei einem Skript um eine Sammlung von Anweisungen, die von Unity interpretiert und ausgeführt werden. Damit lassen sich beispielsweise

  • die Eigenschaften von GameObjects ändern,
  • Animationen steuern,
  • Kollisionen erkennen,
  • Audio abspielen,
  • Benutzereingaben verarbeiten,
  • und vieles mehr.

Mit C# können komplexe Funktionen mit relativ wenig Code entwickelt werden. Zudem ist eine Nutzung der Unity-API möglich, um auf verschiedene Komponenten der Engine zuzugreifen. Das Unity Scripting ist somit wichtiger Bestandteil für die Entwicklung deiner Anwendungen.

Bevor wir näher auf das Scripting eingehen, möchte ich dir zunächst zeigen, warum es so wichtig ist…

Warum ist das Scripting wichtig?

Wie bereits erwähnt, ist das Unity Scripting für die Entwicklung von Anwendungen sehr wichtig. Hier einige Punkte, die von entscheidender Bedeutung sind:

  • Flexibilität und Anpassungsmöglichkeiten: Mit dem Unity Scripting besitzt du die Flexibilität, um das Verhalten von Objekten nach deinen Vorstellungen anzupassen. Damit kannst du komplexe Interaktionen erstellen.
  • Interaktivität und Logik: Ohne das Unity Scripting wären Anwendungen sehr statisch. Skripte ermöglichen es, dass sich Objekte bewegen, auf Benutzereingaben reagieren und auf andere Ereignisse reagieren.
  • Benutzerfreundlichkeit und GUI: Über Skripte hast du die Möglichkeit, eine benutzerfreundliche GUI zu erstellen. So lassen sich Optionen, Einstellungen, Menüs und vieles mehr darstellen.
  • Effizienz und Wiederverwendbarkeit: Durch die Integration von Unity Skripten lassen sich häufig verwendete Funktionen und Abläufe effizient wiederverwenden. Das kann die Entwicklung von Anwendungen deutlich beschleunigen.
  • Erweiterbarkeit und Modifizierbarkeit: Das Unity Scripting ermöglicht es dir, Anpassungen vorzunehmen, ohne den Kern der 3D Engine anzupassen. Somit ist die Engine durch Skripte erweiterbar.

Hinweis: Mit dem ultimativen Unity Cheat Sheet erhältst du einen detaillierten Überblick über Tipps & Tricks mit dem Umgang von Unity. Sichere dir jetzt das Cheat Sheet, um deine Anwendungen noch einfacher und effektiver erstellen zu können!

Übersicht Skriptzyklus

Der Skriptzyklus ist beim Unity Scripting ein wichtiger Prozess, der das Verhalten von GameObjects und anderen Elementen steuert. Daher ist es wichtig diesen Zyklus zu verstehen.

Er stellt einen wiederholten Ablauf dar, der mit jedem Frame ausgeführt wird. Ein Frame entspricht einem einzelnen Bild, das auf dem Bildschirm gerendert wird. Dabei wird jeder Frame in diskrete Zeitschritte unterteilt und ein Skript in jedem dieser Zeitschritte ausgeführt.

Ein diskreter Zeitschritt kann grob in folgende Phasen unterteilt werden:

  1. Start-Phase: Die Start-Methode wird beim Start der Anwendung nur einmal ausgeführt und kann beispielsweise Anweisungen für die Initialisierung beinhalten.

  2. FixedUpdate-Phase: In dieser Phase werden Skripte mit der FixedUpdate-Methode ausgeführt. Sie erfolgt mit einem festen Zeitintervall und ist besonders für die physikalische Simulation wichtig. Skripte, die die Bewegung oder Interaktion von Objekten basierend auf physikalischen Kräften steuern, sollten in dieser Phase ausgeführt werden.

  3. Input-Phase: Die Verarbeitung von Benutzereingaben wie Tastatureingaben, Mausklicks oder Touch-Ereignissen erfolgt in der Input-Phase. Unity erfasst die Eingaben und speichert sie in einem Puffer. So können sie in nachfolgenden Phasen verarbeitet werden.

  4. Update-Phase: Hier werden Skripte mit der Update-Methode ausgeführt. Diese Phase erfolgt in jedem Frame und wird für die meisten Aktualisierungen und Logiken verwendet. Skripte können unter anderem die Eigenschaften von GameObjects ändern, Berechnungen durchführen oder Benutzereingaben verarbeiten.

  5. LateUpdate-Phase: In dieser Phase werden Skripte mit der LateUpdate-Methode ausgeführt. Sie wird auch in jedem Frame ausgeführt. Diese Methode kann verwendet werden, wenn bestimmte Änderungen erst nach allen anderen Phasen angewandt werden sollen.

  6. Rendering-Phase: Schließlich wird die Szene in der Rendering-Phase gerendert und auf dem Bildschirm angezeigt. Diese Phase erfolgt nach der Ausführung aller Skripte.

Darstellung Skriptzyklus

Der Skriptzyklus wiederholt sich in jedem Frame, was ein kontinuierliches und flüssiges Erlebnis gewährleistet. Es ist daher sehr wichtig die Skripte effizient zu gestalten. Komplexe oder ineffiziente Skripte reduzieren die Framerate und können auch zu Performanceproblemen führen.

In der nachfolgenden Abbildung findest du den Skriptzyklus in ausführlicher Form.

Übersicht über den Skriptzyklus in Unity (Quelle: https://docs.unity3d.com/Manual/ExecutionOrder.html)

Installation und Nutzung einer IDE (Integrated Development Environment) für das Unity Scripting

Eine Integrated Development Environment (IDE) ist ein unverzichtbares Tool, um für Unity C# Skripte zu entwickeln. Eine IDE stellt eine Umgebung dar, die das Schreiben, Testen und Debuggen von Code ermöglicht. In diesem Abschnitt erhältst du eine kurze Einführung zur Installation und Nutzung einer IDE für das Unity Scripting.

Welche IDEs stehen zur Verfügung?

Es gibt mehrere beliebte IDEs, die du verwenden kannst. Zu den bekanntesten gehören:

  1. Visual Studio: Visual Studio ist eine voll ausgestattete IDE von Microsoft. Sie bietet eine umfassende Unity C#-Unterstützung, eine Option zur Codevervollständigung und eine integrierte Debugger-Funktionalität.
  2. Visual Studio Code: Visual Studio Code (VS Code) ist ein leichtgewichtiger, plattformübergreifender Code-Editor von Microsoft. Er bietet ebenfalls eine hervorragende Unterstützung für Unity C# und ist besonders als schnelle und einfache IDE bekannt.
  3. JetBrains Rider: JetBrains Rider ist eine leistungsstarke IDE, die von JetBrains entwickelt wurde. Sie bietet eine umfangreiche Unity C#-Unterstützung, eine intuitive Benutzeroberfläche und fortschrittliche Debugging-Funktionen.

Installation der IDE

Um eine IDE für Unity Scripting zu verwenden, ist es zunächst wichtig, die gewünschte IDE zu installieren. Die Installation ist in der Regel einfach und unkompliziert:

  1. Besuche die Webseite der jeweiligen IDE (z. B. Visual Studio, Visual Studio Code oder JetBrains Rider).
  2. Lade die Installationsdatei für dein Betriebssystem herunter.
  3. Führe die Installationsdatei aus und folge den Anweisungen des Installationsassistenten, um die IDE auf deinem PC zu installieren.

Oberfläche von Visual Studio Code für Unity C# Scripting

Einrichtung von Unity und Integration der IDE

Nach der Installation must du Unity mit der IDE verbinden, um die Entwicklung von Skripten zu erleichtern. Unity bietet eine nahtlose Integration mit den gängigen IDEs:

  1. Öffne Unity und erstelle ein neues Projekt oder öffne ein vorhandenes Projekt.
  2. Navigiere zu Edit → Preferences → External Tools.
  3. Wähle unter External Script Editor die installierte IDE aus der Liste aus.

Unity IDE einrichten

Grundlegende Nutzung der IDE

Nach der Integration kannst du in Unity problemlos Skripte erstellen oder vorhandene Skripte öffnen:

  1. Klicke dazu im Unity-Editor mit der rechten Maustaste im Project-Fenster und wähle Create → C# Script. Damit kannst du ein neues Skript erstellen.
  2. Dieses Skript kannst du nun per Doppelklick öffnen. Es sollte sich automatisch mit der ausgewählten IDE öffnen.
  3. Erstelle dein erstes Skript oder bearbeite ein vorhandenes Skript.

Grundbestandteile eines Skripts

In Unity C# Skripten werden verschiedene Elemente verwendet, um das Verhalten von GameObjects und die Logik zu steuern. In diesem Abschnitt erkläre ich dir die grundlegenden Bestandteile eines Skripts. Dazu gehören unter anderem:

  • Variablen
  • Methoden (Funktionen)
  • Zugriffsmodifizierer
  • Klassen
  • Namespaces
  • Ereignisse
  • Coroutine

Ich werde dir die einzelnen Bestandteile Schritt-für-Schritt erklären. Starten wir gleich mit den Variablen…

Variablen

Variablen sind Speicherorte, in denen Werte gespeichert werden können. Sie dienen dazu, um Daten während der Laufzeit einer Anwendung zu speichern und zu verwalten. Abhängig von den Daten lassen sich in C# verschiedene Datentypen für Variablen verwenden.

Ganzzahlige Datentypen

  • byte: 8-Bit-Ganzzahl. Werte von 0 bis 255.
  • short: 16-Bit-Ganzzahl. Werte von –32.768 bis 32.767
  • int: 32-Bit-Ganzzahl mit Vorzeichen. Werte von -2.147.483.648 bis 2.147.483.647
  • uint: 32-Bit-Ganzzahl ohne Vorzeichen. Werte von 0 bis 4.294.967.295
  • long: 64-Bit-Ganzzahl. Werte von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807
				
					public class IntegerVariables : MonoBehaviour
{
    public byte smallNumber = 8;
    public short temperature = -10;
	public int negativeValue = -1000000;
    public uint positiveValue = 4212454;
    public long largeNumber = 1234567890;
}
				
			

Fließkommazahl Datentypen

  • float: 32-Bit-Fließkommazahl. Typischerweise verwendet für reale Zahlen mit Nachkommastellen. Genauigkeit ~6–9 Dezimalstellen
  • double: 64-Bit-Fließkommazahl. Größere Genauigkeit als float. Genauigkeit ~15–17 Dezimalstellen
				
					public class FloatVariables : MonoBehaviour
{
    public float speed = 5.523f;
    public double pi = 3.141592653589793;
}
				
			

Boolesche Datentypen

  • bool: Boolescher Wert (True/False).