Eine Komponente abrufen
Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 30 von 67.
Ein GameObject ist ein Container für Komponenten: einen Transform, einen MeshRenderer, der es zeichnet, einen Collider, deine Skripte. GetComponent<Renderer>() gibt die Komponente dieses Typs auf demselben Objekt zurück, und über sie ändert dein Skript, was diese Komponente tut. transform ist eine vorgefertigte Abkürzung für den Transform; alle anderen Komponenten rufst du selbst ab.
Dieser Würfel wird rot, wenn die Leertaste gedrückt wird. Er sucht seinen Renderer einmal in Start() und speichert ihn in einem Feld: GetComponent durchsucht bei jedem Aufruf die Komponenten des Objekts, und das Ergebnis ändert sich nicht.
Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rend.material.color = Color.red;
}
}rend.material gibt diesem Objekt bei der ersten Verwendung eine eigene Kopie seines Materials, sodass andere Objekte, die dasselbe Material verwenden, ihre Farbe behalten. Unity stellt dir einige benannte Farben zur Verfügung, zum Beispiel Color.red, Color.green, Color.blue, Color.yellow und Color.gray; mit new Color(r, g, b) erstellst du jede andere Farbe, wobei jeder Anteil zwischen 0 und 1 liegt.
Aufgabe
MittelDie Signalleuchte beginnt mit Rot. Jeder Klick schaltet sie zur nächsten Farbe weiter, in dieser Reihenfolge: Rot, Gelb, Grün, dann wieder Rot und so weiter.
Rufe den Renderer einmal in Start() ab und speichere ihn in einem Feld. Verwende Color.red, Color.yellow und Color.green.
Drücke Play, klicke einige Male auf das Spiel und drücke dann Check.
Probier es selbst
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// Bei jedem Klick: Rot, dann Gelb, dann Grün und dann wieder Rot
}
}
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
1Dein erstes Skript
Hallo, UnityPlatziere den WürfelBewege dich in jedem FrameDrehe dich jede SekundeSteuere mit den TastenRückblick: Steuere den Würfel4Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist ein StructRückblick: Drohnenpilot7Projekt: Fang den Stern
Der FängerEin fallender Stern10Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle Logger5Transformationen und Hierarchie
Eltern und KinderSkalierungDinge ansehenAuf einen Punkt zubewegenRückblick: Umlaufender Mond8Dinge finden
Nach Namen findenTagsNach Typ findenReferenzen schlagen FindUnitys NullRückblick: Nächste Münze11Projekt: Weiche den Blöcken aus
Der LäuferFallende Blöcke6GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter