Variablen sind eine Möglichkeit, Informationen in Skripten zu speichern. Sie ermöglichen es dir, Werte zu definieren, die im Spiel verwendet werden können — zum Beispiel die Geschwindigkeit des Spielers, die Anzahl der Leben oder den Namen einer Figur. Dank Variablen können Objekte im Spiel sich Dinge merken und ihren Zustand ändern.
Jede Variable hat einen Namen — damit kannst du im Code auf den Wert
zugreifen. Variablennamen dürfen Buchstaben, Zahlen und Unterstriche
enthalten, aber nicht mit einer Zahl beginnen oder mit Schlüsselwörtern
des Sprachstandards übereinstimmen. In der Regel werden verständliche
Namen verwendet wie score
oder playerHealth
.
Variablen können innerhalb von Methoden deklariert werden (nur in diesem
Block sichtbar) oder auf Klassenebene — dann sind sie in allen Methoden
der Klasse verfügbar. Zum Beispiel kann die Variable
tmp
innerhalb von Start
für temporäre Daten
genutzt werden, während eine Klassenvariable dauerhafte Informationen
wie die Lebenspunkte des Spielers oder einen Objektverweis speichert.
Wichtig ist auch, wer auf die Variable zugreifen darf. Wenn
public
davor steht, kann der Wert direkt im Unity-Inspector
bearbeitet werden — das ist praktisch zum Anpassen, ohne den Code zu
ändern. Solche Variablen sind auch von anderen Skripten aus zugänglich.
Wenn private
verwendet wird (standardmäßig), ist die
Variable nur im eigenen Skript verfügbar.
💡 Wenn du keinen Zugriffsmodifikator angibst, gilt die Variable
standardmäßig als private
. Das bedeutet, sie ist nur
innerhalb dieses Skripts sichtbar. Dennoch ist es eine gute
Angewohnheit, private
explizit zu schreiben — der Code wird
dadurch klarer.
PS: Auch wenn wir ehrlich sind: Wer mag schon den Extraaufwand,
private
noch extra hinzuschreiben? 😊
Als Nächstes schauen wir uns die wichtigsten Variablentypen an, die in Unity am häufigsten verwendet werden.
int
wird verwendet, um ganze Zahlen zu speichern — also
ohne Nachkommastellen. Solche Variablen sind nützlich für
Punktestände, Lebensanzahl, Munition und andere numerische Werte.
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
// Ganzzahlige Variablen
public int score = 0;
public int lives = 3;
private int health = 10;
private int bullets = 30;
// ebenfalls private
int flowersInTheBag = 1;
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
int tmpHealth = health;
}
// Update wird einmal pro Frame aufgerufen
void Update()
{
}
}
float
wird verwendet, um Zahlen mit Dezimalstellen zu
speichern. Solche Variablen sind praktisch für Werte wie
Geschwindigkeit, Schaden, Timer oder Koordinaten. In Unity werden
float
-Variablen häufig für Bewegungsberechnungen sowie
bei Physik- und Animationssystemen eingesetzt.
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
// Gleitkommazahlen (Fließkommawerte)
public float speed = 5.5f;
float jumpHeight = 2.2f;
float damage = 1.75f;
float timeToExplode = 3.0f;
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
}
// Update wird einmal pro Frame aufgerufen
void Update()
{
float tmpSpeed = speed;
}
}
Eine bool
-Variable (Boolean) kann nur zwei Werte
speichern: true
(wahr) oder false
(falsch).
Im Speicher eines Computers wird das in der Regel als
1
und 0
dargestellt. Solche Variablen sind
hilfreich, um Zustände zu überprüfen – zum Beispiel, ob der Spieler
lebt, ob eine Taste gedrückt ist oder ob das Licht eingeschaltet ist.
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
// Boolesche Variablen
bool isAlive = true;
bool hasKey = false;
bool isGamePaused = false;
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
bool tmpAlive = isAlive;
}
// Update wird einmal pro Frame aufgerufen
void Update()
{
}
}
string
wird verwendet, um Text zu speichern – Wörter,
Sätze oder Zeichen. Solche Variablen sind nützlich für Spielernamen,
Nachrichten, Dialoge und alle anderen textbasierten Daten. Text wird
in doppelte Anführungszeichen gesetzt: "..."
.
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
// Zeichenketten (Strings)
string playerName = "Kiava";
string greeting = "Hallo, Spieler!";
string levelName = "Waldtal";
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
// Konsolenausgabe: Hallo, Spieler! Dein Name ist: Kiava
Debug.Log(greeting + " Dein Name ist: " + playerName);
}
// Update wird einmal pro Frame aufgerufen
void Update()
{
}
}
Vector3
ist ein Variablentyp, der Koordinaten im
dreidimensionalen Raum speichert — entlang der Achsen X
,
Y
und Z
. Unity arbeitet standardmäßig in 3D,
wobei X
links-rechts, Y
oben-unten und
Z
vorwärts-rückwärts bedeutet.
Selbst wenn du ein 2D-Spiel entwickelst, nutzt Unity intern eine
3D-Szene — dabei bleibt Z
häufig einfach null. Für solche
Fälle gibt es den Typ Vector2
, der nur X
und
Y
enthält.
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
// Vektor-Variablen
Vector3 startPosition = new Vector3(0f, 1f, 0f);
Vector3 jumpForce = new Vector3(0f, 5f, 0f);
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
transform.position = startPosition;
}
// Update wird einmal pro Frame aufgerufen
void Update()
{
}
}