Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo.
Et dans cette vidéo,
lorsque nous lançons notre jeu,
lorsque nous cliquons sur l'ennemi,
vous remarquerez qu'il a une variable supplémentaire ici,
qui est la santé ennemie et phi lui tire avec quelques balles.
Remarquez comment son état de santé se détériore de 100 à 40 ans.
Et si je continue de le tirer de 40 à 0 et qu'il disparaît parce qu'il est mort.
Nous allons donc apprendre beaucoup de choses dans cette vidéo.
Mettez vos casquettes de réflexion et commençons.
Oh, d'accord, il est donc temps de commencer à endommager nos ennemis en utilisant la méthode.
La première chose que nous allons faire, c'est que nous allons créer un moyen d'
ajouter de la santé ou de supprimer la santé de notre ennemi.
Je vais donc entrer dans le contrôleur ennemi.
Et ici, ouvrons Visual Studio.
Et je vais créer une variable entière qui représentera la santé de l'ennemi.
Pourquoi s'agit-il d'un entier ?
Eh bien, parce que nous voulons que les choses soient simples.
Nous ne voulons pas que ce soit un flotteur.
Je vais donc l'ajouter ici juste sous la vitesse.
Nous allons donc créer un champ sérialisé qui sera de type entier.
Et ça va s'appeler la Santé.
Et je vais le fixer à 100 au début, de
sorte que nous n'aurons jamais la santé à 0.
Je vais regarder en arrière l'inspecteur et voir à quoi ça ressemble.
Et maintenant, d'accord, super.
Maintenant, vous pouvez voir que j'ai la possibilité de changer la santé de notre ennemi.
Maintenant, comment allons-nous nous assurer que chaque fois que l'ennemi est touché,
nous supprimons une facture de santé.
Nous allons créer une méthode pour y parvenir. Que sont les méthodes ?
Eh bien, vous m'avez déjà vu créer des méthodes.
La mise à jour est une méthode.
Nous commençons par une méthode et aussi le gizmo select comme méthode.
Mais examinons un peu plus en profondeur la structure réelle d'une méthode et voyons comment nous l'utilisons.
Laissez-moi donc mettre mon laser,
et c'est la structure de la méthode.
C'est donc similaire à la façon dont nous créons des variables en ce sens qu'elles ont une accessibilité.
Donc, un type d'accès, qu'est-ce que c'est ?
Est-ce privé, public ?
Nous ne pouvons pas en faire un champ sérialisé,
mais nous pouvons créer un champ public,
qui signifie que nous pouvons accéder à cette méthode depuis n'importe où dans nos scripts,
dans n'importe quel autre script.
S'il est privé, nous ne pouvons y accéder qu'à l'intérieur de la classe où nous utilisons.
Ensuite, nous avons le type de retour.
Par exemple, le vide revient, rien.
Qu'est-ce qu'un type de retour ?
Au fur et à mesure que nous avançons dans le cours,
vous comprendrez tous les différents types de retours.
Mais cela signifie que nous pouvons réellement renvoyer une valeur à partir de cette méthode.
S'il ne renvoie rien,
cela signifie qu'il est nul.
Par exemple, permettez-moi de vous montrer ici.
Il s'agit d'un vide car nous ne renvoyons aucune valeur.
Nous ne nous attendons pas à ce qu'aucune valeur soit restituée
par cette méthode plus tard lorsque nous avons une méthode qui renvoie quelque chose,
peut-être, je m'assurerai de le souligner pour vous.
Ensuite, nous avons le nom de la méthode.
Donc généralement, chaque fois que vous voulez nommer une méthode,
vous devez la nommer en fonction de ce que fait réellement cette méthode.
Et vous remarquerez comment nous créons le nom d'une méthode.
Contrairement aux variables, le premier mot doit toujours être dans la classe inférieure,
ou la première lettre du premier mot doit être de classe inférieure.
Dans un nom de méthode,
tous les mots contenus dans le nom de la méthode doivent être en majuscule.
Vous pouvez donc voir que l'ajout de vélocité,
donc cette méthode est privée,
donc nous l'utilisons uniquement dans un vide de classe.
Il ne renvoie rien et son nom ajoute de la vélocité.
Cela signifie qu'il ajoute de la vitesse à certains types d'objets.
Et quelles sont les parenthèses au bout ?
Bien que ces paramètres soient appelés paramètre, le
paramètre signifie que nous pouvons envoyer une certaine valeur à cette méthode.
Et il peut l'utiliser pour effectuer des calculs ou tout ce qu'il veut.
Nous allons démontrer comment tout cela fonctionne selon la méthode qui va endommager nos ennemis.
Donc, assez de parler, commençons.
Je vais ouvrir Visual Studio et ici,
et je vais créer une méthode à l'intérieur du contrôleur ennemi.
Je vais faire défiler vers le bas sur la Terre, la mise à jour.
Et ici, je vais créer une méthode pour endommager l'ennemi.
Tout d'abord, que dois-je faire ?
Doit-on être privé ?
Je ne peux donc l'utiliser qu'à l'intérieur d'ici et du contrôleur ennemi,
ou doit-il être public ?
Cela signifie que je peux y accéder de n'importe où.
Eh bien, j'aurai probablement besoin qu'il soit public parce que
je veux que les balles endommagent l'ennemi chaque fois qu'elles touchent l'ennemi.
Ce qui va être un vide public,
et je vais appeler ça l'ennemi des dégâts.
Et c'est un vide car nous n'avons pas besoin de restituer quoi que ce soit de l'ennemi endommagé.
Tout ce que nous devons faire, c'est éliminer un peu de santé que nous avons déjà.
Et ici, donc la santé ennemie.
Et changeons ça ou non,
je vais te montrer un truc très cool et rester un peu.
Quoi qu'il en soit, continuons avec notre objectif principal.
Je veux également leur envoyer un paramètre de type entier,
qui sera le dommage.
Ils peuvent le faire.
Maintenant, ce que je peux faire, c'est que je peux accéder à la santé et je peux m'en débarrasser.
Désolé, les dégâts subis.
Alors, que se passe-t-il maintenant ?
Vous savez déjà ce que signifie le signe moins.
Cela signifie que nous éliminons de la santé les dommages subis.
Enfin, nous devons nous assurer que si la santé est inférieure ou égale à 0.
Cela signifie qu'il suffit d'ajouter un peu d'espaces ici.
Cela signifie que notre ennemi est mort et que je veux détruire l'objet du jeu.
Okay, regardons ça une autre fois.
Et avant de le faire, je pense que le nom de santé d'une variable n'est pas si spécifique.
Je pense que nous devons le transformer en santé des ennemis.
Que puis-je faire ici ?
Je peux changer le nom ici en santé ennemie.
D'accord, puis faites défiler vers le bas et changez ces deux-là juste ici.
Mais c'est un peu encombrant,
surtout si nous avons utilisé la santé 10 fois dans notre code.
Alors, comment pouvons-nous éviter cela ?
Double-cliquez simplement sur Santé,
cliquez sur Contrôler R, R.
et vous verrez maintenant que vous pouvez l'ajouter.
Je vais donc appeler cela la santé ennemie.
Je vais toucher Enter.
Et si je fais défiler vers le bas,
vous verrez que la santé de l'ennemi a changé.
Par conséquent, pour rappel,
contrôlez ou cliquez dessus deux fois,
maintenez la touche Contrôle R.
et vous pourrez changer le nom de la variable et la changer partout et dans le jeu.
Maintenant, la prochaine chose que nous allons faire, c'est que nous allons appeler cette méthode.
Et d'où l'appelons-nous ?
Nous devons aller au contrôleur de balles.
Et laissez-moi juste trouver le contrôleur de balles ici quelque part.
Où est-il dans les scripts ?
Dans les balles, dans la loi, terrible au contrôleur.
Et ici, lorsque nous déclenchons quelque chose pour que nous touchions un objet,
ce que nous allons faire,
nous allons simplement me laisser retirer cette ligne d'ici.
Nous instancions donc l'impact et nous allons aller de l'avant et accéder à la collision.
Alors, quelle est la collision ici ?
Comme vous pouvez le constater, il s'agit d'un paramètre envoyé à la méthode sur Trigger Enter.
Quelle est la collision ? C'est l'objet avec lequel nous venons d'entrer en collision.
Par exemple, si nous heurtons un mur,
la collision serait celle que nous avons frappée.
Et dans notre cas,
la collision sera l'ennemi que nous avons touché.
Et je vais chercher le composant, excusez-moi.
Je vais donc récupérer le composant qui se trouve sur
cette collision et ce sera le contrôleur ennemi.
Et dans le contrôleur ennemi,
parce que j'ai rendu public cette méthode ici,
je peux y accéder ici, c'
est-à-dire les dégâts et les amines.
Et que dois-je envoyer à cet ennemi de dégâts ?
Vous pouvez le voir maintenant, ici,
il n'y a pas d'arguments,
donc nous devons donner les dégâts subis.
Vous remarquerez tout cela ici.
Je vais donc lui envoyer le montant des dégâts.
Mais nous n'avons pas créé de montant de dégâts.
Allez-y et créons-le ici.
La puce aura donc également une variable qui sera un entier.
Et ça va juste copier ceci, ce
qui sera le montant des dégâts et je vais le régler à environ 10.
Que se passe-t-il ici ?
Chaque fois que la balle entre en collision avec quelque chose,
nous obtenons l'information de cette collision.
Nous obtenons la collision,
nous obtenons la composante du contrôleur ennemi
et nous accédons à la méthode de l'ennemi des dégâts.
Nous lui avons envoyé le montant des dégâts.
Nous allons voir le contrôleur ennemi.
C'est public, tout ce que nous obtenons la santé de l'ennemi,
nous enlevons les dégâts pris.
Les dégâts pris comme évidemment le montant des dégâts ici.
Ensuite, nous vérifions si la santé est inférieure ou égale à 0.
Si c'est le cas, nous détruisons l'objet du jeu parce que l'ennemi l'a fait.
Donc. Sauvons tout ça.
Et allons le tester dans Unity.
Je vais donc cliquer sur l'ennemi,
assurer que nous voyons la santé de l'ennemi.
Je vais exécuter le code.
Je vais essayer de tirer sur notre ennemi.
Je l'ai montré jusqu'à ce que les balles soient troisième.
Voyons la santé de l'ennemi.
C'était fait.
Vous y allez. Il est devenu 90 ans.
Laissez-moi essayer de lui tirer deux fois maintenant sa santé devrait devenir 70 ici.
Gardez ces 80, 70, voilà.
L'ennemi est endommagé.
Et si je continue à le tirer avec toutes mes balles,
vous remarquerez que 70 devient 0 et que l'ennemi disparaît.
Mais remarquez ce qui se passe en ce moment.
Tout d'abord, nos balles ont continué à voler partout.
Pourquoi est-ce arrivé ?
Laissez-moi zoomer.
Vous pouvez voir que les balles n'ont pas interagi avec le mur.
Ils n'ont pas été détruits.
Et nous avons eu une erreur ici.
Laissez-moi ouvrir la fenêtre de la console pour que nous puissions voir quel est le problème. Vous y allez.
Vous pouvez voir que nous avons des erreurs pour
les quatre balles qui ont interagi avec le mur.
Double-cliquez sur cette flèche et voyons ce qui s'est passé.
Oh, vous pouvez voir que cela nous amène à dire que nous avons
une erreur et laissez-moi vous montrer cela une fois de plus. Double-cliquez.
Nous sommes sur cette ligne.
Vous pouvez voir ici.
Et comme cette ligne ne s'est pas exécutée correctement,
la destruction ne s'est pas exécutée correctement, elle continue de voler.
Ce n'est qu'une note de côté.
Quoi qu'il en soit, quel est le problème ?
Le problème, c'est que nous accédons à la collision, n'est-ce pas ?
La collision devrait être l'ennemie car nous essayons d'accéder au contrôleur NMI.
Mais le problème, c'est qu'en ce moment, nous venons de frapper un mur,
et ce mur n'a pas le script ennemi dessus. Intéressant.
Alors, comment allons-nous sauver cela ?
Heureusement, nous avons un outil très puissant.
Laissez-moi en parler ici.
Permettez-moi d'effacer toutes ces mauvaises erreurs.
Nous disposons d'un outil extrêmement puissant dont nous n'avons pas encore parlé.
Si je vais dans les couches d'édition, comme nous l'avons vu,
nous avons les couches des couches physiques,
nous avons les calques de tri.
Nous avons également cette étiquette ici.
Et ce que nous pouvons faire,
nous pouvons marquer l'ennemi,
c'était une étiquette ennemie.
Et puis, chaque fois que nous essayons de vérifier la présence du contrôleur ennemi, avant de le faire,
nous pouvons créer une condition qui vérifie si l'étiquette de la collision est un ennemi,
nous pouvons aller de l'avant et l'endommager.
Si ce n'est pas un ennemi ou si l'objet que nous portons n'est pas marqué comme un ennemi,
nous ne pouvons pas accéder au contrôleur ennemi.
Laissez-moi retourner ici.
Permettez-moi de vous montrer où nous pouvons créer une dague.
Nous pouvons simplement cliquer sur ce bouton plus,
nommer l'étiquette, ce que nous voulons,
sauvegarder cela, retourner à l'ennemi.
Et vous pouvez voir ici que nous pouvons l'étiqueter avec une étiquette que nous venons de créer.
Laissez-moi y retourner.
Supprimez la pile ici.
Oui. OK.
Aussi parce que l'ennemi a été marqué qui peut être non étiqueté.
Je ne sais pas pourquoi je l'ai fait.
Alors, tu y vas. Cette liste sera supprimée la prochaine fois que le projet sera chargé.
Ok, donc c'était une grosse erreur,
mais pas de soucis à ce sujet, car il est temps
relever un défi et votre défi est de marquer nos ennemis.
Donc, tout d'abord,
créez une étiquette ennemie comme je vous l'ai montré.
Assurez-vous de marquer l'ennemi dans le tag ennemi.
Avant d'obtenir le contrôleur ennemi,
vérifiez si l'objet de collision,
afin que vous sachiez déjà ce qu'est l'objet de collision,
a l'étiquette ennemie sur lui.
Et je vous recommande de passer par Google,
vous trouverez un moyen de vérifier la présence de la balise et de comparer la balise.
Si vous voulez continuer tout seul, allez-y et faites-le.
Si ce n'est pas le cas, je vais vous donner un petit indice.
Vous pouvez utiliser ce qu'on appelle le DAG .com,
aller le vérifier dans Unity Dogs,
utiliser vos informations, faire vos propres recherches.
Il existe un autre moyen de vérifier la présence de la balise.
Je vous recommande de le trouver.
Mettez la vidéo en pause dès maintenant et faites le shopping.
Bonjour, bon retour.
Comment avez-vous fait ça ?
C'est donc l'unité de documentations, component.com, déclaration DAG.
Il renvoie un bool,
que ce soit vrai ou non ou pas de bool public.
De plus, la balise de comparaison est un bool et nous allons
l' utiliser dans notre instruction if car, comme nous le savons,
une condition de l'instruction if est vraie ou fausse.
Nous pouvons donc également voir comment il est utilisé et utilisé sur le Trigger Enter, à quel point il est
pratique pour nous.
Donc, nous utilisons cet autre,
ils l'ont appelé autre,
nous l'avons comme collision.
C'est pareil, pas de soucis à ce sujet.
Voyons donc comment nous pouvons nous en occuper ici.
Avant de vérifier la présence d'une collision,
j'ai ajouté un onglet ici.
Je vais voir si la collision que nous venons de frapper sur le tag .com est un ennemi.
Et avant de faire cela,
nous devons créer ce type qui est l'ennemi. Appuyez sur Entrée.
Je vais donc m'assurer que nous l'écrivons correctement.
Donc, ennemi, et je vais étiqueter notre ennemi comme l'ennemi.
Donc maintenant ici,
si c'est un ennemi,
alors nous allons aller de l'avant et faire la collision et un autre truc astucieux,
Cette vidéo est pleine de trucs astucieux.
Si vous n'avez qu'une seule ligne sous la condition if,
vous n'avez pas besoin d'ajouter ces crochets ici.
Donc, si vous n'avez qu'une seule ligne,
vous n'avez pas besoin d'ajouter les crochets si j'ajoute une autre ligne.
Par exemple, le destroyer ne fait pas partie de la condition if.
Même si je le prends et que je le mets ici,
cela ne fera toujours pas partie de la condition.
Et si vous êtes un peu confus par ça, ne vous inquiétez pas.
Vous pouvez ajouter vos propres crochets.
Ce n'est qu'un petit test.
Vous pouvez même ajouter un commentaire ici pour dire que c'est ce qui se passe.
Je vais donc sauver ça maintenant.
Et seulement si la collision est une étiquette ennemie dessus.
Eh bien, on appelle le contrôleur ennemi et on le lui donne.
Essayons ça.
Je vais lancer le jeu et je vais commencer à tirer sur les murs.
Et voilà, vous pouvez voir que nous n'avons pas d'erreurs.
Si je tire sur l'ennemi,
je regarderai les dégâts subis par l'ennemi.
Vous y allez. Vous pouvez voir qu'il est à 40 ans.
Je vais lui tirer dessus trois fois de plus,
donc il aura 30, 20, 10 ans.
Et enfin, je vais l'abattre pour la dernière fois et il sera détruit sans aucune erreur.
J'espère donc que vous apprécierez,
j'espère que vous commettez tous les changements que nous apportons.
C'est très important.
Parfois, je vais le faire en dehors du domaine de la vidéo.
Et cela dit, j'espère que cela vous plaira.
Si vous appréciez ce cours,
laissez-moi un commentaire.
Cela m'aide beaucoup.
Il permet à tout le monde de savoir que c'est un bon cours.
Alors, assurez-vous de me laisser un avis.
Merci beaucoup d'avoir regardé.
Je vous verrai dans la prochaine vidéo où nous allons rendre
la profondeur de nos ennemis un peu plus brutale.
Je vous verrai alors.