Bienvenue, mes développeurs de jeux préférés.
Dans cette vidéo, nous avons commencé à
engendrer des ennemis de manière intelligente.
Alors maintenant, lorsque nous lançons le jeu,
agrandissons le jeu pour que vous puissiez
voir correctement ce qui se passe.
Une fois que le candidat a terminé,
le premier ennemi apparaît,
le deuxième ennemi apparaît,
et ils sont assis là à attendre que nous les tuions.
Donc, une fois que nous les tuons,
essayons d'y aller.
OK.
C'est en fait, oh, d'accord, c'était embarrassant.
Redémarrons le niveau.
Attendez ça. Nous avons donc
fait des ennemis si bons que nous ne pouvons pas les tuer.
Bon, laissez-moi essayer.
Permettez-moi d'arriver à une certaine distance pour que nous ne puissions plus le faire.
Donc, une fois que nous les avons appelés, vous pouvez voir
que nous avons terminé la vague.
Et encore une fois, l'ennemi fraie parce que nous avons
fait le nombre d'ennemis et ici aussi pour cette vague.
Donc, ne perdons plus de temps et commençons.
Oh, l'affaire.
Allons de l'avant et commençons à posséder des ennemis.
La première chose que nous allons faire est
évidemment de créer ici une sorte
de co-routine ou de créer un compteur.
Mais nous allons rester avec
le Coubertin et cette cour sera
appelée chaque fois que nous aurons ce retard de frai.
Cette équipe principale va donc engendrer les ennemis.
Quoi qu'il en soit, commençons et nous verrons
comment tout fonctionne.
Nous allons donc créer un recenseur oculaire ici.
Et ça va s'appeler la vague de frai.
Et la vague que nous voulons réellement engendrer.
Alors, agite à repérer.
Nous avons donc déjà la vague que nous voulons traverser.
Il aura ses propres ennemis,
son nom et le nombre d'ennemis qu'il possède.
Nous allons donc créer une boucle for.
Dans cette boucle for, nous allons commencer
par un entier égal à 0.
Nous allons nous assurer
de ne jamais dépasser le poids pour frayer,
ou est-ce la vague à frayer,
le nombre d'ennemis ?
Et nous allons également l'augmenter d'
un à chaque fois.
Ici, nous allons créer un numéro d'ennemi aléatoire.
Et ce sera la plage aléatoire.
Et cette fourchette sera supérieure à 0.
Et la vague pour engendrer la longueur du point des ennemis.
Nous allons donc nous souvenir de ces ennemis,
et voici une panoplie d'objets de jeu.
Nous voulons donc dépenser un ennemi aléatoire là-dedans.
Je vais donc ici où nous allons dire que c'
est une sorte de méthode
pour frayer parce que nous voulons l'avoir
en dehors de la, ici.
Ce ne sera que la vague de frai.
Ce sera le géniteur ennemi ici.
Et ce que nous allons faire,
et la façon dont ce numérateur fonctionnera
alors que nous allons donner
retour nouveau, attendez quatre secondes.
Et ça va être sur la vague.
Répondez. Pas de retard, retard d'apparition de points.
Que se passe-t-il ici ?
C'est la première fois que je crois que nous
utilisons le rendement
à l'intérieur d'une boucle for dans un recenseur ou une coroutine.
Nous passons donc par cette boucle.
Chaque fois que nous choisissons un numéro aléatoire,
nous avons engendré une sorte d'ennemi,
puis nous attendons quatre secondes.
Et là encore, nous avons engendré un ennemi, nous avons engendré un ennemi.
Cela nous permettra donc de céder
le retour et d'appeler cela plusieurs fois,
cette vague engendrée plusieurs fois.
Et après cela,
nous allons également créer
la méthode qui va engendrer l'ennemi.
Alors, faites apparaître l'ennemi.
Et ici, nous allons dire que nous allons lui envoyer
objet du jeu et l'ennemi pour frayer.
Et ici, nous allons dire le journal des points de débogage juste pour
assurer que nous savons quel ennemi est
généré et que tout fonctionne correctement.
Donc, il a engendré l'ennemi.
Et nous allons lui donner l'ennemi à frayer.
Mais le nom.
On y va. Et nous venons simplement à instancier.
Et puis elle a mangé le NMI. Trop petit.
Et ça va être, oups, excusez-moi.
Ce sera donc toute la position du point de transformation
et nous transformons la station de rangée.
Alors, quelle est la transformation ?
De quelle transformation parlons-nous ?
Ainsi, comme le générateur de vagues est
attaché au gestionnaire de niveaux,
s'agira de la position et de la rotation
de l'objet de jeu du gestionnaire de niveaux dans notre scène.
Et plus tard, nous créerons
plusieurs points sur lesquels les ennemis vont frayer.
Cela fonctionnera donc comme ça.
Nous aurons une sorte de tableau.
Nous nous occuperons de cela plus tard, qui est maintenant
axé sur l'instanciation réelle de ces ennemis.
Faites donc apparaître l'ennemi, la vague pour engendrer
des ennemis à la position
du numéro d'ennemi aléatoire que nous venons de créer.
Je vais donc ajouter une entrée ici. Que faisons-nous ?
Nous devons aussi appeler la coroutine et ici,
donc avant d'oublier, si co-routine.
Apparie, apparition, ennemis, vagues.
Oui, on y va.
Et par quel chemin devrions-nous frayer ?
Ici, nous allons juste dire que c'est la vague,
vagues à la position suivante.
Il va donc probablement être
0 en ce moment parce que la prochaine vague,
alors que la prochaine vague,
elle commence à 0 ici.
Ce sera donc la première vague à
expérimenter pour l'instant,
axée sur ce que cela fait.
Donc, une co-routine qui commence si nous nous
assurons que nous ne frayons pas
du compte à rebours est inférieure à 0,
nous ne frayons pas,
nous sommes prêts à commencer à frayer.
Ensuite, nous commençons le revêtement ici, nous avons la boucle qui traversera
le nombre d'ennemis sur
la vague que nous recevons.
En tant que coroutine, nous créons un nombre aléatoire.
Nous engendrons un ennemi aléatoire qui n'a que le débogage
pour nous dire quel ennemi est apparu
va probablement le supprimer plus tard.
Ensuite, nous instancions l'ennemi réel sur le manager.
Et ensuite, que se passe-t-il ? Nous rendons le retour,
attendons quatre secondes, puis frayons dans un autre ennemi.
Donc, avant que cette boucle ne soit appelée à nouveau,
nous devons peser le délai de frai
qui nous est désigné.
Je vais donc sauver tout ça.
Je vais revenir en arrière et l'unité.
Et voyons ce que nous avons ici en tant que responsable de niveau.
Attendez que ça compile quoi que ce soit.
Ok, alors on va voir
le responsable de niveau du manager et qu'est-ce qu'on a ici ?
Je jouais,
peut-être que je ne l'ai pas fait dans la vidéo.
Nous avons donc cette vague ici.
C'est l'onde squelette.
Les ennemis que nous avons ici sont
l'ennemi squelette et les lâches qui volent haut.
Le nombre d'ennemis que nous voulons
et réagira sera de deux secondes.
Je vais sauver ça.
Où est le responsable de niveau et notre monde ?
Ce n'est pas sur le 000.
Ramenons-le à 0,
donc c'est juste devant notre joueur.
Et lançons le jeu et voyons à quoi il ressemble.
Donc maintenant 12 ans, nous devrions voir le compte à rebours des vagues.
On y va et c'
est trop d'ennemis.
Voyons ce que nous avons mal fait ici.
Nous le sauvegardons donc.
Ce qui se passe ici,
nous vérifions que le compte à rebours est inférieur à 0.
sommes-nous pas en état de frai ?
Eh bien, voyons voir. Nous
commençons par le comptage, donc nous ne le sommes pas.
Il est donc évident que nous devons changer nos états ici.
Donc, avant de créer la boucle ou de commencer la boucle,
nous allons dire que nous sommes dans
un état qui est égal aux
États reproducteurs, mais que nous frayons.
Et quand nous aurons fini de frayer,
nous allons entrer dans un état,
qui est la pondération.
Nous attendons donc que les ennemis apparaissent.
Maintenant, nous commençons avant de passer par la boucle,
nous avons dit l'État.
Donc maintenant, cela ne sera pas appelé à chaque
fois et nous n'aurons pas autant d'ennemis.
Essayons encore une fois ça.
Lancez le jeu. Nous pouvons voir le compte à rebours ici.
Je l'ai rendu public. On y va.
Donc 0, on attrape l'ennemi et il commence à tirer.
Ensuite, nous avons un autre ennemi,
puis nous leur avons donné un autre ennemi,
et il est appelé toutes les deux secondes.
Regardez ces petites vaches ici.
C'est un joli mécanicien de jeu cool, comme vous pouvez le voir,
toutes les deux secondes, 1212, et nous y allons.
Ainsi, comme vous pouvez le constater,
les ennemis sont appelés chaque seconde.
Mais maintenant, vous vous demandez peut-être
pourquoi avons-nous autant d'ennemis,
même si nous avons dit que le nombre
d'ennemis ne devrait être que lui aussi.
Eh bien. C'est parce qu'ici,
nous n'avons pas vraiment réinitialisé le compte à rebours des vagues.
Encore une fois, quelque chose que nous traiterons plus tard.
Mais réfléchissons tout d'abord à quand va-t-on
réellement réinitialiser la vague et quand est-ce qu'une vague réelle ?
Nous pouvons donc soit créer un temps entre les vagues.
Disons donc que la première vague et la deuxième vague,
il y a un retard entre elles.
Ou nous pouvons avoir un mécanicien vraiment sympa et donner
notre joueur ou à la personne qui joue notre jeu
une chance d'aller de l'avant et de tuer tous les
ennemis de cette vague avant que la prochaine vague ne se produise.
C'est donc ce que nous allons faire.
Et pour ce faire, nous allons créer
une méthode qui permettra de
déterminer si un ennemi est mort ou non.
Revenons donc ici.
Et après le frai ennemi,
nous allons créer un privé.
Il va y avoir un booléen,
et ce sera les ennemis ou vivants.
Et cela reviendra vrai si
tous les ennemis sont vivants ou non.
Oh oui, si tous les ennemis sont vivants et faux,
si l'un d'eux ou aucun d'entre eux n'est en vie.
Donc, ici, ce que je vais dire,
je vais créer une condition si.
Et je vais avoir le dernier objet de type.
Et les objets de type ne trouvent pas d'objets,
trouvent pas d'objets de type.
Et le contrôleur ennemi,
je vais chercher la longueur du point du contrôleur ennemi.
Et ça va être égal à 0.
Et si c'est le cas, nous allons retourner faux.
Si faux, cela signifie que tous les ennemis sont morts.
Et ensuite, si nous passons par
celui-ci et que nous ne retournons pas faux,
alors nous reviendrons vrai.
Cela signifie que les ennemis sont toujours en vie.
Nous avons donc maintenant une vague
ou nous assurons que nos ennemis
ont tous été épuisés et nous pourrons
l'utiliser ici comme condition d'une manière ou d'une autre.
Mais il y a un petit problème qui me dérange.
La recherche d'objets de type sur
le contrôleur ennemi est en fait une opération très lourde,
par exemple sur le système.
Il faut beaucoup de ressources à chaque
fois pour parcourir tous les objets du
contrôleur ennemi,
ce qui n'est parfois pas très nécessaire.
Donc, ce que nous voulons faire, c'est que nous voulons avoir une sorte
de minuterie sur les ennemis sont vivants.
Nous ne vérifions donc pas
toutes les images si tous les ennemis sont morts.
Mais au lieu de cela, nous avons vérifié cela
toutes les deux secondes.
Je vais donc vous le lancer comme un défi, et votre défi
est de retarder la vérification.
Donc, tout d'abord,
vous devez créer une variable pour
le temps entre la recherche d'ennemis.
Dans la méthode booléenne, veillez à ne pas
regarder tous les ennemis sauf lorsque le temps est terminé.
Faites attention à l'endroit où nous devrions réinitialiser ce compteur.
Ce sera donc très important.
Cela étant dit,
mettez la vidéo en pause maintenant et allez faire chaque Shannon.
Bon, bon retour.
Je vais donc faire défiler vers le haut ici.
Et je vais créer un flotteur privé.
Le temps entre les recherches ennemies, entre les recherches ennemies.
Et disons qu'il s'agit d'un F.
Donc, 1 seconde. Toutes les secondes, nous vérifions
tous les ennemis de la dette.
Et puis ici, je vais dire que le temps entre les
recherches est réduit par le temps.DeltaTime,
chaque image, et cela sera
appelé chaque image.
Et puis, ici,
je vais vérifier avant
vérifier tous les objets.
Si le temps entre la recherche est inférieur ou égal à 0,
nous effectuerons une recherche. On y va.
Et quand est-ce qu'on a réellement réinitialisé cela ?
Ainsi, une fois que le temps entre les
recherches est inférieur ou égal à 0,
nous commençons par vérifier si tous les ennemis sont morts.
Et nous pouvons également aller
l'avant et réinitialiser cette fois-ci entre les recherches.
Et je vais le régler à 1.5 parce que je ne pense pas
que ce soit quelque chose
que vous voudrez peut-être changer chez l'inspecteur,
le temps entre les recherches ennemies,
cela peut être assez standard.
Mais si vous pensez que vous
devrez peut-être modifier cette variable,
celle-ci ne fonctionnera évidemment pas.
Vous devez monter ici,
créer une variable distincte
si vous l'avez fait, félicitations,
c'est la meilleure étape ou la meilleure façon de penser,
la meilleure conception de jeu peut être.
Mais pour moi, je crois que ce
sera quelque chose de très constant,
quelque chose qui ne changera pas.
Je ne pense pas que nous ayons à changer
le temps entre les recherches ennemies.
Est-ce que c'est fini ?
Revenons ici.
Et nous devons nous assurer que nous,
où est-il ici et mettre à jour.
Nous allons vérifier que
l'état est égal à celui des états de frai en attente.
Cela signifie que nous sommes constamment en
frayer des ennemis et que nous sommes dans l'attente.
Nous vérifions donc une fois que nous avons évidemment terminé cette boucle pour,
nous vérifions que l'état attend.
Alors, si c'est ici,
nous allons vérifier si les ennemis sont en vie.
Et remarquez que nous avons ajouté ce point d'exclamation,
ce qui signifie exactement le contraire.
Donc, si tous les ennemis ont Lloyd va enregistrer le journal des
points de débogage, vague.
Terminé.
Gardez ça.
Sinon, si ce n'est pas le cas,
nous allons simplement revenir.
Et pourquoi faisons-nous cela ?
Pourquoi disons-nous « retour » ?
Nous avons dit que le retour signifie que nous ne faisons
rien d'autre à l'intérieur de la méthode, en particulier lors de la mise à jour.
Pourquoi ? Parce qu'une fois la vague terminée,
nous ne voulons pas revenir dans la vague,
pouvons maintenant vérifier si nous ne sommes pas en train de frayer,
ce que nous ne serons pas n
parce que nous sommes évidemment et que nous attendons
et recommencer l'enregistrement et
recommencez à créer les ennemis.
Une fois la vague terminée,
nous voulons empêcher toute la mise à jour de fonctionner.
Je vais donc sauver ça.
Je vais revenir dans mon gain.
Et maintenant, nous devrions le voir lorsque nous lançons le jeu.
Donc, après cinq secondes de compte à rebours,
nous obtenons le compte de l'ennemi.
Après deux secondes, nous pouvons compter l'ennemi.
Et on y va.
Vous pouvez voir que nous avons tout arrêté pour que nous n'ayons
plus d'ennemis que nous devons faire.
Je vais donc essayer de les tuer.
Nous les avons donc tous les deux.
Et comme vous pouvez le constater, encore une fois,
la vague est terminée, puis les ennemis
recommencent à frayer. Ok, super.
Alors, avec cela, assurez-vous de
valider vos modifications.
J'espère que ça vous plaira et je vous verrai dans
la prochaine vidéo où nous allons
frayer des points pour plusieurs vagues
et les terminer toutes,
tuer tous les ennemis,
terminer tout le chemin,
et peut-être avoir un message vraiment sympa.
Alors, à ce moment-là.