Contenu du cours
Jeu de Combat dans Unity
Jeu de Combat dans Unity
Interaction du Joueur avec les Objets
Interfaces
Une interface est comme un contrat qui définit un ensemble de méthodes et de propriétés qu'une classe doit implémenter. Elle vous permet de spécifier quelles fonctionnalités une classe doit avoir sans fournir les détails de l'implémentation.
Exemple
Disons que vous créez un jeu dans Unity et que vous souhaitez créer différents types d'armes comme des épées, des fusils et des arcs. Vous pourriez créer une interface appelée IWeapon
qui décrit les actions de base que toute arme devrait pouvoir effectuer, telles que Attack()
et Reload()
.
Désormais, toute classe qui souhaite être considérée comme une arme dans votre jeu doit implémenter cette interface. Par exemple, vous pourriez avoir une classe Sword
ou une classe Gun
.
En utilisant des interfaces, vous pouvez vous assurer que toutes vos armes ont la même fonctionnalité de base (Attack()
et Reload()
), mais chacune peut avoir sa propre implémentation unique. Cela rend votre code plus modulaire et plus facile à gérer, surtout à mesure que votre jeu devient plus complexe.
Ceci est l'interface que nous avons utilisée dans notre jeu pour marquer les ennemis comme des objets pouvant être attaqués.
TryGetComponent
Points Clés
raycastHit
: Cela fait référence au résultat d'un impact de raycast. Lorsque vous lancez un rayon dans Unity, vous obtenez des informations sur quel objet;.TryGetComponent(out IGetAttacked getAttacked)
: Cette méthode tente de récupérer un composant spécifique à partir du transform duGameObject
. Le mot-cléout
est utilisé pour assigner le composant récupéré à la variablegetAttacked
, si elle réussit. Sinon, elle ignorera tout ce qui est sous ceif
;IGetAttacked
: C'est le type d'interface que le code essaie de récupérer à partir duGameObject
. Il spécifie que leGameObject
doit avoir un composant qui implémente l'interfaceIGetAttacked
.
Si le GameObject
touché par le raycast a un composant qui implémente l'interface IGetAttacked
, la variable getAttacked
contiendra une référence à ce composant après l'exécution de cette ligne. Sinon, getAttacked
se verra attribuer une valeur nulle.
Merci pour vos commentaires !