Utilisation des interfaces dans Unity3D

Imaginons un jeu de type FPS (First Person Shooter) où l’on peut provoquer des dégâts en tirant sur un ennemi mais aussi sur certains objets, le décors ou encore sur un véhicule, nous pourrions faire comme ceci :

Cette méthode va fonctionner mais elle contraignante, peu optimisée et assez « moche » il faut l’avouer.
Essayons de simplifier en essayant la méthode SendMessage() :

C’est plus propre mais l’appel de la méthode SendMessage() est coûteuse en ressource (et c’est dommage de l’utiliser pour une méthode aussi simple que d’envoyer une variable) et en plus on devra mettre à jour ce script autant de fois que l’on aura de classe avec la méthode Endommager().

Une des solution à ce problème serait d’utiliser une interface pour toutes les classes qui pourront être endommagées par la méthode Tirer().
Créons donc l’interface avec la méthode Endommager(), la propriété PointsDeVie et appellons la IEndommageable.

Une fois l’interface créée, nous allons l’implémentée dans la classe d’un objet qui peut être endommagé en y ajoutant la variable privée _pointsDeVie et une condition dans la méthode Endommager() qui détruira le gameobjet au moment où les points de vie arrivent à zéro.

Il ne reste plus qu’à modifier notre méthode Tirer() pour prendre en compte notre nouvelle interface.

Et voilà, pour endommager un nouvelle objet, il suffira d’ajouter et implémenter l’interface IEndommageable et il pourra être endommagé et détruit très facilement.

1 thought on “Utilisation des interfaces dans Unity3D

  1. source

    My partner and I stumbled over here from a different page and thought I may as well check things out.
    I like what I see so now i’m following you.

    Look forward to looking over your web page for a second time.

    Reply

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *