Arrays
Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 41 von 85.
Ein Array enthält mehrere Werte desselben Typs hintereinander. Sein Typ hat eckige Klammern dahinter, und seine Werte stehen in geschweiften Klammern:
int[] scores = { 10, 25, 7 };Jeder Wert hat einen Index, also seine Position in der Reihe, und das Zählen beginnt bei 0: scores[0] ist 10, scores[1] ist 25 und scores[2] ist 7. scores.Length gibt an, wie viele Werte es gibt, hier also 3. Der Zugriff auf scores[3] bricht das Skript mit einer IndexOutOfRangeException ab: Es gibt keinen vierten Wert.
Eine for-Schleife bis Length durchläuft jeden Wert, unabhängig davon, was das Array enthält:
for (int i = 0; i < scores.Length; i++)
{
Debug.Log("Score " + i + ": " + scores[i]);
}Wenn du den Index nicht benötigst, ist foreach kürzer: foreach (int s in scores) { Debug.Log(s); } wird der Reihe nach einmal für jeden Wert ausgeführt.
Aufgabe
MittelErstelle mit einem Array und einer Schleife eine Skyline mit 7 Türmen.
- Füge
6fund2fam Ende vonheightshinzu:{ 2f, 5f, 3f, 1f, 4f, 6f, 2f }. - Ersetze die Zeile
PlaceTowerdurchfor (int i = 0; i < heights.Length; i++). - Rufe darin
PlaceTower(i * 1.5f - 4.5f, heights[i]);auf.
Klicke auf „Spielen“: Sieben Türme unterschiedlicher Höhe stehen in einer Reihe. Klicke dann auf „Prüfen“.
Probier es selbst
using UnityEngine;
public class Skyline : MonoBehaviour
{
void Start()
{
float[] heights = { 2f, 5f, 3f, 1f, 4f };
// Platziere für jede Höhe einen Turm.
PlaceTower(-4.5f, heights[0]);
}
void PlaceTower(float x, float height)
{
GameObject tower = GameObject.CreatePrimitive(PrimitiveType.Cube);
tower.name = "Tower";
tower.transform.position = new Vector3(x, height / 2, 0);
tower.transform.localScale = new Vector3(1, height, 1);
tower.GetComponent<Renderer>().material.color = new Color(0.35f, 0.45f, 0.7f);
}
}
Alle Lektionen in Unity-Scripting: Grundlagen
1C#-Grundlagen in Unity
Hallo, UnityVariablenDezimalzahlen brauchen ein fText in der KonsoleVariablen, die sich etwas merkenIf und ElseZahlen vergleichenRückblick: Münzsammler7Schleifen und Methoden
Wiederholen mit forSchleifen in SchleifenEine Methode schreibenMethoden mit RückgabewertArraysRückblick: Treppe10Dinge finden
Nach Namen suchenTagsNach Typ suchenReferenzen schlagen SuchenUnitys NullRückblick: nächste Münze13Projekt: Weiche den Blöcken aus
Der LäuferBlöcke vom Himmel2Bring es in Bewegung
Platziere den WürfelBewege ihn in jedem FrameDrehe ihn jede SekundeSteuere mit den TastenRückblick: Fahre den Würfel5Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist eine StrukturRückblick: Drohnenpilot8GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter11Prefabs und Erzeugen von Instanzen
Prefabs und InstantiateNach Zeitintervall erzeugenIn einem Raster erzeugenListen von ObjektenDas Neueste zurücknehmenZerstörenZufälliges ErzeugenRückblick: Feuerwerk14Abschließende Herausforderungen
MünzmagnetDie Straße überquerenStraßenverkehrTurmbauerLanden oder verfehlen3Der Inspector
Inspector-FelderSerializeFieldFließkommazahlen und MathfInspector-AttributeRückblick: Aufzug6Transformationen und Hierarchie
Eltern und KinderHisse die FlaggeSkalierungDinge anschauenAuf einen Punkt zubewegenRückblick: Mond in Umlaufbahn9Projekt: Fang den Stern
Der FängerEin fallender Stern12Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle LoggerÜbe selbstständig: Unity-Playground