Was sind Unity-API-Methoden?
Das sind fertige „Befehle“ von Unity, mit denen du mit Spielobjekten
interagieren kannst: Sie erstellen, bewegen, aktivieren oder löschen.
Anstatt alles von Grund auf zu programmieren, rufst du einfach die
benötigte Methode auf – wie ein Zauberwort, das eine Aktion auslöst.
Im vorherigen Kapitel haben wir gelernt, wie man auf Komponenten eines Objekts zugreift. Jetzt gehen wir einen Schritt weiter – wir lassen Objekte Aktionen ausführen: sie erstellen, bewegen, aktivieren und zerstören.
Mit der Methode Instantiate()
kannst du Kopien von
vorbereiteten Objekten – sogenannten Prefabs – erstellen. Das ist die
Grundlage für Kugeln, Gegner, Münzen und andere dynamische Elemente.
Ein Prefab ist eine Objektvorlage. Es wird einmal erstellt und kann dann beliebig oft wiederverwendet werden.
using UnityEngine;
public class Spawner : MonoBehaviour
{
// Variable für das Prefab
public GameObject cubePrefab;
// Update wird einmal pro Frame aufgerufen
void Update()
{
// Wenn die Leertaste gedrückt wird
if (Input.GetKeyDown(KeyCode.Space))
{
// Neues Objekt aus dem Prefab erstellen
Instantiate(cubePrefab, new Vector3(0, 1, 0), Quaternion.identity);
}
}
}
💡 Mehr zu Prefabs erfährst du in separaten Tutorials – dort lernst du, wie man sie erstellt, konfiguriert und in Projekten verwendet.
Um ein Objekt im Raum zu verschieben, benutzt man die Methode
Translate()
. Sie verschiebt das Objekt um eine bestimmte
Distanz.
Time.deltaTime
sorgt dafür, dass die Bewegung flüssig und
unabhängig von der Bildrate ist.
using UnityEngine;
public class Mover : MonoBehaviour
{
// Bewegungsgeschwindigkeit
public float speed = 3f;
// Update wird einmal pro Frame aufgerufen
void Update()
{
// Objekt nach rechts bewegen mit der Geschwindigkeit 'speed'
transform.Translate(Vector3.right * speed * Time.deltaTime);
}
}
Jetzt fügen wir die wichtigste Funktion hinzu – die Steuerung. Wir
bewegen das Objekt mit den Tasten A/D oder den Pfeiltasten ← →.
Translate()
eignet sich perfekt dafür.
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// Bewegungsgeschwindigkeit
public float speed = 5f;
// Update wird einmal pro Frame aufgerufen
void Update()
{
// Richtung von den Tasten (A/D oder Pfeile) holen
float input = Input.GetAxis("Horizontal");
// Objekt entlang der X-Achse bewegen
transform.Translate(Vector3.right * input * speed * Time.deltaTime);
}
}
💡 Input.GetAxis("Horizontal")
gibt -1 zurück, wenn links
gedrückt wird (A oder ←), +1 wenn rechts gedrückt wird (D oder →) und
0, wenn nichts gedrückt ist.
Manchmal soll ein Objekt auf eine Kollision reagieren – z. B. eine
Münze einsammeln oder ein Portal aktivieren. Dafür gibt es in Unity
die Methode OnTriggerEnter2D
.
Sie wird automatisch aufgerufen, wenn das Objekt einen Collider mit aktiviertem Is Trigger hat und mit einem anderen Objekt kollidiert, das einen Rigidbody2D besitzt.
using UnityEngine;
public class TriggerExample : MonoBehaviour
{
// Wird aufgerufen, wenn das Objekt einen Trigger betritt
void OnTriggerEnter2D(Collider2D other)
{
// Name des Objekts ausgeben, mit dem die Kollision erfolgte
Debug.Log("In Trigger eingetreten mit: " + other.name);
}
}
💡 Stelle sicher, dass dieses Objekt einen
BoxCollider2D
oder anderen Collider mit aktiviertem
Is Trigger
hat und das andere Objekt einen
Rigidbody2D
.
Wenn du ein Objekt vorübergehend aus der Szene entfernen möchtest,
ohne es zu zerstören – benutze SetActive(false)
.
using UnityEngine;
public class Hider : MonoBehaviour
{
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
// Objekt nach 3 Sekunden deaktivieren
Invoke("Disable", 3f);
}
// Methode, die das Objekt deaktiviert
void Disable()
{
gameObject.SetActive(false);
}
}
Um ein Objekt vollständig aus der Szene zu entfernen, benutzt man
Destroy()
. Das ist nützlich für temporäre Objekte:
Kugeln, Effekte, Gegner.
using UnityEngine;
public class SelfDestruct : MonoBehaviour
{
// Start wird einmal beim Start des Objekts aufgerufen
void Start()
{
// Objekt nach 5 Sekunden zerstören
Destroy(gameObject, 5f);
}
}
💡 Du kannst Destroy()
auch ohne zweiten Parameter
aufrufen, um das Objekt sofort zu entfernen.
Heute haben wir uns einige grundlegende Unity-API-Methoden angesehen – sie helfen dir, Objekte zu erstellen, zu bewegen, zu verstecken und zu löschen. Diese Aktionen kommen in fast jedem Spiel vor.
Das war jedoch nur die Einführung. Unity bietet Dutzende weitere Methoden, die wir nach und nach in thematischen Tutorials behandeln werden – dort, wo sie wirklich gebraucht werden.
Damit bist du bereit, von den Grundlagen zur Erstellung echter Spielmechaniken überzugehen. Wir sehen uns im ersten Projekt!