Menu
CoddyTech

Wegpunkte

Lektion 1 von 25 im Kurs Unity-Spiel: Tower Defense von Coddy.

In diesem Kurs entwickelst du ein Tower-Defense-Spiel: Gegner laufen in Wellen einen Pfad entlang auf deine Basis zu, und Türme, die du neben dem Pfad errichtest, halten sie auf. Jede Lektion fügt ein neues Feature hinzu. Drücke „Spielen“, um es auszuprobieren, und „Prüfen“, um es bewerten zu lassen. Alle zwölf Skripte sind von Anfang an im Projekt; die meisten sind kurze Platzhalter, die in späteren Lektionen vervollständigt werden, und EnemyData wird für Lektion 2 bereitgestellt.

Der Pfad besteht aus acht Wegpunkten, von WP0 am Spawn bis WP7 an der Basis, im waypoints-Array des Grunts. Der Grunt speichert den Index des Wegpunkts, auf den er zuläuft, und bewegt sich auf ihn zu. Vector3.MoveTowards bewegt sich nie über sein Ziel hinaus, sodass der Grunt genau auf dem Wegpunkt ankommt und == erkennen kann, dass er angekommen ist:

Vector3 target = waypoints[3].position;
transform.position = Vector3.MoveTowards(transform.position, target, 5f * Time.deltaTime);
if (transform.position == target)
{
    // angekommen: zum nächsten Wegpunkt weitergehen
}

Nach dem letzten Wegpunkt entspricht der Index waypoints.Length, und das Auslesen des Arrays an dieser Stelle löst einen Fehler aus. Prüfe deshalb den Index, bevor du ihn verwendest.

challenge icon

Aufgabe

Einfach

Lass den Grunt den Pfad von Wegpunkt zu Wegpunkt entlanglaufen.

  1. Füge in Enemy private int next = 1; hinzu (der Grunt startet bei WP0).
  2. Gib in Update den Ablauf zurück, wenn next >= waypoints.Length.
  3. Bewege dich mit Vector3.MoveTowards bei speed * Time.deltaTime auf waypoints[next].position zu; wenn der Grunt dort ankommt, next++.

Drücke „Spielen“: Der Grunt läuft um jede Ecke und hält an der Basis an. Danach „Prüfen“.

Probier es selbst

using UnityEngine;

public class Enemy : MonoBehaviour
{
    public float speed = 2f;
    public Transform[] waypoints;

    void Update()
    {
        // Bewege dich hier der Reihe nach von einem Wegpunkt zum nächsten.
    }
}

Alle Lektionen in Unity-Spiel: Tower Defense

Übe selbstständig: Unity-Playground