Récapitulatif : tourelle modulaire
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 5 sur 50.
Défi
FacileConstruis les deux tourelles du champ de tir à partir de composants. TurretControl.cs fait déjà pivoter chaque tourelle avec les flèches gauche et droite, et Shell.cs propulse un obus vers l’avant. La scène donne à Turret1 un Cannon et un Ammo avec 4 obus, et à Turret2 un TwinCannon et un Ammo avec 3 obus. Écris les composants :
- Ammo : un int public
shellset une méthode publiquebool Take(). S'il reste un obus, elle en utilise un et renvoietrue. S'il n'en reste aucun, elle affiche le nom de l'objet etis empty, par exempleTurret2 is empty, et renvoiefalse. - Weapon : un composant abstrait qui a toujours un Ammo, avec un
shellPrefabpublic (un GameObject), un float publiccooldown(l'Inspector définit sa valeur à 1) et une méthode publiquePull(). Une pression pendant le délai de récupération ne fait rien et ne consomme aucun obus. Sinon, siTake()fournit un obus, le délai de récupération commence etFire()s'exécute ; c'est une méthode abstraite que chaque arme écrit. - Cannon tire un obus depuis un point situé à 1 unité devant la tourelle. TwinCannon tire deux obus pour un seul obus de munitions, depuis des points situés à 0.4 à gauche et à 0.4 à droite de cet emplacement. Un obus apparaît à
transform.position + transform.rotation * offset, orienté comme la tourelle (transform.rotation), oùoffsetest l'emplacement vu depuis la tourelle, par exemplenew Vector3(0f, 0f, 1f). - Dans TurretControl, la touche Espace appuie sur la gâchette de l'arme dont dispose la tourelle.
Appuie sur Play, pivote et tire jusqu'à ce que les deux tourelles soient à court de munitions, puis clique sur Check.
Essayez vous-même
using UnityEngine;
// Ce que toutes les armes de tourelle ont en commun.
public class Weapon : MonoBehaviour
{
}
Toutes les leçons de Architecture de jeu dans Unity
1Des composants, pas des hiérarchies
Des composants simplesUn script de base pour les ennemisDes composants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaire4Données sérialisées
Classes sérialisablesListes dans l’inspecteurÉnumérations dans l’inspecteurRécapitulatif : table de butin7Machines à états
Les états sous forme de classesUne machine à étatsTransitionsLes cerveaux des ennemisRécapitulatif : états d’une porte10Projet : Survivant de l’arène
Le hérosTypes d’ennemis2Interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interaction5ScriptableObjects
Assets de donnéesStatistiques des armesParamètres partagésLes vagues sous forme de donnéesRécapitulatif : base de données d’objets