L’interface de jeu
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 46 sur 50.
Défi
MoyenUn HUD qui se contente d’écouter. Conservez tout ce qui vient des leçons précédentes. Le canevas, nommé HUD, comporte une barre de santé (HealthFill, une image remplie), HealthText et WaveText, ainsi que votre script HUD, avec hero, spawner, healthBar, healthText et waveText configurés dans l’Inspector. Le HUD ne demande jamais rien au héros ni au spawner : ils annoncent leurs changements avec des événements C#, et le HUD affiche ce qu’il entend.
Heroreçoitpublic event Action<int, int> HealthChanged, déclenché avec la santé etmaxHealthdansStart, ainsi que chaque fois qu’un coup ou un soin modifie la santé.WaveSpawnerreçoitpublic event Action<int> WaveStarted, déclenché avec le numéro de la vague lorsqu’une vague commence.HUDs’abonne aux deux dansOnEnableet se désabonne dansOnDisable. Lors deHealthChanged, il remplit la barre selon la proportion de santé restante et affiche la santé sous la formeHP 3/5. Lors deWaveStarted, il afficheWave 2. Il n’a pas deUpdate.
Déclenchez HealthChanged dans Start, et non dans Awake : le OnEnable de chaque objet s’exécute avant le Start de tous les objets, donc le HUD écoute déjà à ce moment-là. Appuyez sur Play et observez le HUD pendant que vous combattez, puis cliquez sur Check.
Essayez vous-même
using UnityEngine;
public class HUD : MonoBehaviour
{
// Une leçon ultérieure complétera ceci : la santé et la vague à l’écran.
}
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