Menu
CoddyTech

Eine Komponente hinzufügen

Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 32 von 67.

gameObject.AddComponent<T>() fügt dem Objekt während des Spiels eine neue Komponente vom Typ T hinzu und gibt sie zurück, damit du sie in den nächsten Zeilen einrichten kannst. Sie gehört zum GameObject, auf das ein Skript über gameObject zugreift. Dieses Lagerfeuer spendet sich selbst ein warmes orangefarbenes Licht, wenn das Spiel startet:

void Start()
{
    Light glow = gameObject.AddComponent<Light>();
    glow.color = new Color(1f, 0.5f, 0f);
    glow.intensity = 2f;
}

Eine auf diese Weise hinzugefügte Komponente bleibt bestehen, solange das Spiel läuft. Beende den Play-Modus, und das Objekt ist wieder so, wie es in der Szene gespeichert wurde – ohne Light. Auch deine eigenen Skripte sind Komponenten: gameObject.AddComponent<Spinner>() fügt einen Spinner hinzu, der wie jedes andere Skript ausgeführt wird.

Die meisten Komponenten können mehr als einmal hinzugefügt werden, manche jedoch nicht: Ein Objekt kann höchstens einen Rigidbody enthalten, und wenn du einen zweiten anforderst, erscheint stattdessen ein Fehler in der Console. Code, der mehr als einmal ausgeführt werden kann, prüft vor dem Hinzufügen, ob das Objekt die Komponente bereits hat.

challenge icon

Aufgabe

Mittel

Die Kokosnuss hängt in der Palme. Durch Drücken der Leertaste wird der Baum geschüttelt: Die Kokosnuss erhält ein Rigidbody, sodass die Schwerkraft sie erfasst und sie in den Sand fällt.

  • Vor dem ersten Drücken der Leertaste hängt die Kokosnuss an ihrer Stelle.
  • Die Leertaste fügt nur dann ein Rigidbody hinzu, wenn die Kokosnuss noch keines hat, sodass spätere Tastendrücke nichts bewirken.

Drücke Play, drücke die Leertaste und dann Check.

Probier es selbst

using UnityEngine;

public class CoconutDrop : MonoBehaviour
{
    void Update()
    {
        // Space: Füge einen Rigidbody hinzu, falls die Kokosnuss noch keinen hat
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen des Scripting in Unity