Récapitulatif : tourelle modulaire
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 5 sur 64.
Défi
FacileConstruis l’arme de Turret1. TurretControl et Cannon sont prêts.
- Dans
Ammo, écrispublic bool Take(): utilise un obus et renvoietrue, ou consignename + " is empty"et renvoiefalse. - Rends
Weaponabstraite avec[RequireComponent(typeof(Ammo))], et déclareFire()protected abstractsans corps. Pull()ne fait rien pendant lecooldown; sinon, siTake()renvoie true, relance le délai de récupération et appelleFire().
Appuie sur « Jouer » et tire jusqu’à ce qu’il n’y ait plus de munitions. Puis appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
// Ce que toutes les armes de tourelle ont en commun.
public class Weapon : MonoBehaviour
{
public GameObject shellPrefab;
public float cooldown = 1f;
public void Pull()
{
// attendre la fin du cooldown, prendre un obus dans Ammo, puis tirer
}
// Chaque arme tire à sa manière.
protected virtual void Fire()
{
}
// Un obus lancé depuis cet endroit, par rapport à la tourelle, dans la direction vers laquelle elle pointe.
protected void Launch(Vector3 offset)
{
Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
}
}
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êtreEntraînez-vous par vous-même : Playground Unity