Menu
CoddyTech

Récapitulatif : tourelle modulaire

Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 5 sur 50.

challenge icon

Défi

Facile

Construis 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 shells et une méthode publique bool Take(). S'il reste un obus, elle en utilise un et renvoie true. S'il n'en reste aucun, elle affiche le nom de l'objet et is empty, par exemple Turret2 is empty, et renvoie false.
  • Weapon : un composant abstrait qui a toujours un Ammo, avec un shellPrefab public (un GameObject), un float public cooldown (l'Inspector définit sa valeur à 1) et une méthode publique Pull(). Une pression pendant le délai de récupération ne fait rien et ne consomme aucun obus. Sinon, si Take() fournit un obus, le délai de récupération commence et Fire() 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ù offset est l'emplacement vu depuis la tourelle, par exemple new 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