Bienvenue, mes développeurs de jeux préférés.
Comme vous pouvez le voir maintenant, nous avons trois ennemis, x2, très effrayants.
Permettez-moi de maximiser le jeu.
Et nous avons tort non seulement d'avoir des portes,
mais aussi des ennemis,
qui sont trois squelettes.
Ces squelettes sont les gars que nous devons tuer pour ouvrir les portes.
Mais pour l'instant, ce que nous faisons, c'est qu'on les attrape en fait à l'aide d'une liste.
J'ai donc maximisé le jeu,
je n'aurais pas dû le faire.
Je vais maintenant me présenter à nouveau.
Si je regarde dans les pièces et aujourd'hui maintenant,
je vois que j'ai les ennemis ici et que j'ai les deux portes, mais la
magie c'est que nous les avons attrapés sans les ajouter manuellement.
Vous pouvez voir que cela se produit automatiquement en utilisant des filtres de contact,
en utilisant des listes, en utilisant beaucoup de choses intéressantes.
Donc, ne perdons plus de temps et commençons.
Oh, l'affaire.
Maintenant, les portes se ferment.
Il est temps de commencer à les ouvrir.
Comment ouvrir les portes ?
La façon dont nous leur permettrons de s'ouvrir c'est quand nous nous débarrassons
de tous les ennemis que nous avons sur la carte actuelle.
Ce que nous allons donc faire, c'est que nous allons créer
une variable qui veillera tout d'abord à ce que
toutes les portes s'ouvrent lorsque tous les ennemis sont tués.
Peut-être que le niveau que vous avez créé n'a pas à tuer tous les ennemis.
C'est peut-être un niveau pour la boutique,
par exemple, comme nous l'avions fait à Hadès.
C'est pourquoi nous allons ajouter cette variable.
Commençons donc.
Ici, nous avons le contrôleur ennemi.
Comme vous pouvez le constater, j'ai tout organisé.
Quoi qu'il en soit, ne perdons pas de temps car dans le mauvais gestionnaire,
nous allons ajouter le volume ici.
Et c'est pour ouvrir ou ouvrir des portes.
Quand et moi sommes secs.
Vous y allez. Nous sauvegardons cela.
Nous retournerons ici et nous veillerons à ce que cette
pièce soit véritablement ouverte lorsque les ennemis meurent.
Ok, super.
La prochaine chose que nous devons faire est d'obtenir une référence de tous les ennemis.
Eh bien, comment pouvons-nous faire cela ?
Nous aurons évidemment plusieurs ennemis.
Cela signifie que nous devrons probablement obtenir une sorte de tableau.
Mais pourquoi ne voulons-nous pas utiliser un tableau ?
Parce que lorsque nous avons un tableau,
comment vais-je le démontrer ?
Par exemple, vous pouvez voir ici,
si je clique sur l'un de ces tableaux ici,
et si j'utilise le moins,
cela retirera simplement la porte de notre jeu.
Il ne supprime pas réellement l'ensemble de l'élément.
Nous avons donc encore deux portes ici,
mais l'une d'elles a disparu.
Maintenant, quand il s'agit de la porte,
ce n'est pas un problème énorme, car nous savons déjà que nous n'aurons que deux portes.
Nous n'allons pas les compter.
Nous n'allons pas nous en débarrasser.
Ils sont là, ils sont statiques,
ils ne bougent pas.
Mais quand il s'agit des ennemis,
ce que nous voulons, c'est que nous voulons obtenir une référence à tous les ennemis de la carte.
Et alors que nous les tuons lentement un par un,
nous allons les compter.
Et si nous constatons qu'ils ont tous disparu,
nous ouvrirons la porte.
Et cela causera un problème lorsque nous utilisons un tarif.
C'est pourquoi nous allons utiliser quelque chose d'un peu mieux,
qui est la liste.
Une liste ressemble donc à un tableau.
Il représente une liste d'objets fortement typée.
Et au fait, il s'agit des documentations de Microsoft pour le C-sharp,
pas de la documentation Unity,
mais c'est à peu près la même chose.
Vous pouvez trouver des exemples,
trouver ce que vous voulez et énumérer
est génial à leur sujet car ils sont bien meilleurs pour le tri,
ils sont beaucoup mieux pour le tri et la manipulation.
Donc ce que nous pouvons faire, c'est que lorsque chaque ennemi meurt,
nous pouvons le retirer de la liste sans se soucier d'aucune sorte d'erreur,
la liste s'adaptera elle-même.
Pour ce qui est expliqué, je vais vous laisser trouver la liste,
la classe, trouver la documentation à ce sujet.
Et je vais vous lancer le défi à nouveau, comme le dernier défi que je connaisse.
C'est tellement ennuyeux quand vous devez faire quelque chose par vous-même sans voir ce que j'ai fait en premier.
Mais il est temps de grandir,
devenir de vrais développeurs de jeux,
chercher des problèmes et de faire des choses que nous n'avons jamais rencontrées auparavant.
C'est la beauté de ça.
Consultez la documentation et découvrez comment instancier un nouveau.
Créons une liste de champs sérialisés.
Nous voulons voir la liste dans l'inspecteur.
Plus tard, nous devons évidemment le rendre privé,
mais nous voulons vérifier si tout fonctionne.
Et enfin, le type de la liste sera un collisionneur pour D. Alors trouvez la documentation,
parcourez-la, créez une nouvelle liste,
qui est la liste des ennemis de type collider 2D.
Je vous verrai juste un peu.
Bon, bon retour.
Alors, comment êtes-vous arrivé là-dessus ?
J'espère que vous n'êtes pas trop en colère contre moi.
Quoi qu'il en soit, allons de l'avant et créons un champ sérialisé.
Et ça va être une liste.
Et comme vous pouvez le voir, eh bien,
vous l'avez vu dans l'exemple,
vérifions simplement et voyons comment il est créé.
Vous pouvez donc voir qu'il a besoin des collections de points systèmes,
qui se trouvent ici.
Oups, désolé, ce qui est ici qui nous permet de créer des listes.
Allons voir ce que nous avons ici.
Disons que je fais défiler vers le bas,
comment créer des listes, s'il vous plaît ?
Comment créer une liste ?
Où est-il ? Où est-il ?
Bon, donc tu y vas.
C'est ainsi que vous créez une liste.
Nous devons donc saisir le type de ceci que nous avons à l'intérieur de ces deux contre nature,
ce qu'on appelle et dire que c'est égal à une nouvelle liste.
Donc, ici,
le type collider 2D,
je vous l'ai déjà dit.
Et vous verrez pourquoi il s'agit d'un collisionneur 2D en un peu.
Donc les ennemis, et c'est égal à
une nouvelle liste de Collider aux ennemis et nous la fermons avec ces deux parenthèses.
Maintenant, évidemment, il vous a fallu un peu plus de temps pour tout trouver,
peut-être parcourir la documentation, mais c'est bien.
Maintenant, vous pouvez dire que fièrement cette chaussure parcourt
la documentation que vous avez découvert par vous-même comment les listes sont créées,
ce qui vous donnera beaucoup plus de confiance au fur et
à mesure que vous progressez dans votre parcours de développement de jeu.
Je ne serai pas toujours là.
Parfois, je ne le serai pas parfois, je n'ai pas le temps de vous répondre.
C'est donc un excellent exercice.
J'adore ces exercices.
J'espère que vous n'êtes pas trop en colère.
Continuons. Que devons-nous faire maintenant ?
Nous devons aller dans les salles ici
et nous allons créer un nouvel objet de jeu vide,
qui sera les ennemis.
Et cela retiendra tous les ennemis que nous avons.
L'ennemi squelette ici même que C a-t-il besoin de quelque chose ?
Également le stand de tir.
Rendons-le un peu plus petit, donc nous ne voulons pas que les ennemis nous tirent dessus.
Nous savons que tout fonctionne.
C'est bien et nous allons faire leur santé.
Mais plus petit, peut-être trois.
Il prend donc trois coups sûrs, applique les changements.
Et je vais le déplacer vers les ennemis.
Je vais aussi aller dans les Prefabs et ajouter quelques ennemis.
Et ici, donc l'ennemi,
le squelette va en ajouter un autre.
Ici. Un autre, tellement génial.
Maintenant, nous avons trois squelettes qui vont chasser et tirer sur le joueur.
Nous allons sauver cela.
Ok, super.
Maintenant, la prochaine chose que nous voulons faire, c'est que nous voulons obtenir le,
une référence à tous ces ennemis et pouvoir les compter.
Maintenant, ce que nous pouvons faire, évidemment,
comme nous pouvons aller de l'avant,
sélectionnez ces trois éléments et faites-les glisser ici et les définir manuellement.
Ce serait bien,
ça fonctionnerait.
Mais nous voulons avoir un moyen plus dynamique d'accéder à ces ennemis.
L'une de ces manières dynamiques consiste à utiliser des objets de type,
où nous parcourons tous les objets et nous les trouvons tous.
C'est également une bonne idée,
mais elle est très imposante pour le système.
Vous devez parcourir tous les éléments,
commençant par la caméra et vers le bas jusqu'à ce que vous trouviez
tous ces ennemis de type ou d'objet de type.
Nous n'allons pas le faire.
Au lieu de cela, nous allons faire quelque chose de beaucoup plus compliqué au début,
mais beaucoup plus efficace et moins imposant pour le système.
Et c'est une excellente façon d'apprendre quelque chose de très nouveau.
Et nous avons déjà, disons, l'
infrastructure pour celle établie par le fait d'avoir
les collisionneurs des ennemis et le collisionneur de la pièce.
De quoi est-ce que je parle ?
Vous venez de le voir.
C'est le collisionneur à chevauchement 2D.
Qu'est-ce que cela fait ?
Il prend un filtre de contact,
que nous allons examiner dans un peu.
Et il nous donne les résultats de tous les objets 2D du collisionneur.
Un filtre de contact utilisé pour filtrer les résultats différemment.
Que voulons-nous dire par là ?
Nous voulons dire que nous avons le collisionneur de la pièce juste ici.
Nous avons donc le collisionneur,
nous avons tous les objets à l'intérieur.
Nous ne voulons pas attraper le joueur,
par exemple, nous ne nous intéressons qu'aux squelettes.
Nous devons donc ajouter ce filtre de contact qui comprendra comment il est utilisé.
Mais continuons.
Donc le filtre de contact et le résultat,
ce résultat, C'est le tableau.
Pour recevoir les résultats.
Nous pouvons utiliser un tableau,
nous pouvons également utiliser une liste.
Ne vous inquiétez pas à ce sujet.
Continuons un.
De quoi avons-nous besoin ?
Il renvoie donc le nombre de résultats si nous voulons un retour,
puis nous allons vérifier ce qu'est un filtre de contact.
Je vous donne donc toutes les façons dont nous créons.
Honnêtement, je n'avais aucune idée de ce qu'était un filtre de contact.
C'est la première fois que je me suis rencontrée lors de la création de ce jeu,
même si j'ai eu beaucoup d'expérience dans le développement de jeux,
c'est vraiment la première fois que je l'ai utilisé dans le,
alors je suis allé le chercher.
Bon, écoutez, nous avons beaucoup de propriétés.
Et si vous revenez en arrière,
nous pouvons voir ici les résultats différemment.
Et qu'avons-nous d'autre ?
Nous avons quelque chose qui s'appelle un masque de couche double.
Je sais ce qu'est le masque de calque,
alors je dois regarder et trouver.
Set Layer Mask, excellent.
Cela définit le masque de calque en fonction d'un paramètre fourni ou quelque chose.
Super. Je clique dessus,
je vois un filtre de contact, un masque de calque.
Je lui donne un masque de calque.
Je sais ce qu'est le masque de calque et je vais vous montrer comment nous allons l'utiliser.
Mais de toute façon, ce sont les étapes que même je prends parfois.
Alors ne pensez pas que NOUVEAU,
ne vous souvenez pas de tout et vous devriez savoir,
non, vous devriez faire vos propres recherches.
Parcourez toujours la documentation et commençons à présent.
Je vais donc revenir ici et je vais tout d'abord créer
un collisionneur privé 2D,
et ce sera le collisionneur de pièce.
Gardez ça.
Et puis un autre contact privé
filtré vers D et ce sera le filtre de contact de D.
Je garderai simplement le nom tel quel.
Alors maintenant et commencez,
qu'allons-nous faire ?
Tout d'abord, nous avons besoin d'une référence au collisionneur de pièce.
collisionneur de chambre est donc égal à obtenir des composants.
Et ce sera le collisionneur 2D.
Super, donc maintenant nous avons une référence au collisionneur dans la pièce.
La prochaine chose que nous voulons faire est d'obtenir le filtre de contact 2D.
Et nous allons définir le masque de calque comme nous l'avons vu.
Et qu'avons-nous dit que nous avions besoin dans le masque de calque défini,
nous avons besoin du masque de calque.
Comment obtenir le masque de calque ?
Eh bien, nous savons ce qu'est la couche,
mais quel est le masque ?
Le masque est un moyen de nous permettre de nous convertir,
comprendre ce que sont les calques.
Alors, que pouvons-nous faire ?
Nous pouvons utiliser quelque chose appelé masque de calque.
Et nous pouvons utiliser une méthode ici qui dit d'obtenir le masque.
Et comment obtenir le masque ?
On peut l'obtenir en fait acheter le nom des couches.
Super, nous avons maintenant accès au nom de la couche.
Et qu'est-ce que la couche, c'est l'ennemi.
Et comme il s'agit d'une référence de corde ,
assurez-vous que la chaussure a bien été mise en pot,
allez même la copier si nécessaire.
Mais ce qui se passe ici,
nous avons le nom de la couche.
Nous utilisons le masque get,
qui est une méthode disponible dans la bibliothèque de masques de calques.
Nous utilisons ce masque de calque entier et définissons le masque de calque sur le filtre de contact.
Compliqué, je sais.
Et maintenant, nous utilisons le collisionneur de chambre, collisionneur à chevauchement pensé.
Et ici, de quoi avons-nous besoin ?
Nous avons besoin du filtre compact,
quels sont les résultats ?
Où voulons-nous donner nos résultats ?
Et vous pouvez voir ici la flèche,
si vous cliquez dessus, vous y allez.
Vous pouvez l'ajouter à une liste ou l'ajouter à un collideur 2D en fonction de ce que nous lui donnons.
Donc, si nous lui donnons un tableau ici ,
ce résultat sera un tableau.
Mais comme nous lui donnons actuellement une liste, il
s'agira d'une liste, enregistrez cet enregistrement.
Encore une fois, passons par là encore une fois.
Nous avons créé un filtre de contact.
Nous avons compris ce que sont les filtres de contact grâce aux documentations unitaires.
Nous avons ajouté un collisionneur 2D.
C'est très simple.
Nous avons obtenu une référence en utilisant le composant get.
Nous savons déjà comment nous y parvenons.
Nous accédons au filtre de contact.
Nous utilisons une méthode appelée Définir le masque de calque.
Cet ensemble de masque de calque nécessite un
masque de calque,
pas seulement un calque, un masque de calque.
Donc, ce que nous faisons,
nous avons cherché un masque de calque.
Et ce sera vraiment un défi visuel pour vous.
Allez chercher le masque de calque,
obtenez le masque de calque et maintenez comment nous avons trouvé cette méthode.
Il s'agit donc d'un processus complètement différent.
Nous utilisons le masque de calque obtenir,
qui fait partie du masque de calque et du masque de calque du moteur Unity,
et nous utilisons le nom de la couche ennemie.
Que se passe-t-il dès que ce responsable de salle démarre ?
Tout d'abord, sur Trigger Enter, il trouve l'ennemi.
Deuxièmement, il passe en revue tous les ennemis qui sont déjà ici.
Et comme je l'ai dit, il existe de nombreuses façons d'attraper les ennemis.
Il y a des objets de type trouvé.
Nous avons pu utiliser l'entrepreneur entre,
mais j'ai pensé que c'était une excellente occasion d'en apprendre davantage sur les listes.
En savoir plus sur le filtre de contact dans Jamais savoir quand.
Parfois, vous pouvez vous retrouver dans une situation et
programmation où vous ne pouvez tout simplement pas le faire sans filtre de contact.
Donc, sauvez tout ça.
Nous retournons dans Unity et regardons nos ennemis dès que nous courons,
nous devrions voir les trois ennemis ici.
J'espère que c'est le jeu.
On y va. Excellent.
Et vous pouvez voir que nous avons tous les collisionneurs du squelette un,
squelette et du squelette trois,
ou comme vous voulez l'appeler.
Excellent, nous avons une référence à eux.
Maintenant, la prochaine étape consiste à les tuer tous et à ouvrir les portes avec du
bleu qui, dans la vidéo suivante,
veillez à terminer vos modifications.
Assurez-vous de laisser un avis et je vous verrai dans la vidéo suivante.