Menu
CoddyTech

Rückblick: Geschoss-Pool

Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 40 von 50.

challenge icon

Aufgabe

Mittel

Zielübung. Mit den Pfeiltasten bewegt sich der Panzer nach links und rechts (bereit), und die beiden roten Ziele haben ein Target-Skript mit Hit() (bereit). Lass den Panzer Kugeln aus dem Pool abfeuern:

  • Behalte in Tank.cs einen ObjectPool<Bullet>, der Kugeln aus bulletPrefab erstellt, sie beim Entnehmen aktiviert und bei der Rückgabe deaktiviert, die freigegebenen Kugeln zerstört und höchstens 4 Kugeln als Reserve behält.
  • Mit der Leertaste wird eine Kugel aus dem Pool genommen und 1 Einheit vor dem Panzer gestartet.
  • In Bullet.cs fliegt eine Kugel mit speed (15) nach vorne (+z). Wenn sie etwas mit einem Target-Skript trifft (der Collider der Kugel ist ein Trigger), ruft sie Hit() des Ziels auf und kehrt sofort in den Pool zurück. Eine Kugel, die nichts trifft, kehrt nach life (1) Sekunde zurück.
  • Jeder Schuss erhält die volle Lebensdauer einer Kugel, auch eine wiederverwendete, und eine Kugel kehrt pro Schuss genau einmal in den Pool zurück.

Drücke Play, schieße auf beide Ziele und klicke dann auf Check.

Probier es selbst

using UnityEngine;
using UnityEngine.Pool;

public class Bullet : MonoBehaviour
{
    public float speed = 15f;
    public float life = 1f;

    // Fliege vorwärts; kehre zum Pool zurück, wenn du ein Target triffst oder nach life Sekunden
}

Alle Lektionen in Spielarchitektur in Unity