Operationen in C# sind eine Möglichkeit, mit Daten zu arbeiten: Punkte hinzufügen, Geschwindigkeit vergleichen, prüfen, ob der Spieler den Boden berührt – und vieles mehr. Ohne sie wären Skripte nur Sammlungen von Variablen ohne jegliches Verhalten.
Erst durch Operationen wird der Code lebendig: Er reagiert auf Ereignisse, verändert Objektparameter und trifft Entscheidungen. Sie werden überall verwendet – vom einfachen Zählen bis hin zu komplexer Verhaltenslogik.
In diesem Abschnitt zeigen wir die wichtigsten Arten von Operationen, die du in Unity am häufigsten brauchst. Alles ist einfach erklärt – mit Beispielen und dem „Warum“ dahinter.
Operator | Bedeutung |
---|---|
= |
Weist einer Variablen einen Wert zu |
+= |
Addiert einen Wert zur Variablen und speichert das Ergebnis |
-= |
Subtrahiert einen Wert von der Variablen und speichert das Ergebnis |
*= |
Multipliziert die Variable und speichert das Ergebnis |
/= |
Teilt die Variable und speichert das Ergebnis |
%= |
Speichert den Rest einer Division |
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
int health = 10; // Gesundheit der Figur
int damage = 1; // Schaden, der verursacht wird
float speed = 5f; // Geschwindigkeit der Figur
string color; // Farbe des Objekts (noch nicht gesetzt)
int score = 0; // Punktestand des Spielers
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
// Gesundheit um den Schaden verringern (health = health - damage;)
health -= damage;
// Geschwindigkeit verdoppeln (speed = speed * 2;)
speed *= 2f;
// 10 Punkte hinzufügen (score = score + 10;)
score += 10;
// Geschwindigkeit halbieren (speed = speed / 2;)
speed /= 2f;
// Farbe zuweisen
color = "red";
}
// Update wird in jedem Frame aufgerufen
void Update()
{
// Eine Kopie der Farbe erstellen
string firstColor = color;
// 3 Punkte abziehen (Kurzschreibweise)
score -= 3;
// Gesundheit verdoppeln (Kurzschreibweise)
health *= 2;
}
}
Operator | Bedeutung |
---|---|
+ |
Addition |
- |
Subtraktion |
* |
Multiplikation |
/ |
Division |
% |
Rest bei Division (Modulo) |
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
int a = 10;
int b = 3;
float speed = 5.5f;
float time = 2f;
int remainder; // Variable für den Rest einer Division
int quotient; // Variable für das Ergebnis der Division
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
int sum = a + b; // Addition: 10 + 3 = 13
int diff = a - b; // Subtraktion: 10 - 3 = 7
int product = a * b; // Multiplikation: 10 * 3 = 30
quotient = a / b; // Ganzzahlige Division: 10 / 3 = 3
remainder = a % b; // Rest: 10 % 3 = 1
float speedPerSecond = speed * time; // Multiplikation mit float: 5.5 * 2 = 11.0
float averageSpeed = speed / time; // Division mit float: 5.5 / 2 = 2.75
}
// Update wird bei jedem Frame aufgerufen
void Update()
{
}
}
Operator | Bedeutung |
---|---|
== |
Prüft, ob zwei Werte gleich sind |
!= |
Prüft, ob zwei Werte ungleich sind |
> |
Größer als |
< |
Kleiner als |
>= |
Größer oder gleich |
<= |
Kleiner oder gleich |
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
int score = 10;
int highScore = 15;
float speed = 5f;
float maxSpeed = 5f;
bool isEqual;
bool isFaster;
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
isEqual = score == highScore; // false — Punktzahlen sind nicht gleich
isFaster = speed > maxSpeed; // false — nicht schneller
bool slowedDown = speed < maxSpeed; // false — Geschwindigkeit entspricht dem Maximum
bool atLimit = speed >= maxSpeed; // true — Geschwindigkeit ist gleich oder größer
}
// Update wird bei jedem Frame aufgerufen
void Update()
{
}
}
💡Vergleichsoperatoren werden meist in Bedingungen verwendet — zum Beispiel, um zu prüfen, ob der Spieler genügend Punkte hat oder ein Ziel erreicht wurde. Im nächsten Kapitel schauen wir uns Bedingungen genauer an.
Operator | Bedeutung |
---|---|
&& |
UND — ergibt true nur, wenn beide Ausdrücke true sind |
|| |
ODER — ergibt true, wenn mindestens einer der Ausdrücke true ist |
! |
NICHT — logische Negation (kehrt true in false um und umgekehrt) |
using UnityEngine;
public class CSharpScript : MonoBehaviour
{
int a = 5;
int b = 10;
int c = 5;
bool resultAnd;
bool resultOr;
bool resultNot;
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
// Prüfen: Sind a und c gleich? → true
// und gleichzeitig: Ist b größer als 5? → true
resultAnd = (a == c) && (b > 5); // true && true → true
// Prüfen: Ist a kleiner als 3? → false
// oder ist b gleich 10? → true
resultOr = (a < 3) || (b == 10); // false || true → true
// Ergebnis der Vergleichsoperation negieren
resultNot = !(a > b); // !(false) → true
}
// Update wird bei jedem Frame aufgerufen
void Update()
{
}
}
💡 Sei vorsichtig beim Arbeiten mit Variablen unterschiedlichen Typs
(zum Beispiel int
und float
). C# wandelt
manchmal einen Typ automatisch in einen anderen um, aber das kann in
manchen Fällen zu unerwarteten Ergebnissen oder sogar zu einem
Kompilierungsfehler führen. Es ist besser, sicherzustellen, dass beide
Werte denselben Typ haben – oder sie explizit umzuwandeln.