Bienvenue à mes collègues développeurs de jeux
dans une autre très longue vidéo.
Mais dans ce cas, ça vaut la peine.
Comme chaque fois qu'on se fait frapper, on se brise.
Nous pouvons voir que nous avons cet article.
Nous ne le ramassons pas immédiatement,
mais après un certain temps, non seulement cela,
mais maintenant quand nous devrions l'ennemi et qu'il meurt,
à un moment donné, il tombe aussi et objet.
Et nous n'avons évidemment pas corrigé
la façon dont les couches interagissent les unes avec les autres.
Mais je pense que parce que cette vidéo a été si longue,
nous n'avons pas eu beaucoup de temps.
Donc, sans plus ni rien faire, ne perdons
plus de temps et commençons.
Oh, l'affaire.
Maintenant, nous avons le ramassage de la santé qui fonctionne,
mais pas très amusant quand
vous avez toute la santé qui vous entoure.
Vous pouvez le faire.
Vous pouvez simplement mettre en place
quelques ramasseurs de santé dans votre monde , puis
les récupérer une fois que vous avez
trouvé certaines pièces ou quoi que ce soit.
Mais je pense que c'est beaucoup mieux quand on peut avoir une sorte
de mécanicien qui laisse tomber
les objets et vous permet de les ramasser.
Par exemple, si nous avons la cassable ici, ces urnes,
si nous les écrasons ou les cassons,
alors nous aurons une sorte de prise de
santé ou lorsque nous tuons un certain ennemi,
nous aurons également le ramassage de santé. lâché.
Alors, faisons d'abord ça,
je vais aller dans les Prefabs où
nous avons où est-il ?
Où sont les armes, les balles,
le sang, les balles, l'ennemi.
Apparemment, nous n'avons rien.
Oh, tu sais quoi ?
Créons un nouveau dossier pour les ramassage.
Et ensuite, nous allons déposer la prise en charge de la santé là-dedans.
Super. Maintenant, nous avons ceci.
La prochaine chose que nous voulons faire, c'est
d'aller dans les scripts.
Nous allons trouver
les micros et nous allons créer
un nouveau script C-sharp qui s'appellera item drop.
Maintenant, pourquoi faisons-nous cela ?
Tout d'abord, je voulais juste fermer ça une seconde.
Donc, ce que je voulais faire, c'est que je voulais ajouter immédiatement
ce code ici dans la prise en charge de santé ou je veux dire,
désolé, dans le casse.
Où sont-ils ? Oh, nous venons de le fermer
donc j'ai voulu l'ajouter immédiatement au casse.
Dès que nous sommes cassés,
nous recevons un certain article.
Mais je me suis dit
que si je voulais que certains ennemis lâchent des objets qui
ne seraient pas très efficaces
parce que nous voulons plusieurs choses.
Peut-être que pour laisser tomber des objets,
nous voulons des gains différents,
peut-être pas seulement les cassables,
peut-être que je ne sais rien qui laisse tomber des objets.
J'ai pensé qu'il serait peut-être préférable de simplement créer
un script qui est le compte-gouttes d'objet et de l'ajouter à n'
importe quel objet que nous voulons déposer un objet une
fois qu'il meurt ou qu'il tue ou autre.
D'accord, alors allons-y et faisons ça.
La première chose.
Nous allons d'abord
créer un champ sérialisé,
ce qui va nous assurer que nous avons la possibilité de vérifier
s'il abandonne des objets,
qu'il ou qu'il abandonne des objets.
La deuxième variable que je souhaite
créer est un champ sérialisé,
qui est de type objet de jeu.
Et nous allons en faire un tableau et ce sera les
objets trop abandonnés.
Maintenant, vous vous demandez peut-être, nous n'avons qu' un seul
objet à laisser tomber, c'est-à-dire la santé.
Mais plus tard, nous créerons une pièce de monnaie
et peut-être même voudrez-vous créer
systèmes de mise à niveau ou vous laisserez tomber
quelque chose qui remonte comme nous l'avons fait à Hadès.
Donc, les objets à déposer,
nous l'avons sous forme de tableau.
La prochaine chose que nous aurons en tant que champ sérialisé,
il va y avoir un type float
et il va s'appeler
le dépôt d'éléments ou le dépôt d'éléments.
hasard.
Et nous allons le fixer à 0,5.
C'est donc une chance de 5050.
Et pourquoi voulons-nous avoir cela ?
Eh bien, nous ne voulons pas que tous
nos ennemis cassables ou tous
nos ennemis laissent tomber ces objets.
Nous voulons donc avoir 5050 chances d'obtenir un objet.
Super.
Donc maintenant, je vais aller de l'
avant et supprimer le démarrage et la mise à jour.
Nous les créerons si nous en avons besoin.
Et je vais créer un objet public de dépôt vide.
Et cela va simplement aller de l'avant et
créer un entier aléatoire.
Et tout d'abord, nous allons vérifier
quelques conditions.
Le premier sera donc aléatoire.
La valeur des points est inférieure à la possibilité de laisser tomber les objets.
Et qu'est-ce qu'une valeur de point aléatoire qui survole et
voyant renvoie un float aléatoire compris entre 0, un.
Donc, si nous obtenons, par exemple,
un point zéro car il est inférieur à 0,5, nous voulons instancier.
C'est un excellent moyen d' éviter que
l'ensemble soit inférieur à un,
plus de 0,5 ou partout où cela
nous donne juste une valeur aléatoire comprise entre 01.
S'il est plus grand, nous instancions.
Si ce n'est pas le cas, alors nous le voulons.
Nous allons donc
créer un entier aléatoire.
Donc, le numéro d'article aléatoire et il sera égal à la plage et à
la plage de points aléatoires.
Et ici, nous allons avoir une fourchette comprise
entre 0 et les objets à déposer.
Longueur des points. Ce que nous faisons ici est très simple.
Nous savons déjà tout cela
et nous allons ensuite
instancier les éléments à abandonner.
Et nous allons l'avoir comme numéro d'article aléatoire.
Nous allons le définir à la position du point de transformation et à
la rotation de la transformation.
On y va.
Je vais donc sauver ça.
Je vais y aller,
oh, et avant de le faire,
je vais aussi créer ici une condition
que j'ai complètement oubliée pour une raison quelconque.
Je vais m'assurer que si vous laissez tomber des objets,
nous allons continuer et faire tout cela.
Et ajoutons simplement quelques crochets bouclés autour de
lui pour que c'est mieux de cette façon.
Je n'aime pas avoir plusieurs lignes sous
un seul objet de gouttes.
Ok, super. Donc, avec ça,
ne sauvez pas ça dans notre jeu.
Et allons dans le pot cassable.
Et ça va les fermer un peu.
Ensuite, nous allons ajouter un compte-gouttes ici.
Et comme vous pouvez le constater,
il y a un problème.
Vous pouvez voir que nous n'avons pas
champs désérialisés et
vous pouvez voir qu'il y a quelque chose à attendre ici,
c' est-à-dire que nous n'avons pas fermé l'un des champs,
accord, alors nous y allons.
Maintenant, nous sauvegardons cela.
Maintenant, nous devrions voir ici le grand.
Donc je laisse tomber des objets,
des objets en gouttelettes, je lui donne juste le ramassage santé.
Fermons ça ou
va dans les Prefabs.
Où est-il, où sont les ramassage et la prise en charge de la santé.
Donc, maintenant, nous n'avons que le ramassage de la santé.
Et juste à des fins de test,
je vais définir les objets pour laisser tomber le risque à 1.
Nous laissons donc toujours tomber un article, sauvegardez-le.
Et maintenant, la dernière chose que nous voulons nous
assurer, c' est de
où devrait-on se trouver dans les bulles de rupture ?
Si nous allons, où est-il ?
Où est-il enterré ?
2ls cassable.
Et ici, nous allons vérifier
après nous assurer que nous, Où est-il,
nous instancions l'objet.
Nous voulons également aller de l'avant et vérifier si le compte-gouttes Obtenir le
composant et l'article.
Et nous allons vérifier et espérer que nous avons
une petite chose de masse ici qui
va faire parce que c'est un champ sérialisé,
créons simplement un retour.
Par conséquent, le livre public est un article,
un compte-gouttes d'article.
Et nous allons juste revenir ici,
Vrai ou quoi que ce soit, l'article gouttes.
Donc, cela retournera vrai s'il laisse tomber un article pour que nous puissions
revenir en arrière et le mot était, OK,
Le point cassable est un compte-gouttes d'article.
Pour ce compte-gouttes d'objets,
une fois que le joueur s'y précipite,
nous déclenchons la pause,
nous instancions les parties et
nous vérifions s'il est un compte-gouttes d'objets,
puis nous allons accéder à nouveau
le compte-gouttes Obtenir un élément composant, déposez l'élément.
On y va, sauve ça.
Et vous savez quoi, je pensais que peut-être
cela si une déclaration ici n'est pas si nécessaire.
Alors, qu'est-ce que nous allons simplement l'enlever.
Et maintenant, je me souviens pourquoi je l'ai oublié,
parce que ce n'était pas nécessaire là-bas.
Donc, ici,
sauf que tout devrait bien fonctionner.
La seule chose qui me dérange encore, c'est
que si nous essayons d'obtenir le composant,
mais il n'est pas là,
donc nous ne l'avons pas ajouté à une sorte de pot cassable.
Peut-être que cela causera un problème si c'est le cas,
la meilleure façon de résoudre ce problème est
créer une condition supplémentaire si,
une couche supplémentaire de protection ici
si le compte-gouttes Obtenir un élément composant,
et c'est différent de null,
cela signifie que nous avons cet objet ici.
Ensuite, nous pouvons aller de l'avant et vérifier la présence du compte-gouttes.
Cela nous donnera donc une couche de protection supplémentaire
si nous n'avons pas le compte-gouttes d'élément composant,
s'il est égal à null,
alors nous allons vérifier si nous ne pouvons pas déposer d'éléments,
puis nous allons en fait supprimer un article.
Alors, sauvegardez-le à nouveau maintenant, voyons voir.
Maintenant, c'est comme, Honnêtement,
je n'aime pas beaucoup ça parce que nous
devrions savoir comment nous créons ce jeu,
Bu, mais c'est le pire des scénarios.
Alors, lancez le jeu.
Et maintenant, quand nous essayons de casser une pièce,
laissez-moi juste détruire.
Et puis, quand nous essayons de briser
la partie que vous voyez, nous y allons.
Nous l'avons détruit.
Et vous pouvez voir que notre santé
passe de 500 à 510.
Mais il y a un problème.
Vous l'avez vu ?
Avez-vous vu l'objet tomber ?
Non, vous ne l'avez pas fait, mais la santé a augmenté.
Quel est donc le problème ?
Eh bien, le problème ici est que c'est extrêmement
rapide et nous ne voulons pas que cela se produise instantanément.
Nous voulons vraiment voir l'article que nous avons
déposé avant de le ramasser immédiatement.
Je vais donc vous le lancer comme un défi.
Et votre défi consiste à retarder le délai
avant que nous puissions récupérer un objet.
Donc, tout d'abord, créez un nouveau script.
Reprenez le calque.
Pourquoi est-ce que c'est ? Il s'agit
d'une vidéo incroyable sur la façon dont vous structurez votre jeu.
Parce que vous ramassez la couche,
cela nous permettra de
retarder le temps avant de ramasser un article.
Et nous ne voulons pas ajouter ce retard uniquement pour
le script de santé, puis nous devons le copier à
chaque fois et dans toutes les pièces,
power-ups, etc.
Ce que nous allons faire, c'est simplement créer un nouveau script de ramassage de
la couche et ajouté à
chaque élément que nous voulons ramasser,
ce qui est beaucoup plus facile et plus sain en matière de développement de
jeux et de conception de jeux. structure et ainsi de suite.
C'est pourquoi nous créons un nouveau script.
Ensuite, vous allez créer un flotteur
pour le temps avant que nous puissions le récupérer,
vous devez créer une variable booléenne qui vérifie
si nous pouvons réellement récupérer l'article ou non.
Créez une équipe de base qui après un certain temps,
après un certain temps, c' est-à-dire la
variable float
recréée ici nous permet de récupérer l'article.
Et enfin, où devrions-nous être ?
Doit-on appeler ce revêtement ?
Où devrions-nous appeler la routine scolaire ?
Donc évidemment,
une bonne chose que je ne sois pas douée pour coder parce que je suis
horrible en grammaire et tout le reste de toute façon,
vous savez, à quoi sert la dernière phrase ?
Mettez la vidéo en pause dès maintenant et relancez le défi.
Bon, bon retour.
Donc, une chose que je voulais faire, c'est
que je veux aller dans la prise en charge de la santé.
Non, pas le pick-up santé, la partie cassable.
Et je vais appliquer
les modifications à toutes les autres parties,
mais assurez-vous que chaque fois que vous ajoutez un pot,
veillez à vérifier s'il laisse tomber un article ou non et que
vérifier s'il laisse tomber un article ou non
vous devez changer. les objets tombent de chance évidemment.
Et électron, bien sûr, nous allons changer cela.
Gardez donc toujours cela à l'esprit lorsque vous ajoutez de nouveaux robots.
Et puis nous devons aller dans la pièce,
où est la pièce, les ennemis.
Nous avons quelques ennemis.
Il suffit de vérifier celui-ci et de lui ajouter un compte-gouttes.
On y va.
Il laisse donc tomber un objet.
Quel est l'article qu'il laisse tomber ?
C'est pourquoi nous le verrouillons toujours.
Ensuite, nous ajoutons l'article qui l'a défini sur 11.
Devrions-nous déposer un article ?
Allons dans le contrôleur NMI ici.
Où mourrait-il ?
Endommagez l'ennemi si la santé est inférieure à 0,
instanciez les objets du jeu de paille.
Donc, les sourds éclaboussures.
Nous allons également vérifier ici si le composant, quoi maintenant ?
Alors que le cassable, nous copions celui-ci.
Et puis nous avons juste collé ici.
Il s'agit donc d'un code redondant.
Mais je vais le laisser glisser à cause de toutes les
autres choses efficaces que nous avons créées.
Nous vérifions donc si nous avons un compte-gouttes d'article,
puis nous vérifions s'il est un compte-gouttes,
puis nous allons déposer l'article.
Essayons donc de tester cela
sur l'ennemi squelette appliquera les changements.
Donc maintenant, tous les ennemis devraient avoir
le script pour exécuter le jeu.
Et je sais que cela ne faisait pas du tout partie du défi,
mais je veux juste le tester pour que les balles
finissent par mourir et qu'on puisse ramasser
un objet qui voit si ça marche.
Je comprends.
Je prends l'objet. Excellent.
Maintenant, la prochaine chose est de retarder,
ce qui est le véritable défi.
Allons donc dans le,
je sais que c'était une note secondaire,
mais peut-être que vous ne saviez peut-être pas
exactement quoi faire dans
ce cas. Ne vous inquiétez pas à ce sujet.
Allons dans les scénarios.
Les micros, et cliquez avec le bouton droit de la souris ici,
créent un nouveau script C Sharp,
qui sera le PEC.
Ramassez, le gros,
oups, ramassez le calque, appuyez sur Entrée.
Attendez que cela soit compilé et double-cliquez ici.
Double-cliquez ici.
Et voyons ce que nous allons faire.
Tout d'abord, nous allons créer
le champ sérialisé pour le flotteur,
qui est le moment précédant le ramassage.
Et il suffit de le régler à environ 0,5 seconde.
Ensuite, nous allons créer un livre privé
peut être récupéré.
Enregistrez ça maintenant et commencez.
Nous allons nous assurer que cela puisse être
récupéré comme égal à faux.
Et puis nous allons créer le Coubertin Et ici,
qui sera l'énumérateur oculaire.
Et ça va s'appeler le pick-up, se rafraîchir.
Oui, bien sûr, décrochez, refroidissez.
Et ensuite, ici, nous allons céder, revenir, neufs.
Attendez quatre secondes.
Et je suis à peu près sûr à ce stade, vous savez,
routines si bien que vous vous ennuyez de
moi à chaque fois que vous dites que le rendement vous retourne pour des secondes de poids.
Vous dites probablement que Michael,
nous savons déjà comment le faire.
S'il te plaît, arrête
Non.
Nous allons apprendre.
Il fait ramasser Gantt est égal à vrai.
Gardez ça.
Et maintenant, nous allons entrer dans le compte-gouttes.
Et je suis désolé, je veux dire, la prise en charge de la santé.
Et ici, nous allons
vérifier s'il a été récupéré.
Et nous allons également vérifier.
Et si le composant Obtenir,
le capté, la couche,
que devrait-on l'appeler ?
Où est-il ?
Peut-il être ramassé ? Allons de l'avant et rendons ça.
Donc booléen public, il peut être récupéré.
Et nous allons juste revenir.
Peut être ramassé variable.
Ok, le nom n'est pas très créatif pour celui-ci, mais ça marche.
Et voici une sorte de problème que
définition de vecteur de type peut être détectée.
OK ?
Ainsi, peut être ramassé.
Bien sûr, disons qu'il a appelé une méthode.
Je crois donc que c'est juste à cause du nom.
Vous ne pouvez donc pas nommer la variable de la même façon que vous
nommez la méthode souhaitée.
Nous allons donc l'appeler simplement méthode parce
que nous avons l'imagination d'
une petite mouche des fruits et que nous pouvons ensuite être ramassés.
Et ça devrait faire l'affaire.
Maintenant, la dernière chose et la dernière partie de
ce défi était de savoir où appelons-nous le Colton ?
J'espère que vous y avez réfléchi et j'espère comprendre qu'
il devrait être appelé immédiatement et commencer.
Au début, nous commençons la co-routine.
C'est possible, non, je veux dire, ramasser,
refroidir,
ramasser, refroidir. On y va.
Alors pourquoi et commencer ?
Parce que nous instancions l'élément.
Dès que nous instancions l'élément,
il a la couche D de ramassage,
nous démarrons immédiatement le Colton.
Revenons donc dans notre jeu.
Voyons ici, la couche.
Ramassez la couche.
Combien, combien de temps attend-il ?
Et je vais appliquer les changements à tout le monde.
Alors maintenant, lorsque nous lançons le jeu,
nous devrions voir que dès que nous
atteignons les bulles de rupture, nous y allons.
Nous avons touché les boulons de frein.
Nous ne récupérons pas immédiatement l'article.
Nous le voyons tomber.
On y va.
Oui. Vous pouvez voir maintenant qu'il est toujours là.
Nous ne l'avons pas repris, mais maintenant nous pouvons
essayer quelque chose de différent.
Ajoutons le délai à environ
trois secondes et voyons si cela fonctionne.
Dans la vraie vie.
On va se faire frapper.
Nous allons détruire cela et essayer de le ramasser.
Ok, ça a fonctionné assez
vite et je me demande quel est le problème ici.
Oh, d'accord, bon retour.
Donc la plus grosse erreur qui ait jamais été commise,
j'ai changé cette prise de santé à 10,
mais le préfabriqué n'a pas changé.
Appliquons donc les modifications.
Je me demandais que tout fonctionne bien,
mais pour une raison quelconque, cela ne fonctionnait pas.
Nous y allons donc avec le stéroïde et maintenant nous avons 10,
10 secondes avant de pouvoir le ramasser,
mais nous allons le régler à environ 0,5. Gardez ça.
J'espère que ça vous plaira.
J'espère que vous avez aimé
toutes les différentes mécaniques
et les petites choses, ainsi que l'
ajout et le retrait et le fait de nous assurer
que nous pouvons appliquer différentes choses, différents articles.
Je sais donc que c'était une longue vidéo.
Merci de votre attention.
Merci d'avoir mis en scène tous vos dossiers à chaque
fois et d'avoir
réalisé tous les progrès que vous avez réalisés.
Je vous remercie également pour le réfute,
incroyable critique que vous m'avez laissé
et je vous verrai dans la prochaine vidéo.