Rückblick: Geschoss-Pool
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 49 von 64.
Pooling hält deaktivierte Objekte bereit, statt sie zu zerstören. Hier stammen die Geschosse des Panzers aus Unitys ObjectPool und werden nach jedem Schuss zurückgegeben.
Aufgabe
MittelLass den Panzer gepoolte Kugeln abfeuern.
- Erstelle in
TanksAwakeeinenObjectPool<Bullet>: beim Abrufen aktivieren, beim Freigeben deaktivieren und beim Zerstören vernichten,maxSize: 4. - Mit der Leertaste wird eine Kugel 1 Einheit vor dem Panzer erzeugt und ihr der Pool übergeben.
Bulletfliegt mitspeedin +z-Richtung. Nach jedem Schuss gibt sie sich nachlifeSekunden selbst frei oder beim Treffen einesTarget(rufeHit()auf).
Drücke „Spielen“ und schieße auf beide Ziele. Drücke dann „Prüfen“.
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
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Spielarchitektur in Unity
1Komponenten statt Hierarchien
Kleine KomponentenEin Basis-GegnerskriptAbstrakte KomponentenZusammenwirkende KomponentenRückblick: Modulares GeschützRückblick: Zwillingskanone4Serialisierte Daten
Serialisierbare KlassenListen im InspectorEnums im InspectorRückblick: Loot-TabelleRückblick: Beute auswürfeln2Schnittstellen in Unity
IDamageableSchnittstellen und TryGetComponentGetComponentsZusammenfassung: InteraktionstasteZusammenfassung: Nächstes in Reichweite5ScriptableObjects
Daten-AssetsWaffenwerteGemeinsame EinstellungenDen Wind speichernWellen als DatenRückblick: Item-DatenbankRückblick: Im Shop einkaufen8Wiederverwendbarer Code
ErweiterungsmethodenEin generisches SingletonGenerische HilfsmethodenRückblick: FindNearest3Ereignisse
C#-Ereignisse in UnityIn OnEnable abonnierenUnityEvent-FelderEreignisse steuern die UIRückblick: Erfolgs-PopupRückblick: Popup-Timer6Speichern mit JSON
JsonUtilityDas Spiel speichernLaden und StandardwerteRückblick: SpeicherplätzeSpeicherplatz auswählen und löschen9Objekt-Pooling
Warum Objekte poolenEin Pool mit einer WarteschlangeUnitys ObjectPoolRückblick: Geschoss-PoolÜbe selbstständig: Unity-Playground