🏠 Startseite

🚀 Unity-API-Methoden

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.

🧱 Objekte erstellen: Instantiate()

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.

🚶 Objekte bewegen: transform.Translate()

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);
    }
}

🎮 Spielersteuerung: nach links und rechts bewegen

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.

⚡ Auf 2D-Trigger reagieren

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.

👁 Objekte ausblenden: SetActive()

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);
    }
}

💥 Objekte zerstören: Destroy()

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.

📌 Zusammenfassung

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!