Tout endommager
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 43 sur 50.
Défi
MoyenÀ présent, le combat va dans les deux sens. Garde tout ce qui vient des leçons précédentes. Les ennemis ne sont plus identifiés par des tags : le coup trouve ce qu'il peut blesser via une interface, et les ennemis blessent le héros via la même interface.
IDamageabledéclare une méthode,void TakeDamage(int amount);.Enemyl'implémente. Il a les valeurshealth,damageetattackEvery, définies dans l'Inspector (un grunt a 2, 1 et 1 ; le dasher, 1, 2 et 1).TakeDamagesoustraitamountàhealthet détruit l'ennemi lorsque cette valeur atteint 0 ou moins. DansStart, conserve également l'IDamageabledu héros. À chaque image, lorsque le héros se trouve à moins de 1.2 unités, appelle sonTakeDamage(damage), au maximum une fois toutes lesattackEverysecondes.Herol'implémente, avecswingDamage(1),maxHealth(5) etsafeTime(1) définis dans l'Inspector, et une valeurhealthinitialisée àmaxHealthdansAwake. Un coup soustraitamount, enregistre la santé dans le journal sous la formeHero HP: 4, et protège le héros des coups suivants pendantsafeTimesecondes. À 0 point de santé, enregistreThe hero fallset désactive le script Hero (enabled = false). Un héros tombé ignore les coups.- Le coup ne vérifie plus les tags et ne détruit rien : il appelle
TakeDamage(swingDamage)sur tout ce qui est à portée et devant le héros et possède unIDamageable.
Appuie sur Play et combats, puis sur Check.
Essayez vous-même
// Une leçon ultérieure complétera ceci : tout ce qui peut subir des dégâts.
public interface IDamageable
{
}
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