Récapitulatif : pool de projectiles
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 49 sur 64.
La mise en réserve garde les objets désactivés à disposition au lieu de les détruire. Ici, les projectiles du tank proviennent de ObjectPool de Unity et y retournent après chaque tir.
Défi
MoyenFais tirer au tank des balles mises en pool.
- Dans
AwakedeTank, crée unObjectPool<Bullet>: active les balles lorsqu’elles sont récupérées, désactive-les lorsqu’elles sont relâchées, détruis-les lorsqu’elles sont supprimées, et définismaxSize: 4. - La barre d’espace récupère une balle située 1 unité devant le tank et lui transmet le pool.
Bulletavance vers +z à laspeedindiquée ; il se relâchelifesecondes après chaque tir, ou lorsqu’il touche unTarget(appelleHit()).
Appuie sur « Jouer » et tire sur les deux cibles. Puis appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
using UnityEngine.Pool;
public class Bullet : MonoBehaviour
{
public float speed = 15f;
public float life = 1f;
// Avance ; retourne dans le pool quand il touche une Target, ou après life secondes
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Architecture de jeu dans Unity
1Des composants, pas des hiérarchies
De petits composantsUn script de base pour les ennemisComposants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaireRécapitulatif : canon double4Données sérialisées
Classes sérialisablesListes dans l’InspecteurÉnumérations dans l’InspecteurRécapitulatif : table de butinRécapitulatif : tirer le butin2Les interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interactionLe plus proche à portée5ScriptableObjects
Ressources de donnéesStatistiques des armesParamètres partagésSauver le ventLes vagues comme donnéesRécapitulatif : base de données des objetsRécapitulatif : acheter dans la boutique3Événements
Les événements C# dans UnityS’abonner dans OnEnableChamps UnityEventLes événements pilotent l’interfaceRécapitulatif : fenêtre de succèsRécapitulatif : minuteur de la fenêtre6Sauvegarder avec JSON
JsonUtilitySauvegarder la partieCharger et valeurs par défautRécapitulatif : emplacements de sauvegardeChoisir et supprimer un emplacement9Réutilisation des objets
Pourquoi mettre les objets en poolUn pool avec une fileObjectPool de UnityRécapitulatif : pool de projectilesEntraînez-vous par vous-même : Playground Unity