Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Interaction du Joueur avec les Objets | Comportement du Joueur
Jeu de Combat dans Unity
course content

Contenu du cours

Jeu de Combat dans Unity

Jeu de Combat dans Unity

1. Système d'Animation Unity
2. Comportement du Joueur
3. Comportement de l'Ennemi
4. Améliorer le Jeu
5. Améliorer le Jeu Flappy Bird

book
Interaction du Joueur avec les Objets

Interfaces

Une interface est semblable à un contrat qui définit un ensemble de méthodes et de propriétés qu'une classe doit implémenter. Elle permet de spécifier quelles fonctionnalités une classe doit posséder sans fournir les détails de l'implémentation.

Exemple

Supposons que vous développez un jeu dans Unity et que vous souhaitez créer différents types d'armes comme des épées, des pistolets et des arcs. Vous pourriez créer une interface appelée IWeapon qui définit les actions de base que toute arme doit 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 garantir que toutes vos armes disposent des mêmes fonctionnalités de base (Attack() et Reload()), tout en permettant à chacune d’avoir sa propre implémentation unique. Cela rend votre code plus modulaire et plus facile à gérer, surtout à mesure que la complexité de votre jeu augmente.

Voici l’interface que nous avons utilisée dans notre jeu pour indiquer que les ennemis sont des objets pouvant être attaqués.

public interface IGetAttacked
{
    public void GetAttacked(int damage);
}

TryGetComponent

if (rayCastHit.transform.TryGetComponent(out IGetAttacked getAttacked))
{
    getAttacked.GetAttacked(damage);
    attackEffect.transform.position = rayCastHit.point;
    attackEffect.Play();
    isAttacking = false;
}

Points clés

  • raycastHit : Résultat d'une détection par rayon. Lorsqu'un rayon est lancé dans Unity, il fournit des informations sur l'objet touché ;
  • .TryGetComponent(out IGetAttacked getAttacked) : Méthode tentant d'obtenir un composant spécifique à partir du transform du GameObject. Le mot-clé out permet d'assigner le composant récupéré à la variable getAttacked, si la récupération réussit. Sinon, tout ce qui se trouve sous ce if est ignoré ;
  • IGetAttacked : Type d'interface que le code tente de récupérer depuis le GameObject. Cela indique que le GameObject doit posséder un composant implémentant l'interface IGetAttacked.

Si le GameObject touché par le raycast possède 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 recevra la valeur null.

question mark

Quel est le but de la méthode TryGetComponent dans Unity ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Jeu de Combat dans Unity

Jeu de Combat dans Unity

1. Système d'Animation Unity
2. Comportement du Joueur
3. Comportement de l'Ennemi
4. Améliorer le Jeu
5. Améliorer le Jeu Flappy Bird

book
Interaction du Joueur avec les Objets

Interfaces

Une interface est semblable à un contrat qui définit un ensemble de méthodes et de propriétés qu'une classe doit implémenter. Elle permet de spécifier quelles fonctionnalités une classe doit posséder sans fournir les détails de l'implémentation.

Exemple

Supposons que vous développez un jeu dans Unity et que vous souhaitez créer différents types d'armes comme des épées, des pistolets et des arcs. Vous pourriez créer une interface appelée IWeapon qui définit les actions de base que toute arme doit 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 garantir que toutes vos armes disposent des mêmes fonctionnalités de base (Attack() et Reload()), tout en permettant à chacune d’avoir sa propre implémentation unique. Cela rend votre code plus modulaire et plus facile à gérer, surtout à mesure que la complexité de votre jeu augmente.

Voici l’interface que nous avons utilisée dans notre jeu pour indiquer que les ennemis sont des objets pouvant être attaqués.

public interface IGetAttacked
{
    public void GetAttacked(int damage);
}

TryGetComponent

if (rayCastHit.transform.TryGetComponent(out IGetAttacked getAttacked))
{
    getAttacked.GetAttacked(damage);
    attackEffect.transform.position = rayCastHit.point;
    attackEffect.Play();
    isAttacking = false;
}

Points clés

  • raycastHit : Résultat d'une détection par rayon. Lorsqu'un rayon est lancé dans Unity, il fournit des informations sur l'objet touché ;
  • .TryGetComponent(out IGetAttacked getAttacked) : Méthode tentant d'obtenir un composant spécifique à partir du transform du GameObject. Le mot-clé out permet d'assigner le composant récupéré à la variable getAttacked, si la récupération réussit. Sinon, tout ce qui se trouve sous ce if est ignoré ;
  • IGetAttacked : Type d'interface que le code tente de récupérer depuis le GameObject. Cela indique que le GameObject doit posséder un composant implémentant l'interface IGetAttacked.

Si le GameObject touché par le raycast possède 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 recevra la valeur null.

question mark

Quel est le but de la méthode TryGetComponent dans Unity ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5
some-alt