Menu
CoddyTech

Rückblick: Modulares Geschütz

Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 5 von 64.

challenge icon

Aufgabe

Einfach

Baue die Waffe von Turret1. TurretControl und Cannon sind bereit.

  1. Schreibe in Ammo public bool Take(): Verbrauche eine Granate und gib true zurück, oder protokolliere name + " is empty" und gib false zurück.
  2. Mache Weapon abstrakt mit [RequireComponent(typeof(Ammo))] und Fire() zu protected abstract ohne Rumpf.
  3. Pull() tut während cooldown nichts; andernfalls starte, wenn Take() erfolgreich ist, die Abklingzeit neu und rufe Fire() auf.

Drücke „Spielen“ und feuere, bis die Munition aufgebraucht ist. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

// Was alle Turmwaffen gemeinsam haben.
public class Weapon : MonoBehaviour
{
    public GameObject shellPrefab;
    public float cooldown = 1f;

    public void Pull()
    {
        // Warte, bis der cooldown abgelaufen ist, nimm eine Granate aus dem Ammo und feuere dann
    }

    // Jede Waffe feuert auf ihre eigene Weise.
    protected virtual void Fire()
    {
    }

    // Eine Granate, die von dieser Position aus, vom Turm aus gesehen, in die Richtung fliegt, in die der Turm zeigt.
    protected void Launch(Vector3 offset)
    {
        Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
    }
}

Alle Lektionen in Spielarchitektur in Unity

Übe selbstständig: Unity-Playground