Transcription
1. Pourquoi vous devriez regarder ce cours: Donc, vous êtes probablement
ici à vous demander comment mes
jeux préférés sont-ils créés ? Comment l'ennemi sait-il
où je suis et me suive-t-il ? Comment doivent-ils
projeter des fichiers ? Comment fonctionnent les planches ? Puis-je créer mes propres niveaux ? Comment puis-je choisir des modèles ? Comment puis-je tirer sur ces armes ? Les réponses à toutes ces
questions deviennent claires une fois que vous comprenez quelques
concepts fondamentaux, comment ajouter un corps rigide
à un objet de jeu, commencer à le déplacer. Ajoutez des animations pour
que Sprite change dans un monde que nous avons construit à
l'aide d'un jeu de tuiles, permettez-lui d'interagir avec le monde et plus encore d'
une scène à l'autre. Oh, et ajoutez également des comportements
à ces objets en utilisant code avec plus de 30 scripts et
des milliers de lignes de code, vous deviendrez une programmation principale
C-Sharp. Je m'appelle Michael Moore, fondateur de WM game dev, et mon objectif est de
faire de vous le meilleur développeur de
jeux et la manière la
plus amusante possible. J'ai développé une stratégie
qui a aidé des milliers de développeurs
de jeux en herbe à atteindre leurs objectifs
de création de jeux réels. Et je veux faire
de même pour vous. Ce que j'ai appris, c'est qu'il peut être très
difficile de savoir par où
commencer et quelles mesures prendre pour
aller du débutant
au niveau intermédiaire, non seulement dans le développement de jeux, mais aussi dans la programmation et
apprendre à coder. Et c'est là que la nouvelle stratégie
mise à jour entre en jeu. Je l'appelle la pyramide cyclique, où nous commençons par apprendre bases
du moteur Unity, programmation
C-Sharp et de la conception de jeux à l'aide de la documentation des diapositives
et des unités, puis
nous utilisons immédiatement ce que nous avons appris pour
améliorer notre jeu. Mais au fur et à mesure que nous
progressons dans notre projet, nous revenons aux
mêmes concepts et utilisons ces concepts, ainsi que des méthodes plus
complexes et amusantes. Enfin, nous avons les deux
dernières sections où nous allons
plus loin que n'importe quel autre cours. Tout d'abord, vers l'unité avancée, où nous concevons une
machine d'état pour nos combats de boss. Et deuxièmement, le
C-sharp avancé était la semaine où nous avons donné une boucle de gameplay de niveau
2 cohérente. Vous aurez également la chance de fléchir les muscles de vos développeurs de jeux ,
car chaque
vidéo présente un mini défi à
relever. Et même si vous n'arrivez pas à
comprendre comment relever le défi, ne vous inquiétez pas, je serai là pour vous
aider après avoir
essayé de terminer le
défi avec vous. Et ce qui est le plus étonnant,
c'est que nous faisons tout cela avec la
dernière version d'Unity, avec les techniques et le
contenu les plus récents et le développement de
jeux modernes. Beaucoup d'étudiants, tout comme vous, qui ne connaissaient pas la
maison des marchandises et les y bordent les scores
pour être extrêmement utiles. Mais plus de 10 000 étudiants,
des centaines de critiques, un nombre qui a probablement augmenté au
moment où vous regardez cette vidéo et une
communauté active énorme sur la partition. Et je peux dire avec une confiance
absolue les scores permettent à tout débutant avec
0 expérience de codage de
sauter facilement et commencer à apprendre à
créer des gains incroyables. Alors, à quoi devriez-vous vous attendre
à la fin des scores ? Vous deviendrez un maître
résolveur de problèmes. Vous comprendrez
les principes fondamentaux du codage et apprendrez
comment programmer des jeux, tout comme ceux que vous
voyez à l'écran en ce moment. Tout ce qui est à notre avantage
sera configurable. Vous pouvez ainsi modifier, jouer et
donner au jeu une
sensation
individuelle et spéciale à ce sujet. Vous y mettrez donc
votre propre créativité et vous
en ferez vraiment
la vôtre. Je suis très enthousiaste à l'idée de commencer
et j'espère que vous l'êtes aussi. C'est le moment idéal pour
commencer à apprendre à coder. Plongez donc avec moi et
je vous aiderai chaque étape de votre parcours de développement de
jeux.
2. Comment utiliser ce cours: Bienvenue, mes développeurs de
jeux préférés. Et cette vidéo, en fait, pas dans cette vidéo. J'ai créé cette vidéo
afin que nous puissions
maximiser le potentiel d'
apprentissage de ce cours. Donc je vous veux, je veux vous guider à
travers quelques étapes que nous pouvons
utiliser pour extraire
pleinement toute
l'énergie d'apprentissage du cours que vous suivez
actuellement
parce que vous avez déjà, vous passez déjà
votre temps ici. Alors pourquoi ne pas le maximiser ? La première chose
que nous allons
comprendre est donc le fonctionnement des questions-réponses. Alors que vous
regardez les vidéos, vous les regardez. Peut-être qu'il arrive quelque chose qui ne
devrait pas comprendre complètement. Ce que vous pouvez faire, c'est
que vous pouvez aller de l'avant et glisser dans les
discussions ici. Et vous pouvez constater que vous
avez plusieurs options. Vous pouvez soit lancer une
conversation, poser une question, soit
simplement partager un projet. Ici, vous pouvez me poser
toutes les questions que vous voulez. Il n'est pas question de limite. Mais il y a un petit
pas à
faire avant de me poser une question. Et c'est-à-dire, allez-y et
faites vos propres recherches. Pourquoi est-ce que je vous demande de le faire ? Eh bien, parce que parfois
quand vous tombez sur un problème, que vous allez l'avant et que vous cherchez une
solution vous-même, puis vous le
trouvez ou vous ne le trouvez pas. Lorsque vous revenez me
poser la question, c'est beaucoup plus facile à comprendre. Pourquoi est-ce que c'est ? Parce que vous avez déjà fait quelques suggestions, peut-être qu'aucune d'entre elles ne
convenait. Mais au fur et à mesure que vous cherchez
la solution à votre problème, vous avez acquis
beaucoup de connaissances. Lorsque vous venez me voir,
lorsque vous demandez à Michael et que nous ensemble
la solution, vous comprendrez comment
tout clique et plus tard, quand vous rencontrerez peut-être
le même problème ou peut-être vous constatez ce problème
pour un autre étudiant. Vous pouvez les aider
et c'est beaucoup plus facile. Enfin, chaque fois que vous trouvez une solution à
votre question,
votre question et ajoutez-y votre question et ajoutez-y un préfixe sel parce que
d'autres étudiants peuvent avoir le même problème et ils
trouveront une solution pour leur problème s'ils voient le préfixe résolu derrière lui. Et enfin, avant de partir, vous voulez juste dire
une chose qu'il n'
y a pas de limite. n'y a pas de questions stupides, il n'y a pas de questions stupides. n'y a que des développeurs de jeux non
professionnels. Personne n'est né professionnel. Nous devons tous apprendre
par essais et erreurs. Vous ne croiriez pas
comment citation sans citation, mes questions ont été faites parce que je ne suis pas né un professionnel de l'unité
m'a pris des années de pratique, essais et d'erreurs ou de
questions, de googler des choses. Il s'agit donc d'un processus. Ne vous inquiétez pas, n'ayez pas peur, ne vous inquiétez pas
de certaines questions que
vous pourriez vouloir poser. Soyez assez courageux pour
chercher une solution. Si vous n'en trouvez pas, ne vous inquiétez pas. Laissez simplement une question. Je réponds toujours à tous
mes élèves et nous nous
penchons toujours aussi profondément que nécessaire
afin de trouver une solution
à n'importe quel problème. Parlons maintenant
du serveur Discord. Et c'est ici que vous
pouvez approfondir la communauté que nous avons
créée ici sur le développement de jeux ADM. Vous pouvez donc accéder au
lien dans la description de cette vidéo ou vous
pouvez visiter mon profil et trouver le lien
quelque part là-dedans. Et je recommande que
vous rejoigniez la discorde. Pourquoi ? Parce que la plupart du temps, il me
faudra peut-être quelques heures pour répondre en
fonction de votre provenance. Nous vivons peut-être dans des fuseaux horaires
différents. Peut-être que lorsque vous me
posez la question, il est minuit et vous avez
besoin d'une solution rapide. Je suis peut-être en train de dormir, je ne pourrai peut-être pas
accéder à mon ordinateur. Il est donc très
avantageux pour vous rejoindre la chaîne Discord
que nous avons créée. Et laissez-moi juste vous montrer la chaîne de
partition ici. C'est le début
de notre chaîne de discorde. Vous pouvez voir que nous avons
la communauté générale. Nous avons le chat C-sharp, nous avons le chat de conception de jeu, nous avons le spectacle de votre jeu. Nous avons des questions générales sur le
développement de jeux. Et vous pouvez voir que nous n'avons
toujours rien ici parce que c'est assez
nouveau car j'enregistre ça. Mais plus tard, lorsque
vous entrerez ici, vous remarquerez qu'il y a une vaste communauté de
personnes qui attendent de vous
aider et peut-être de personnes qui
attendent d'obtenir de l'aide de votre part. Et c'est très
bénéfique d'essayer de résoudre la question des autres. Vous ne croiriez pas combien j'ai appris en
aidant d'autres personnes. Et vous pouvez voir ici que
nous avons plusieurs cours. Ce sont tous les
parcours que double m gamma game down
a ou j'ai créés. Et nous pouvons voir aussi que nous
pouvons partager des mèmes et ici nous avons des discussions générales sur les
jeux, jeux
AAA, je ne sais pas
ce que vous aimez jouer. Nous pouvons en discuter ici le canal social ou dans la catégorie
, etc. Je vous recommande donc de
rejoindre notre serveur Discord. C'est très amusant. Nous allons nous amuser
beaucoup là-bas. Et c'est tout. C'est tout ce que je voulais
dire à propos du serveur Discord. Passons maintenant aux diapositives
du défi. Alors, quel est notre défi qui glisse. fur et à mesure que
vous parcourez chaque vidéo, vous remarquerez
qu'à un moment donné, je vais vous dire de
mettre la vidéo en pause et de
lancer le défi. Donc, lorsque vous verrez cette diapositive, vous attendrez que je
termine tous les points ,
puis vous devrez
mettre la vidéo en pause. Pourquoi est-ce que je mets l'accent sur ce mot ? Vous devez faire une pause ? Parce qu'il vaut mieux
apprendre en faisant et
non seulement en regardant nombreux cours que j'ai
appris et que j'
ai personnellement suivis là où je me sentais manquant
au département de faire. Donc. Vous venez de
regarder quelqu'un créer à nouveau. D'accord. C'est très bien. Et maintenant, c'est fini. D'accord ? Et puis vous terminez le cours. Et après quelques semaines, vous remarquez que vous ne savez pas
comment faire quoi que ce soit. Les diapositives de défi que
j'ai créées sont donc extrêmement importantes parce que vous commencez à le faire
au lieu de regarder. Et même si vous ne parvenez pas à
comprendre comment relever le défi, ne vous inquiétez pas. Je serai là pour vous
aider une fois que vous aurez essayé de relever
le défi avec vous. Vous n'êtes donc jamais laissé seul. Et en plus de cela, tout comme en regardant réponses à vos questions
avant de poser les questions dans les questions et réponses, lorsque vous faites un défi, vous tombez sur
plusieurs variables que vous pourriez je n'ai pas
envisagé auparavant. Et quand vous verrez comment j'ai
réussi le défi, vous l'aurez
beaucoup mieux enraciné dans votre tête lorsque vous rencontrerez le même problème lorsque vous commencerez à
créer vos propres jeux. Bon, passons à la structure
du cours et
parlons de chaque section. Et brièvement, juste pour vous renseigner
sur ce que nous allons faire. Tout d'abord, nous
avons la première section que vous
voyez actuellement. Nous avons comment
utiliser les partitions, comment télécharger et configurer
Unity et Visual Studio. Ensuite, nous
parlerons simplement de la conception du jeu l'inspiration de notre jeu et de l'endroit où nous
allons l'obtenir. Nous n'aurons qu'
une brève
introduction à Unity et Visual Studio, juste pour
que vous puissiez sortir cette première
phase inconfortable. Ensuite, nous allons mettre
en place notre monde. C'est comme il est dit, nous allons mettre en
place le monde que nous avons. Nous utiliserons un peu de
sprites avec
la configuration, le joueur, etc. Ensuite, nous allons mettre en place les mécanismes de tir
parce que
nous aurons évidemment des armes et
l'envahisseur de bots temporel. Nous aurons donc besoin d'
une sorte d'armes. Et la chose la plus importante chaque fois que vous recommencez, c'est de mettre en place la mécanique de base. Et c'est ce que nous allons
faire en organisant la fusillade. Nous allons mettre
en place les ennemis. De toute évidence, nous avons besoin d'ennemis. Il s'agira de la première
phase de notre configuration ennemie. Ensuite, nous
aurons une variété plus variée, disons, plus variée
chez les ennemis. Mais pour l'instant, cela suffira juste à avoir quelqu'un
pour tirer ça. Nous allons créer des
salles à l'aide de cartes de tuiles. C'est
ici que nous allons
apprendre à découper les sprites. Nous
en apprendrons déjà, mais nous apprendrons à créer des acides
biliaires à partir des sprites
tranchés. Et ensuite, nous aurons
le niveau de débit. C'est donc à ce moment que nous allons
commencer à passer d'un
niveau à l'autre, car il s'
agit évidemment d'un jeu voyou. Nous allons donc
créer ce flux de niveau. Continuons.
Nous avons la section 7, qui est l'
environnement distractible. Nous voulons avoir des caisses
que nous pouvons détruire et obtenir des pièces de monnaie et
non des caisses en fait, je pense qu'elles seront des
vases ou quelque chose comme ça. Nous obtiendrons des pièces de monnaie de leur part et nous obtiendrons de l'aide d'eux. Nous aurons des fusillades avancées. C'est donc ici que nous allons
créer un système d'armes. Ainsi, lorsque nous avons créé
le mécanisme de tir, nous n'aurons peut-être qu'
un pistolet, un fusil de chasse ou quelque chose comme ça. Dans ce cas, nous
aurons un fusil de chasse, fusil, un pistolet et toutes
ces bonnes choses. Ensuite, nous aurons
le système de santé parce qu'à ce stade, nous ne mourrons toujours pas et nous ne
tuons toujours pas l'ennemi,
il explose simplement. Dans cette section, nous
allons donc ajouter un système de santé où notre santé s'
écoule lentement, tout comme les ennemis. Nous avons les micros. Évidemment, nous pouvons ramasser des armes de ramassage de
santé, ramasser d'autres pièces de monnaie. Nous aurons la musique
et les effets sonores, car ce jeu
n'a pas de musique et effets
sonores aura
plusieurs types d'ennemis. C'est quelque chose que
je vous ai déjà dit. Nous avons déjà
un type d'ennemi, mais nous allons
créer différentes IA, quatre manières différentes pour
les ennemis. Nous aurons dans la Section 13, le système d'achat et d'argent, comme vous le verrez peut-être dans la
prochaine vidéo, ou dans les prochaines vidéos. Notre inspiration vient
d'un jeu appelé Hadès. Et là, nous avons
une boutique et tous, presque tous les jeux ont une
boutique et un système d'argent. Et c'est ici que nous
présenterons le nôtre et la boutique. Vous pouvez acheter de la santé en
améliorant et en achetant des armes. Quelque chose d'autre, nous verrons, nous allons créer des menus. De toute évidence, chaque
partie a un menu, donc nous aurons également un menu. Ensuite, nous avons la Section 15, qui est l'unité avancée, et c'est là que nous allons
créer la bataille des boss. Donc, jusqu'à présent, nous avons les ennemis, nous avons le système d'armes, nous avons tout mis en place. C'est maintenant l'heure d'une
vraie bataille de boss. Et je pense que chaque bon match
a ses propres batailles de boss. La mécanique sera
différente des ennemis réguliers, et elle sera différente par un système qui est
la machine d'état, qui est la partie avancée de
l'unité du cours. Alors, assurez-vous d'
accéder à la section. Enfin, nous avons
la section bonus, qui est la section 16, qui est la génération de salles. Donc, comme vous le verrez dans
le jeu que nous allons jouer sur le jeu,
en fait, n'importe quel jeu voyou. Il y a toujours la génération de
salles. Nous aurons donc, disons, cinq ou
six modèles de pièces. Et alors que vous tuez tous les ennemis et toutes
les vagues de chaque pièce, vous allez passer à
la pièce voisine et le
prochain terme sera aléatoire. Et vous aurez également
le choix entre deux chambres. Vous pourrez donc
choisir entre, exemple la salle de combat des boss
et une salle de squelettes, ou encore la salle de combat des boss
et une pièce remplie de pointes. Et puis peut-être une
pièce remplie de pointes. Et je ne sais pas, peut-être la boutique ou quelque chose comme ça. Il s'agira donc de la
programmation avancée C-sharp et orientée car il faudra beaucoup de travail pour que
cette sélection de pièce soit randomisée. Et ça va être très amusant. Nous allons apprendre beaucoup de choses. Avant de vous quitter, je vais juste vous
donner quelques mots
d'encouragement. Mais si vous
voulez l'appeler, cela peut appeler cela des encouragements, traverser ce voyage, vous allez faire face
à de nombreux défis. Assurez-vous donc de toujours les
parcourir chaque fois que
vous rencontrez un problème, je vous recommande
d'abord de faire vos propres recherches. Alors, allez poser
la question sur Google, Checkout, quelques
vidéos sur YouTube, puis lorsque vous vous
trouvez extrêmement en stock, allez dans les questions-réponses, recherchez vos questions, regardez pour obtenir une réponse. Et vous pouvez aussi me demander
immédiatement, je suis toujours là, je
réponds toujours à n'importe quelle question. Et cela dit, ce sera un voyage
incroyable de, je ne sais pas combien d'
heures ni pour vous, combien de semaines il vous
faudra pour terminer le cours ou peut-être des jours
qui vous prendront des jours. Ce que je recommande,
c'est d'accéder
aux deux dernières sections car
tout le cours l'est, surtout si vous êtes débutant. Le discours commence donc
à un niveau très débutant, nous passons à un niveau intermédiaire. Et comme vous le voyez en ce moment, et dans les deux dernières sections, nous passons au niveau avancé. Et une fois que vous aurez
atteint les cinq ou six dernières sections, vous aurez tellement de compétences, tellement d'outils dans
votre arsenal que les sections avancées
seront assez faciles. J'espère que je vous ai tout
appris correctement ? Cela dit, ne
perdons plus de
temps et commençons. Continuez.
3. Téléchargement de l'unité et Studio visuel: Bienvenue, mes collègues développeurs de
jeux. Dans cette vidéo, nous
allons
télécharger Unity et
bloquer bien et y
intégrer les outils
Visual Studio dont nous aurons
besoin pour les partitions. Commençons donc. Tout d'abord, vous devez aller
dans Google et ensuite,
allez simplement taper
ici, téléchargez Unity. C'est aussi simple que ça. Lorsque vous tapez, vous
recevrez beaucoup de suggestions. Alors assurez-vous de trouver
celui avec Unity 3D.com et d'obtenir l'
unité bien sûr, et cliquez sur le téléchargement Unity, qui ouvrira cette
page ici. Vous
devrez donc télécharger Unity Hub si vous
n'avez jamais utilisé Unity auparavant. Qu'est-ce que Unity Hub ? Unity Hub est comme un endroit
où nous conserverons toutes nos versions d'Unity
ainsi que tous les
projets que nous réalisons. Maintenant, avant Unity Hub, notre projet se
déroulera sur notre ordinateur, quelque part dans différents
répertoires et ainsi de suite. Ainsi, le Unity Hub
facilite
grandement la réalisation de votre
projet et l'organisation est vraiment bonne, si elle est vraiment bonne. Assurez-vous donc de télécharger Unity en fonction
du système d'exploitation dont vous disposez. Par conséquent, si vous possédez macOS, vous devez vous
assurer de télécharger le macOS Unity 40. Et si vous disposez d'un Windows 7, vous
le téléchargez pour Windows 7. Il suffit donc de cliquer sur
Télécharger Unity Hub. Et lorsque vous avez terminé le téléchargement, Q devrait avoir ce
dossier d'installation ici. Lorsque vous double-cliquez dessus,
il vous demandera si
vous voulez le faire ? Oui. Pour continuer,
vous cliquez sur Accepter, vous choisissez la
destination où vous souhaitez placer votre Unity Hub. Ensuite, vous commencez
l'installation. Maintenant, comme Unity Hub est
déjà installé, je ne l'installerai plus. Alors assurez-vous que vous installez tout et je vous
verrai juste un peu. Oh, d'accord, bon retour. Donc, si vous avez installé
Unity Hub correctement, vous devriez recevoir
un message ou une fenêtre qui
ressemble à ça. Maintenant, nous
n'avons pas encore de projets, mais c'est ici que nos
projets seront tous présents et nous pourrons
y accéder à notre guise. Maintenant, avant de continuer, Unity devra s'assurer
que vous avez un compte. Voici donc mon
compte ici. J'ai utilisé mon Google Gmail pour
créer un compte sur Unity. Vous pouvez créer
un nouveau compte ou utiliser
Gmail ou Facebook. Je ne suis pas sûr qu'ils le permettent. Et une fois que vous avez créé
un compte sur Unity, vous pouvez accéder
directement ici aux installations. Et c'est ici que nous téléchargeons différentes versions de Unity. Maintenant, pour ce cours, je vais utiliser la dernière version d'Unity que nous avons actuellement. Maintenant, si vous souhaitez
installer une nouvelle version d' Unity ou n'importe quelle
version d'Unity, allez
simplement
ici dans l'annonce. Cliquez sur Ajouter. Et ici, vous pouvez
voir que nous avons différents types d'unité
que nous pouvons installer. Maintenant, tout d'abord, nous avons
les versions recommandées. Ce sont ceux
qui ont déjà été testés et testés en profondeur
et ils fonctionnent parfaitement. Mais vous pouvez aussi aller
chercher les sorties officielles. Maintenant, nous allons utiliser
cette version ici. Et c'est une très bonne version. Vous pouvez l'installer. Et vous avez aussi la version préliminaire
est maintenant que
les communiqués de presse fonctionnent de
la même manière que la version officielle et les versions recommandées, mais ils sont parfois
un peu buggés et vous pouvez rencontrer quelques bugs sur les versions officielles. peut également y avoir un problème de bogue, mais ils ne sont pas
aussi évidents que dans les versions précédentes. Il se peut que vous ne rencontriez
aucun problème, mais je vous
recommande d'utiliser la version officielle
car elles sont plus
récentes que les versions
recommandées et moins volumineuses que
les versions précédentes. Téléchargez donc la dernière version que vous avez sur votre ordinateur. Ou peut-être que vous venez
du futur et que vous avez
une version plus récente que moi. Téléchargez donc la dernière version. Et ne vous inquiétez pas, ce cours fonctionne ou le projet
que nous allons
créer fonctionnera sur n'importe quelle version
d'Unity et du futur. Maintenant, nous allons
cliquer sur Suivant ici. Et c'est une partie très
importante du
téléchargement et de l'
installation de Unity maintenant. Et ici, nous avons des modules, et ces modules sont
comme des modules complémentaires à notre unité qui nous permettent de créer des jeux
sur différentes plateformes. Par exemple, vous
pouvez voir ici que nous pouvons maintenant charger des modules pour
différentes plates-formes. Par exemple, si vous souhaitez
créer un jeu sur Android, vous pouvez utiliser le
module pour Android. Ou si vous souhaitez
créer un jeu pour iOS ou des icônes, etc. Vous cherchez peut-être également
à créer des jeux pour Linux ou Mac OS ou quoi que ce soit. Ainsi, en fonction de ce que
vous souhaitez créer, vous pouvez choisir l'un de
ces modules de modèle, ou attendre plus tard, vous pouvez les télécharger
à tout moment. Vous avez également les documentations que je vous recommande de télécharger. Ces documentations sont
la documentation Unity et elles sont très importantes. Peut-être que vous
voulez parfois regarder certaines choses. Et enfin, vous avez
le pack linguistique. Et peut-être que si vous êtes
chinois ou coréen, je ne suis pas sûr de ce que c'est, honnêtement, je n'en ai aucune idée. Vous pouvez peut-être utiliser l'un de
ces modules linguistiques. Mais la chose la plus importante, et vous devez vous
assurer que Microsoft Visual
Studio Community 2019 ou une version ultérieure est installée
avec votre unité. Parce que nous allons utiliser Visual Studio pour
coder tout, tout et tous
les comportements des objets que nous
créons de l'immunité. Maintenant, c'est tout ce que vous devez faire. Cliquez simplement sur Suivant
et vous commencerez l'installation de votre Unity. Cela étant dit, il est temps de relever votre
premier défi. Et votre défi
sera de
télécharger Unity et
Visual Studio. Alors téléchargez Unity Hub, comme je vous l'ai montré, assurez-vous que si
vous avez un Mac, vous téléchargez la version Mac. Si vous possédez un Windows, vous téléchargez la version
Windows. Vous devez ensuite télécharger
la dernière version. Enfin,
assurez-vous télécharger Visual
Studio avec Unity. Mettez la vidéo en pause
dès maintenant
et téléchargez Unity
avec Visual Studio. Et dans la prochaine
vidéo, nous allons simplement passer en revue l'interface
de Unity et Visual Studio que vous venez de voir, nous pouvons surmonter nos craintes initiales. Je vous verrai donc dans le prochain.
4. Unity et Visual Studio: Bonjour et bienvenue,
mes collègues développeurs de jeux. Dans cette vidéo, nous
allons simplement expliquer
ce qu'est Unity,
ce qu'est Visual Studio, comment ils
communiquent entre eux. Et nous expliquerons
un peu l'interface de
ces deux outils étonnants. Tout d'abord, qu'est-ce que l'unité ? Laissez-moi mettre mon laser. Alors laser s'il vous plaît. D'accord. Unity est donc un développeur de moteur de
jeu multiplateforme développé par Unity Technologies. Qu'est-ce que je veux dire
par multiplateforme ? Multiplateforme signifie
qu'il peut être utilisé sur différents types de plates-formes. Par exemple, Unity, Windows et Mac OS utiliseront Unity
pour développer nos jeux. Et bien sûr, nous
allons utiliser ce moteur Unity ici. Avant de passer à autre chose, permettez-moi de vous montrer l'
interface de l'unité et nous
allons ensuite
expliquer Visual Studio, et c'est l'unité. Félicitations, vous êtes
arrivé jusqu'ici. Tout d'abord, nous avons notre barre d'outils
ici à propos de tout. Et cette barre d'outils
permet d'accéder
aux fonctionnalités de
travail les plus essentielles. Sur la gauche, nous avons
les outils de base pour manipuler la vue de scène et les objets du jeu qu'elle contient. Au centre, nous
avons le
contrôle de jeu, de
pause et de pas ici, ce qui nous permet de jouer à
notre jeu, de mettre notre jeu en pause. Ensuite, nous pouvons également ajouter
une étape par image. Les boutons de droite vous
donnent accès à Unity, Collaborate et au Cloud qui n'utilisera pas
et aux comptes. Nous avons également
ici les couches que nous
utiliserons beaucoup dans ce
cours pour notre projet. Et nous avons enfin la
mise en page et la bi-couche. C'est notre mise en page ici. Nous pouvons donc modifier la
mise en page, par exemple, la répartition deux par trois
ou quatre. Ou bien, nous pouvons utiliser la valeur par défaut et c'est ce que
nous allons utiliser. Donc, si vous n'avez pas
la même interface que moi ou différents
types de mises en page. Il suffit de cliquer
ici, de passer par défaut, et nous aurons tous les deux
la même interface. Maintenant, la prochaine chose dont je
veux parler est la fenêtre hiérarchique ici. Donc, si nous
cliquons ici, nous pouvons voir que nous
avons une caméra principale et c'est notre vue de scène. Nous arriverons à notre vue de
scène et nous
avons la
lumière directionnelle ici. Mais cette hiérarchie, cette
hiérarchie
ici représente tous les objets de
jeu de notre scène. Ainsi, chaque élément de la scène
est une entrée dans la hiérarchie. Les deux fenêtres sont donc intrinsèquement liées à l'
amélioration. La hiérarchie révèle
la structure de la façon dont les objets de jeu
s'attachent les uns aux autres. Et vous verrez plus en détail ce que je veux dire par attaché
l'un à l'autre. Maintenant, nous avons la vue de la
scène ici. Et si nous cliquons avec le bouton droit de la souris
sur le bouton de la souris, nous pouvons réellement nous
déplacer à
l'aide des touches WASD ici. Et vous pouvez voir que nous
pouvons nous déplacer dans notre monde. Et ici, nous allons
construire nos jeux. Nous avons également une autre fenêtre
ici, qui est le jeu, et c'est notre vue de jeu. C'est ainsi que nous voyons notre jeu du point de vue de la
caméra, va
tout changer. Et c'est là que nous
allons nous
concentrer plus tard avec la création de
notre jeu. Ensuite, nous avons la fenêtre de l'inspecteur sur la droite et
laissez-moi revenir sur les scènes. Ainsi, dans une fenêtre d'inspecteur, vous êtes autorisé à afficher et à modifier toutes les propriétés de l'objet de jeu
actuellement sélectionné. Comme vous pouvez
le voir maintenant, nous avons sélectionné
la lumière directionnelle. Nous pouvons augmenter et
diminuer l'intensité. On peut changer la couleur, on peut jouer
avec tout. Et nous avons également la caméra
principale ici. Nous pouvons également changer et
jouer avec différentes propriétés. Et l'inspecteur juste ici. Et ces
mots techniques sont très importants car je vais
les utiliser tout au long du cours. Souvenez-vous donc d'un inspecteur de
hiérarchie, la vue de scène,
du jeu de vues. Enfin, nous avons la fenêtre
du projet ici. Et c'est ici que nous affichons les bibliothèques et
les ressources de notre jeu. Donc, si vous cliquez sur les
ressources, actuellement, nous n'avons rien d'
autre que les scènes. Et si nous double-cliquons
sur des scènes, nous avons
ici l'exemple de scène que nous pouvons double-cliquer
et entrer, nous pouvons enregistrer. Nous n'avons donc rien d'autre
que nos scènes. Parlons ensuite de Visual
Studio et de ce que c'est. 0. Alors, qu'est-ce que Visual Studio ? Visual Studio est donc en fait Microsoft Visual Studio
et c'est un IDE. Qu'est-ce qu'une pièce d'identité ? Il s'agit d'un environnement
de développement intégré. Cela signifie que c'
est comme un environnement dans lequel nous pouvons développer du
code intégré dans Unity. C'est donc une explication très
compliquée, mais c'est ici que nous allons écrire
tout notre code. VS
nous aidera à écrire le code. Permet de manipuler des objets de jeu
dans Unity à l'aide de scripts. Donc, quels sont nos scripts, c'est ainsi que nous utilisons
Unity avec Visual Studio. Nous voulons donc que l'unité communique
avec Visual Studio. En unité, vous allez créer
des objets de jeu. Ainsi, par exemple, la voiture
que nous voulons déplacer sans avoir le joueur
que nous voulons déplacer. Les objets
qui tombent
peut-être, peut-être une sorte,
les armes qui tirent sur les monstres
qui nous attaquent. Nous mettons ces objets, tous
ces objets dans Unity. Mais chaque fois que nous
voulons les manipuler, nous allons
utiliser Visual Studio. Mais Unity et Visual Studio ne
fonctionnent pas automatiquement ensemble. La façon dont nous les faisons
fonctionner ensemble consiste à utiliser ces scripts qui
sont des fichiers CSV à points. Et c'est ici que nous
écrivons tous nos codes
dans les fichiers CSS de Visual Studio et là, et à partir de ces scripts, nous
allons manipuler les comportements des objets que nous avons à l'intérieur de Unity. Permettez-moi de vous montrer à
quoi ressemble Visual Studio. Il s'agit donc de Visual Studio. Laissez-moi juste zoomer un peu. Et ici, vous pouvez
voir que tout d'abord, nous avons ces trois lignes
qui utilisent quelque chose,
utilisent quelque chose et
utilisent le moteur d'Unity. Maintenant, ces espaces de noms sont appelés espaces de noms. Et ce
qu'ils sont, c'est une collection
ou une bibliothèque de codes qui nous permettent d'utiliser
certaines choses dans notre jeu. Par exemple, le moteur
Unity nous permet d' utiliser différents
aspects de l'unité. Par exemple, la
physique dans Unity. Cela nous permet d'accéder à divers détails dans Unity sans
cela. Par exemple, si nous supprimons
cette ligne ici, nous ne pouvons plus
utiliser le comportement mono. Et parce que nous n'
utilisons pas 10 comportements, ce que nous obtiendrons dans une seconde. Nous ne pouvons plus utiliser le
démarrage et la mise à jour. Nous allons donc rallumer cela
et nous pourrons utiliser un comportement mono. Avant d'en arriver là, parlons d'abord de
ce que signifie le public. public veut dire que
c'est pour tout le monde. Il y en a deux types. Il y a des services publics et
privés. Nous y arriverons également. Plus tard. Nous avons la classe et
le nom de la classe, et c'est en fait
le nom de notre script. Et nous apprendrons que nous
devons toujours
nous assurer de
bien nommer notre classe la première fois, car cela nous causera
beaucoup de problèmes. C'est ainsi que nous créons
une classe et tout ce code sera écrit automatiquement afin que vous n'
ayez pas à vous en soucier. Ces deux points
ici signifient que nous sommes hérités, héritant d'un comportement
mono. Donc, en quoi consiste le comportement de Monte
10, que
nous utilisons des comportements déjà intégrés à
Unity qui nous
permettent de contrôler les
différents objets du jeu. Et en raison du comportement de l'argent, nous pouvons utiliser deux
méthodes ou fonctions, qui
seront bien sûr plus tard dans comme commencer et mettre à jour. Et en fait, ici,
vous pouvez voir que nous
avons cette ligne verte. Et cette ligne verte signifie
qu'il s'agit d'un commentaire. Et chaque fois que vous
voulez créer un commentaire, il
vous suffit de placer ces deux
barres obliques derrière lui. Et chaque fois que nous mettons deux
barres obliques inverses derrière n'importe quel code, cela signifie qu'il s'agit
d'un commentaire et qu'il
ne sera pas exécuté en manteau. Super, alors qu'est-ce que le début ? Le démarrage est appelé avant
la première mise à jour de la trame. Ainsi, chaque fois que l'objet de
jeu ce script est attaché
démarre, le code à l'intérieur de cette
méthode de démarrage sera exécuté. Et comme pour commencer la mise à jour, on
appelle une fois par image. Donc, chaque image traverse notre
jeu. Cette méthode, mise à jour sera
appelée et tout à
l'intérieur sera exécuté
pour le dire plus simplement, commencer est là où nous mettons
nos conditions initiales. Ainsi, par exemple, le
poids de la voiture, la vitesse de notre joueur,
le climat peut-être. Et puis la mise à jour est l'endroit où
nous faisons bouger notre voiture. Nous faisons sauter notre joueur, et nous faisons le changement climatique, par
exemple, le vent
explose ou quelque chose comme ça. Et l'autre, je ne sais pas. C'est ainsi que nous
utilisons Unity avec Visual Studio. Bien sûr, à l'avenir, au fur et à mesure que
nous avancerons notre projet, vous aurez une
meilleure compréhension du démarrage et de la mise à jour
et de tout ce qui s'y trouve. Ne soyez donc pas
trop inquiet si vous ne comprenez pas
tout de suite. Mais maintenant, vous avez un
défi devant vous. Et votre défi va
aller faire une messe. Alors ouvrez Unity et désordez. Cliquez sur quelques éléments. Et quand vous aurez fini, passez à la vidéo suivante et
nous allons créer notre premier code et commencer. Et c'est que vous ne
savez toujours pas comment créer
un nouveau projet. Ne vous inquiétez pas à ce sujet. Dans la vidéo suivante, nous
allons créer un projet et faire notre premier tour. J'espère que
cette vidéo vous a plu et je vous verrai dans la prochaine.
5. Base de contrôle de version: Bienvenue, mes collègues développeurs de
jeux. Dans cette vidéo, nous
allons
tout apprendre sur le contrôle des
versions, arborescence des
sources et la création de
référentiels de nos projets. Comme vous pouvez le voir ici, nous avons créé un nouveau projet et nous avons téléchargé l'arborescence des
sources. Nous avons maintenant quelques
commits ici, et nous avons en fait
renversé quelque chose. Nous avons créé notre commit
initial, ajouté un cube, l'avons annulé. Nous pouvons réellement
inverser ce commit. Une canette. Cliquez donc sur Oui. Comme vous pouvez le constater, nous
pouvons revenir à Unity reload et nous avons
notre cube ici. Nous allons
tout apprendre dans les moindres détails. Donnez-moi
toute votre concentration. C'est très important. C'est une vidéo
ou une leçon extrêmement utile et nous
resterons avec vous pour toujours tant que vous vous
engagez à
devenir programmeur professionnel
ou développeur de jeux. Donc, ne perdons plus de
temps et commençons. Ok. Donc, la version contrôle ça et met mon contrôle de version
laser. C'est difficile à apprendre. C'est encore plus difficile à enseigner, mais je vais essayer de rester
aussi simple que possible. Et quand vous en prenez le coup,
croyez-moi , c'est très
simple et facile à utiliser. De plus, c'est une compétence indispensable que vous devez
apprendre si vous souhaitez devenir un développeur de jeux
professionnel ou même un programme professionnel. Commençons donc
par ce qui est. Tout d'abord, il s'agit d'un
système qui est
responsable de la gestion des modifications apportées
aux programmes informatiques. Cela signifie donc que chaque fois que nous
créons des modifications dans nos programmes, nous pouvons réellement enregistrer ces modifications à chaque
étape de notre projet. De cette façon, nous pouvons
tout d'abord vérifier ce que nous avons fait. Nous pouvons créer différents
types de versions où nous
pouvons revenir en arrière et modifier les
choses que nous avons créées. Il permet un meilleur travail d'équipe. Par exemple,
supposons que quatre ou cinq personnes travaillent
sur le même projet, mais chacune d'entre
elles a une tâche différente à créer. Le contrôle de version est donc un très bon moyen de
gérer tout cela. Et pourquoi en avons-nous besoin ? Eh bien, pourquoi nous, nous l'utilisons
réellement ? Eh bien, nous l'utiliserons pour nous
souvenir de la version précédente de notre jeu et avoir plus de
flexibilité pour expérimenter. Habituellement, le développement de jeux est un environnement où il
faut beaucoup d'
expérimentations. Par exemple, vous
souhaitez ajouter une sorte de propriété à un objet de jeu et peut-être
briser l'intégralité de votre projet. Vous souhaitez donc toujours
avoir une version antérieure de votre projet avant d'ajouter ce mécanisme de rupture de jeu. Vous pouvez donc toujours revenir en arrière
et recommencer à partir de là. C'est donc extrêmement important, surtout pour les développeurs de jeux
qui ont toujours besoin d' expérimenter de nouvelles idées et de nouvelles choses dans leurs
jeux et projets. Et comment allons-nous l'utiliser ? Eh bien, nous allons utiliser quelque chose appelé arbre source, et c'est le contrôle de version. Il nous permet de créer
différentes versions. Et
tout d'abord, c'est gratuit. C'est très facile pour les
débutants, très flexible, et il dispose d'une interface très
simple que nous pouvons utiliser en tant que débutants. Allons donc
télécharger l'arborescence des sources. Permettez-moi de vous montrer où
nous pouvons le faire. Si vous ouvrez Google Chrome ou n'importe quel
navigateur que vous possédez, accédez
simplement à Google et
ici , téléchargez l'arborescence des sources. Vous devriez trouver un
lien ici, et il devrait s'agir de
l'arborescence source. haut. Lorsque vous cliquez dessus, vous accédez
directement à leur site Web. Si vous faites défiler la page vers le haut, vous pouvez voir que vous avez la possibilité de
télécharger pour Windows. Mais si vous êtes sur un Mac, assurez-vous de cliquer
ici et de télécharger arborescence des
sources pour Mac OS ou
cela ne fonctionnera pas pour vous. Donc, si vous avez un Mac, téléchargez la version Mac, si vous possédez un Windows, téléchargez la version Windows. Assez simple. Maintenant, lorsque vous avez
terminé le téléchargement, vous devriez obtenir ce
fichier ici. Et lorsque vous double-cliquez dessus, vous devez démarrer
l'installation. Maintenant que j'
ai déjà l'arborescence des sources, je ne vais pas l'
installer une autre fois. Je vais juste vous guider tout
au long du processus
d'installation. C'est donc la première fenêtre qui
va apparaître pour vous. Tout d'abord, vous devez bien sûr accepter la licence. Et vous pouvez peut-être
désactiver cela si vous ne voulez pas e-mails provenant de arborescence des
sources et ainsi de
suite à la leçon. La prochaine chose que vous devez faire est créer un
compte à l'occasion, vous pouvez vous rendre à
lysine et placer comme société mère
de
l'arbre source peut aller de l'avant et créer
un compte là-bas, ou vous pouvez utiliser un compte
existant si vous possédez déjà un Gmail. J'en crée personnellement
un à l'aide de Gmail. C'est beaucoup plus rapide,
c'est beaucoup plus facile et ils ne vous spamissent pas
avec beaucoup d'e-mails. La prochaine étape ici, nous allons
le connecter à un compte. Maintenant, c'est bien sûr que nous ne le ferons pas. Si vous souhaitez héberger votre code sur certains sites Web tels que
GitHub ou Bitbucket. Nous ne le ferons pas, donc vous pouvez simplement cliquer
ici sur la configuration ignorée. Enfin, lors de
l'installation de l'arborescence des sources vous
indiquera qu'il est
incapable de localiser get. Pour ce faire, il suffit de cliquer sur Télécharger
et la version intégrée de Git et de continuer. Et ensuite, il peut aussi vous
demander quelque chose
qu'on appelle un mercure. Mercurial est un
système différent, tout comme obtenir. Il nous permet de sauvegarder différentes
versions de notre projet. Nous n'utiliserons pas Mercurial, donc vous pouvez simplement cliquer sur, je ne veux pas télécharger ou je ne
veux pas utiliser Mercurial. Et cela devrait être lorsque
vous avez fini d'installer. Vous devriez avoir ça ici. Et vous, eh bien, cette fenêtre juste ici lorsque vous
démarrez l'arborescence des sources, si vous ne cliquez pas simplement
ici sur Créer et que vous devriez obtenir cette fenêtre. C'est ici que nous
créons réellement notre référentiel. Et ici, vous pouvez voir que nous
avons le chemin de destination, le nom et le type de contrôle de version
que nous voulons utiliser. Bien sûr, nous
utiliserons le GET. Nous avons également la possibilité de
créer un compte, mais comme je vous l'ai dit, nous
gardons les choses très simples. C'est la première fois que nous ne
créerons aucun compte. Nous allons donc
choisir le chemin
de destination de notre référentiel. Alors, quel est le projet que nous allons réellement créer un référentiel
pour les versions suivantes de. Eh bien, créons
notre premier projet que nous allons utiliser. est donc ici que
vous ouvrez le Unity Hub. Et comme vous pouvez le constater, nous
avons déjà Hello World que nous
n'avons pas dans une vidéo précédente
qui cliquait sur Nouveau. Et nous allons nous assurer qu'
il s'agit d'un projet 3D. Et ce
sera notre cyberespion 2087. Allons de l'avant et
créons ce projet. Cliquez donc sur Créer. Et, bien sûr, j' utilise
toujours ma magie de l' édition pour
accélérer ce processus. Je vous verrai de l'autre côté. Bon, bon retour. J'espère que tout s'est
arrangé pour vous. Nous avons donc maintenant un nouveau projet
qui est cyber malgré 2087. Maintenant que
notre projet a été créé, nous
pouvons
commencer à créer un référentiel. Maintenant, si nous revenons dans notre arborescence des
sources ici, nous pouvons cliquer sur Parcourir et nous pouvons aller de l'
avant dans les projets Unity. Et vous pouvez voir que nous avons un monde de bonjour et que nous avons
un cyberespace d'ici 2087. Nous allons donc sélectionner ce dossier. Il créera un référentiel
sous ce nom. Si nous cliquons sur Créer, cela posera un problème. Ne vous inquiétez pas à
ce sujet. Cliquez sur Oui. Et voilà, maintenant nous avons
commencé à créer un référentiel. Vous avez les
fichiers mis en scène ici. Vous avez différents
types de boutons. Vous n'avez pas à vous
soucier d'aucun d'entre eux pour l'instant, il suffit de vous concentrer sur les fichiers mis en scène, sur les fichiers mis en scène et de
valider ici. Maintenant, si nous faisons
défiler ces fichiers sur scène, vous pouvez voir que la plupart d'
entre eux proviennent de la bibliothèque. Nous descendons jusqu'à la fin, nous pouvons voir que certains d'entre eux sont
Tampa 10 ou temporairement. Nous pouvons également constater que nous avons des paramètres de
projet et que ce sont tous les fichiers que
nous avons pour notre projet. Nous avons également ici des atouts pour l'unité dans les
scènes par exemple. Il s'agit donc d'un référentiel qui est une version de notre projet
actuel. Maintenant, le problème ici
est que, comme vous pouvez le constater, il y a une
tonne de fichiers, et B n'en aura pas tous
besoin. En fait, nous n'aurons
presque besoin d'aucun d'entre eux. Nous n'aurons besoin que d'un
certain type de fichiers. Nous voulons donc ignorer la bibliothèque et les fichiers
temporaires temporaires. Pourquoi est-ce que c'est ? Laissez-moi vous
montrer en ouvrant le répertoire de notre projet. Oh, ok, c'
est le répertoire Cyberspace by 2080 sevens
dans le projet Unity, comme vous pouvez le voir ici. Nous avons donc les ressources, les journaux de bibliothèque,
les paquets , etc., et cetera. Maintenant, qu'est-ce que le
dossier temporaire et quel est le dossier de la bibliothèque et pourquoi
n'en avons-nous pas réellement besoin ? Le temporaire est donc
un moyen pour l'unité de s'
ouvrir plus rapidement chaque fois que
nous commençons le projet. Et il est toujours créé
chaque fois que nous ouvrons un projet. Par exemple, si je
vais dans Unity
ici et que je le ferme réellement, vous verrez que le fichier
temporaire s'affiche. Va disparaître. Et même si nous supprimons
la bibliothèque maintenant, allons
donc supprimer entièrement
cette bibliothèque. Si nous retournons dans notre Unity Hub et
ouvrons le cyberespion 287. Comme vous pouvez le voir ici, vous avez vu que la bibliothèque
a été créée à nouveau et que le dossier temporaire
a également été créé. Bien sûr, le projet devrait prendre un peu plus de temps
à s'ouvrir. Mais c'est la preuve qu' une bibliothèque et les dossiers
temporaires ne
sont pas nécessaires pour que nous puissions
toujours engager et mettre en scène. Et qu'est-ce que je veux dire par étape ? Ainsi, chaque fois que nous mettons en
scène nos dossiers, nous créons
un commit à partir d'eux, n'importe quelle version de ceux-ci. Et la bibliothèque
prend beaucoup de place. Comme vous pouvez le constater, si
nous faisons défiler vers le bas, il occupe
la majeure partie de l'espace et nous ne voulons aucun d'entre eux. Alors, comment devrions-nous procéder ? Eh bien, nous pouvons ignorer tous les
dossiers qui
se trouvent sous la bibliothèque en choisissant simplement n'importe lequel des dossiers qui
ont une bibliothèque dessus. Cliquez dessus avec le bouton droit. Et ici, vous pouvez
voir que nous avons la possibilité d'
ignorer l'un d'entre eux. Cliquez donc sur Ignorer. Et ici, vous avez la possibilité ignorer ce nom de fichier exact, ignorer tous les fichiers
portant cette extension, ou vous pouvez ignorer tout ce qui se trouve
sous une bibliothèque, et c'est ce que nous voulons. Cliquez donc sur Okay. Et comme vous pouvez le constater,
tout ce qui se trouve sous bibliothèque a été ignoré, donc nous ne pouvons pas le
mettre en scène, nous ne pouvons
donc pas l'enregistrer dans notre nouvelle version. Et si vous faites défiler vers le haut, vous avez peut-être remarqué
que nous avons ici un nouveau dossier qui est le
point git ignore. Et lorsque nous cliquons
dessus à droite, vous pouvez voir qu'il
possède la bibliothèque. Et si nous
double-cliquons dessus, nous pouvons l'
ouvrir dans notre bloc-notes et ici nous pouvons ajouter les
différents fichiers que nous voulons également ignorer. Quels sont donc les fichiers
que nous voulons ignorer ? Eh bien, il y a une tonne
de fichiers, mais heureusement, quelqu'un a
parcouru tous ces fichiers et créé
une liste de tout ce que nous pouvons ignorer
lors de la création contrôles de
version ou
versions de notre projet. Et pour trouver ce fichier, vous pouvez aller à nouveau
sur Google ou sur le front. Allez-y et recherchez
dot git, ignorez l'unité. Et vous devriez avoir
ce lien
ici pour github.com. Et il sera hébergé sur GitHub. Si vous ouvrez ce lien, il vous emmènera ici. C'est donc le point
gitignore et c'est l'unité dot git ignore. Et ce sont tous les
fichiers que nous pouvons ignorer lors de la création
de versions de notre projet. Vous pouvez cliquer sur la ligne ici, et cela ouvrira
cette fenêtre ou cet onglet. Allons
de l'avant et sélectionnez-les tous en cliquant
sur contrôle a. Nous copierons tout cela en utilisant contrôle C. Et nous allons coller ici dans notre bloc-notes
dot gitignore. Et maintenant, nous avons le bloc-notes
gitignore
rempli de tous les fichiers que nous
n'utiliserons pas pour nos 3 positifs. Nous sauverons cela en
utilisant Control S. Et maintenant dans Unity ou je
veux dire dans l'arborescence des sources, vous pouvez voir que lorsque nous avons eu le git ignoré,
tout est ignoré. Nous allons mettre en scène tout cela. Et lorsque nous mettons en scène tout cela, vous pouvez voir que ce
sont les fichiers qui vont être validés. Et il s'agirait de notre engagement
initial ou de la
version initiale du dépôt du projet. Et généralement, chaque fois que vous
créez votre commit initial, nous appelons cela l'initiale. Vous pouvez le mettre en majuscule, l'initiale, les oups, la validation
initiale. Et nous cliquons sur
Commit ici. Maintenant, si vous regardez à gauche, vous pouvez voir que nous avons
des branches ici et nous avons la branche principale. Félicitations, nous avons
créé notre premier engagement. Très joli. Maintenant, permettez-moi vous
montrer comment nous allons aller
plus loin, même si cette vidéo
a été assez longue. Mais je pense que nous devons disposer d'une base adéquate pour le contrôle de l'arborescence source et des versions au fur et à mesure que nous
avançons dans notre projet. Disons donc que nous sommes dans
notre projet ici. Et allons-y et
créons des cubes. objet 3D. Cliquez avec le bouton droit de la souris dans la hiérarchie. objet 3D, créez un cube, et maintenant nous avons un cube. Allons-y un peu à l'échelle. Donc, mettez-le à l'échelle sur
le x, le y et le z. Super. Maintenant, nous avons un
cube et notre scène. Et maintenant, si nous
entrons dans l'arborescence des sources, sauvegardons cela avant de partir. Et il doit le
sauvegarder dans une certaine scène. Alors, passons à l'intérieur des scènes. Ce sera notre exemple de scène. Bien sûr. Exemple de scène,
oui, remplacez-le. Nous avons donc cet exemple de
scène de retour et d'arbre source. Attendez-le un peu,
et vous pouvez voir que nous avons des modifications non validées. Par conséquent, si nous cliquons dessus, vous pouvez voir que les fichiers
sur scène sont modifications à l'intérieur des scènes, c'
est-à-dire la scène d'exemple. Et ici, vous pouvez voir en
détail ce que nous avons créé maintenant. C'est un peu bizarre ici, mais si vous regardez de près, vous pouvez voir que nous avons
créé un collisionneur de boîtes. Et en gros, cela
représente le cube que nous avons ajouté à notre scène. Allons de l'avant et mettons en
scène tout cela. Nous pouvons cliquer sur
Commit ici et nommer un cube ajouté. Cliquez sur le commentaire. Et maintenant, dans notre branche principale, vous pouvez voir que nous
avons un commit initial qui n'a pas eu de cube. Et maintenant, dans notre cube ajouté, nous avons ajouté un cube. Félicitations. Enfin, cela peut paraître un peu encombrant. Cela peut paraître un peu bizarre, mais n'ayez pas peur que
ce soit très simple. Et plus important encore, il est
extrêmement important pour nous de
comprendre au fur et à mesure que nous
parcourons notre projet, créant des versions, des versions de celui-ci. Et si jamais nous commettons une erreur, nous pouvons revenir en arrière cliquant ici avec le bouton droit de la souris, en
inversant la validation. Et oui, nous pouvons inverser l'engagement si nous
revenons à l'unité, cela nous demandera
une recharge en direct. Nous avons écrit, nous rechargeons, et maintenant nous n'
avons plus le cube ni aucun mécanisme de rupture de
jeu que
nous avons ajouté en cours de route. Et maintenant, il est temps
de relever votre défi. Votre défi sera de télécharger et
de
configurer l' arborescence des sources
et le fichier Ignorer. Téléchargez donc l'arborescence des sources et
décrochez et configurez tout. Créez votre
projet 3D dans Unity Hub, configurez un référentiel pour
celui-ci et l'arborescence source, ni les fichiers de bibliothèque, récupérez le fichier d'ignorance de points et
ajoutez-le à votre référentiel, créez votre premier commit, puis créez
votre deuxième commit. Vous pouvez même aller de l'avant
et essayer de jouer avec
quelques choses. Ajoutez un cube, inversez la
validation, voyez ce qui se passe. Mettez-vous à l'aise
avec l'arbre source. Et si vous rencontrez
un peu de problèmes, vous pouvez suspendre la
vidéo dans cette liste de choses que vous
devez créer. Et vous pouvez toujours revenir arrière et regarder la vidéo et voir comment j'ai tout fait et suivre avec
moi étape par étape. Alors, on se voit juste un peu.
6. Inspiration de conception de jeux de ades: Je vais finir cette vidéo
pour
vous montrer le jeu Hadès. Et c'est l'une des
plus grandes sources d'inspiration pour le projet que nous
allons créer. Commençons donc. Évidemment, vous allez jouer et je vais jouer à l'
un des jeux auxquels je
jouais déjà. Je vais vous montrer
quelques aspects
du jeu et ceux que
nous allons être infinis. C'est donc le centre de la zone. Nous n'aurons pas
forcément un hub de zone de jeu d'une heure, mais ce sera juste suffisant. Je vais donc
passer à travers et passer à la partie réelle du
gameplay. Alors, allez ici. Et comme vous pouvez le constater, la première chose
que nous remarquons dans le jeu et dans ce
jeu, évidemment. Et la première chose que
nous remarquons, c'est que nous
avons plusieurs armes
parmi lesquelles nous pouvons choisir. C'est quelque chose
que nous allons
évidemment avoir une
heure de jeu. Je vais juste prendre le flingue et voici ce que
je vais retourner. Et je vais juste
aller de l'avant et recommencer à poser tué. Évidemment, avant
de commencer, notre jeu ne sera pas aussi
soigné que celui-ci. Il s'agit d'un gain NP qui
a pris des années à créer. C'est un opérateur
que vous choisissez. Donc, je vais juste
choisir n'importe quoi. Ce jeu a donc pris des
années et des années de graphisme et toutes
ces bonnes choses. Comme vous pouvez le constater,
c'est un ennemi. Il se promène juste et
une fois qu'il vous trouve, il commence à tirer sur
vous ou commence à vous attaquer ou quoi que ce soit. Comme vous pouvez
le voir ici, c'est un
style de jeu isométrique. Nous aurons un jeu de
plateforme 2D ou 2D. Donc, évidemment, vous pouvez
voir ici que nous
avons les connexions de tir. Pour que nous puissions tirer. Vous pouvez voir
les vases qui se cassent. Si nous les avons montrés, nous
aurons un mécanicien similaire. Et si nous nous
écrasons, nous pouvons les briser, mais dans notre jeu, nous
pourrons les briser. Et vous pouvez voir que nous avons le tableau de bord et c'est
quelque chose qui est régulièrement utilisé et tous les
jeux voyous comme les jeux, nous aurons aussi leur tiret. Eh bien, nous
aurons une torpille, mais nous aurons le
fringant mécanicien. Comme vous pouvez le voir ici, la possibilité d'entrer dans
une deuxième pièce. C'est ce que nous allons donc faire. Vous pouvez voir que nous avons
la santé ici. Nous aurons également un bar de santé. Vous pouvez voir comment
l'interface utilisateur est configurée. Nous allons faire
quelque chose de similaire. Vous pouvez donc voir ici que nous avons la possibilité d'appuyer sur la touche E. Je vais appuyer dessus et
nous passons au niveau suivant. Nous aurons également des portes. Vous pouvez voir que
chaque niveau Harold aura également sa propre carte de tuiles. Nous pouvons voir ici
que nous avons également des pics. C'est donc quelque chose que
nous allons ajouter. Nous aurons des pointes, évidemment pas aussi
jolies que celles-ci, mais elles feront l'affaire. Vous pouvez voir maintenant que nous avons
différents types d'ennemis. Vous remarquerez que
lorsqu'ils nous attaquent, si nous sommes fringants, nous ne sommes pas touchés. Et c'est quelque chose
que nous
allons également mettre en œuvre dans notre gain, qui est la capacité
d'être invincible pendant quelques secondes après le début et après
que nous l'ayons, par
exemple, obtenu. Je vais donc tirer sur ce type et nous
allons le tuer. Vous pouvez constater que nous
n'avons pas qu'un seul ennemi ou deux ennemis
déjà présents sur la carte. Nous avons des ennemis qui fraient, donc nous avons des vagues ennemies. Ainsi, dans ce jeu actuel
et dans cette chambre actuelle, vous verrez qu'il n'y
avait qu'un seul type d'ennemi, mais généralement nous avons
plusieurs types d'ennemis. Nous pouvons constater que les
armes ont également différents types d'
attaques et ce gain. Je vais donc juste
tirer et vous
remarquerez que, comme vous pouvez le voir, nous avons plusieurs vagues. Lorsque nous tuons la première vague, une deuxième vague apparaît. Nous avons donc tué le suivant, nous tuons le suivant. Et enfin, nous gagnerons toutes les vagues ou non et
tous les ennemis ou tués. Nous obtiendrons notre récompense
et les actions de combat. Je vais juste ramasser
n'importe quoi ici. Et vous pouvez voir que
les pointes cessent de
nous blesser une fois que nous ne sommes
plus au combat. Et c'est quelque chose que
je voulais vous montrer. Nous avons deux options. Soit nous passons par l'option a, qui est l'ANOVA, c'est quelque chose de la
monnaie du jeu. Et l'autre où
nous pouvons récupérer une clé. Et vous pouvez également voir
ici que nous avons la monnaie ou l'argent que nous allons
utiliser. Je vais donc
jouer un peu à ce jeu et
vous montrer comment magasiner fonctionne. Vous aurez donc une idée. Oh, l'affaire. Comme vous pouvez le voir, l'
un des niveaux est le cœur, l'autre niveau est le magasin. Allons donc à la boutique
et voyons à quoi ça ressemble. Et tout cela, nous
allons mettre en œuvre dans notre jeu, évidemment à certains
degrés. Il est évident que nous ne pouvons pas créer
un jeu comme celui-ci. Cela prend des années et des
années et c'est un thème énorme. On y va. Nous sommes à la boutique. Nous avons le commerçant. Nous n'avons pas de
commerçant ni de jeu. Il aurait du bruit. Vous pouvez l'ajouter vous-même.
Les mécaniciens fonctionnent. Comme vous pouvez le constater, nous pouvons
soit acheter un peu de santé, nous pouvons acheter une mise à niveau
ou améliorer notre
santé et notre jeu. Nous aurons également
des choses similaires à celle-ci où nous pourrons
améliorer notre santé, donc augmenter notre
santé maximale. Nous pouvons également acheter nouvelles armes qui seront
remplacées par des améliorations. Et nous pouvons également
améliorer notre santé. Donc, si notre santé est en baisse, nous pouvons simplement acheter de l'aide,
puis aller de l'avant. C'est donc
tout ce que je
voulais vous montrer. Je ne sais pas s'
il y a autre chose que j'aimerais vous montrer. Je vais juste y retourner. Nous aurons aussi évidemment les options de jeu, le bouton Quitter et toutes
ces bonnes choses, un peu de menu et
ainsi de suite. J'espère donc que vous avez
apprécié cette vidéo, la petite démonstration de
ce qui est commun à l'avenir. Cela dit, ne
perdons plus de temps et
commençons par
créer notre monde.
7. Section 2 : Créer notre monde de créer une feuille de Sprite: Bienvenue, mes développeurs de jeux préférés. Comme vous pouvez le voir dans cette vidéo, nous avons créé une scène simple. Nous avons ajouté un arrière-plan simple. On a ajouté une feuille de calcul avec notre petit gars ici, Jimmy, peut-être que ça changera son nom. Je ne sais pas. On l'appellera peut-être Jimmy condamné. Mais pour l'instant, nous avons le Jimmy GameObject avec un fond d'une sorte de donjon. Et nous avons, si nous jouons au jeu, vous ne pouvez rien voir, mais nous avons au moins la feuille de calcul et tout est configuré. Nous avons créé un référentiel ici. Comme vous pouvez le constater, lors de la validation initiale, nous avons appris comment créer un projet à l'aide des nouvelles données Unity Hub. Ne perdons donc plus de temps. Et commençons. Bon, alors commençons. La première chose que nous allons faire, c'est de créer un nouveau projet. Comme vous pouvez le voir ici, nous avons mieux la dernière version d'Unity Hub 3, que je viens de charger aujourd'hui. Voyons donc comment tout est configuré. Et ici, nous avons les installations. Il est assez similaire aux versions précédentes de Unity Hub. La seule différence est que si nous abordons le nouveau projet ici, vous pouvez voir que nous avons de nombreuses façons de choisir le modèle que nous voulons utiliser. Nous avons la version d'Unity ou la version éditrice d'Unity que nous allons utiliser. Et nous avons les différents types de modèles. Il s'agit donc d'une façon de configurer un projet. Par exemple, supposons que vous ayez besoin d'un projet mobile 2D. Cela vous permettra de le configurer, mais bien sûr, vous devrez le télécharger. Mais ce que nous allons faire, c'est que nous allons choisir un cœur 2D. Nous allons avoir le nom du projet. Je vais appeler ça l'heure. Mais l'envahisseur du ROCC. Par exemple, vous pouvez choisir le nom que vous voulez pour votre jeu. Mon jeu va s'appeler l'envahisseur de bots temporels parce que c'est l'histoire de mon jeu. Donc, et c'est aussi un 2D ressemblant à un rocher. Vous choisissez le nom qui convient à votre type de jeu. Je vais créer un projet. Cela va prendre un peu de temps. Ce que je vais faire, c'est que j'utiliserai la magie du montage pour aller là où tout est configuré et que nous pourrons commencer à créer notre jeu. Je vous y verrai donc. Oh, d'accord, bon retour. Maintenant, tout est mis en place. Le projet est ouvert. Nous pouvons commencer à créer notre jeu. La première chose que nous voulons faire est d'aller dans la fenêtre du jeu. Et ici, vous pouvez voir que c'est un aspect libre. Nous ne voulons pas cela. Nous voulons que notre jeu soit 16 par 9 ou 1920 par 10 ATP. Il s'agit de la résolution standard de la plupart des écrans, la plupart des PC qui vont jouer à ce jeu. Donc, si vous n'avez pas cette option ici, vous pouvez cliquer sur le bouton Plus et ajouter la vôtre à l'aide de la résolution fixe. Donc 1920 d'ici 1080, je vais juste le sélectionner ici. Maintenant, la résolution de notre fenêtre de jeu est corrigée et nous pouvons entrer dans la scène et nous pouvons tout voir ici même dans notre exemple de scène. Vous pouvez voir que nous avons la caméra principale. Nous avons tout mis en place. Si nous modifions la taille de la fenêtre de scène, rien ne change. Il reste 1920 par 1080. Ok, super. Maintenant, la première chose que nous voulons faire est ajouter un contexte intéressant à notre jeu. Nous ne voulons pas simplement avoir cet écran bleu et y ajouter des choses. Je vais donc entrer dans mes dossiers ici. Je vais sélectionner l'arrière-plan et je vais le faire glisser dans les ressources ici. Et maintenant, vous pouvez voir que nous l'avons, attendons
qu'il soit importé. On y va. Je vais donc cliquer sur l'image d'arrière-plan. Et vous pouvez voir ici même dans l'Inspecteur que
nous avons beaucoup d'informations à ce sujet. Et vous pouvez voir qu'il s'agit d'un Sprite 2D. Gardons ça à ça. Mais vous pouvez voir que les pixels par unité sont de 100 et qu'il existe actuellement un mode de filtre, nous allons choisir entre bilinéaire et point. Cela signifie qu'il n'y a pas de filtre car nous avons déjà une belle image. Et si nous ajoutons l'image ici, vous remarquerez qu'elle est très petite. Ce que nous pouvons faire, c'est que nous pouvons cliquer sur l'arrière-plan et définir les pixels par unité sur 50 et appliquer cela. Et voilà. Vous pouvez voir qu'il est beaucoup plus grand maintenant. Et nous allons juste réinitialiser la position ici, 200. Ce que nous avons fait, nous avons simplement réglé le mode de filtre sur aucun filtre. Nous avons réglé les pixels par unité de 100 à 50, et nous avons appliqué toutes les modifications et nous avons simplement défini la position et le milieu. Maintenant, si nous allons cliquer sur le bouton de lecture, vous remarquerez que nous n'avons plus qu'un fond bleu. Nous l'avons vraiment fait. Un fond assez solide. Maintenant, vous pouvez voir que les bords sont un peu en dehors de notre jeu. Vous pouvez modifier cela si vous le souhaitez. Rendons cela peut-être un peu plus petit pour qu'il corresponde exactement à ce que nous voulions. Et nous veillerons à modifier également l'échelle sur le y. Il suffit
donc de copier l'échelle sur l'axe des X, collée sur l'axe Y. Et maintenant, si nous entrons dans le jeu, vous pouvez voir que nous pouvons voir les bords, bien qu'il y ait une petite ligne bleue ici. Si vous avez un TOC comme moi, nous pouvons changer cette barre un peu plus haut. Maintenant, nous pouvons le coller ici. Est-ce que le jeu a l'air bien ? Non, j'ai encore besoin d'un peu plus haut. Vous y allez. Maintenant, le jeu semble assez beau. Peut-être devriez-vous aussi le changer ici. Maintenant, le jeu est parfait. Et nous allons simplement copier la balance sur le y. Copiez cela parce que lorsque nous sortons de notre mode de lecture, vous pouvez voir que l'échelle revient à la normale, ce qui n'est pas quelque chose que nous voulons. Voyons maintenant le jeu et le mode jeu sont parfaits. On y va. Nous sauvegardons tout dans notre scène. Nous pouvons voir que l'arrière-plan a la bonne échelle différente. Continuons. La prochaine chose que nous voulons faire est d'ajouter notre joueur au jeu. Je vais donc aller dans mes ressources. Je vais choisir le joueur contre le joueur. Et nous allons choisir la feuille Xanax. Maintenant, vous pouvez voir ici que j'ai un autre type de personnage. Nous pouvons également utiliser celui-ci si vous le souhaitez. Je vous ai fourni cela ainsi que les ressources, mais je vais utiliser cette feuille ici, car nous allons apprendre comment diviser cette feuille ou découper cette feuille. Si vous double-cliquez, vous pouvez voir qu'il s'agit d'une image régulière d'un, je ne sais pas, Butler, c'est celui que nous allons utiliser et je l'utilise de ce Xenakis, un ami ultime. C'est par la riche musaraigne rouge, quelque chose comme ça. Stephen Challenger de open game arm.com, qui est un site Web incroyable. Vous pouvez obtenir des tonnes d'actifs gratuits. Et ici, je l'utilise toujours pour presque tous les atouts que j'ai. Et vous pouvez consulter la feuille de calcul Docs d'examen téléchargée ici, donner un peu d'amour et les commentaires au créateur de la feuille de sprite. Mais continuons un. Que faisons-nous ici ? Pourquoi sommes-nous tranchés ? Et avant tout cela, qu' est-ce qu'un sprite ? Permettez-moi donc d'expliquer ce qu'est exactement un sprite. Je vais donc mettre mon laser. Un sprite est un objet. Donc, tout comme nous avons l'image que nous avons ajoutée en
ce moment, c'est quelque chose d'un peu différent. Un sprite est un objet 2D, va approfondir ce qu'ils sont à l'avenir. Ils ont des images graphiques appelées textures. Donc, si nous revenons ici dans Unity, vous pouvez voir que nous avons cette expérience, n'est-ce pas ? Et nous avons également un moteur de rendu sprite et un élément Sprite ici, qui est l'arrière-plan. Si je l'ai défini sur aucun, vous pouvez voir que j'ai toujours l'objet d'arrière-plan, mais il n'y a plus d'image dessus. Je vais donc fixer le prix de l'arrière-plan. Ils sont utilisés en ajoutant un composant appelé rendu sprite à un objet de jeu. Ainsi, comme vous l'avez vu en ce moment, nous avons l'objet d'arrière-plan et nous y avons ajouté un rendu sprite. Et nous avons la possibilité d'ajouter un sprite. Plus tard, nous verrons que nous pouvons ajouter également des calques aux sprites afin qu'ils puissent être rendus les uns devant les autres. Revenons donc dans notre jeu, et ici vous pouvez voir que nous avons la feuille Xanax. Maintenant, si nous l'ajoutons à notre jeu, vous pouvez voir que nous avons cette feuille entière et que nous ne voulons pas cela. Nous voulons le découper et avoir différents types d'animations pour notre examen, je ne sais même pas comment prononcer. Je vais juste appeler ça Jimmy. Ce sera notre gène. Donc, Jimmy, nous allons cliquer ici. Nous allons regarder dans l'inspecteur. Nous pouvons voir que nous avons notre mode sprite et unique, qui signifie que toute cette image est une seule image. Mais parce que nous allons le découper, nous allons en faire un multiple. Nous choisissons donc plusieurs. Nous cliquons sur Appliquer, puis nous allons dans Sprite Editor juste ici. Nous cliquons dessus. Et maintenant, nous avons la possibilité de trancher ce bébé. Alors, comment allons-nous faire cela ? Il existe plusieurs façons de trancher un sprite. Chaque fois que nous avons une bonne position, le sprite nous permet généralement de le faire automatiquement. Donc, si nous essayons de le faire automatiquement, comme vous pouvez le constater, tous les sprites n'ont pas été tranchés. C'est bien. Mais ce n'est pas exactement ce que nous voulons. Parce que si, disons que nous avons ici l'animation qui est inactive. Nous avons trois animations, qui sont l'idole et nous avons trois animations ou non pour des animations. Ceci, ces trois images créeront l'animation de l'inactivité, et ces quatre images créeront l'animation de la marche. Et ces images créeront la torpille, le retournement ou autre. Mais chacun d'entre eux a une taille différente et ce sera une grande douleur plus tard lorsque nous créerons nos animations. Notre objectif ici est donc de les trancher exactement de la même taille. Et nous pouvons modifier la taille de notre tranche en changeant ici, comme vous pouvez le voir, la coupe. Je vais donc rendre cette coupe un peu plus petite pour que nous n'ayons pas les rectangles noirs. Comme vous pouvez le constater, nous avons supprimé les rectangles noirs. Et ici aussi, nous avons enlevé les rectangles noirs et la même chose ici. Et je veux simplement garder cela maintenant pour pouvoir démontrer ce qui se passe lorsque nous appliquons réellement le tranchage. instant, je n'ai changé que celui-là. Vous pouvez voir que celui qui est inactif a toujours des rectangles noirs autour de lui. Et tous ces éléments ont également été tranchés. Ainsi, lorsque nous appuyons sur la touche Appliquer ici, vous pouvez la voir vers le haut. Sur la droite. Nous fermerons cette fenêtre et nous pourrons ouvrir la feuille Jimmy. Et vous pouvez voir qu'en ce moment, nous avons toutes ces différentes tranches de moutons. Nous pouvons donc ajouter chacun d'eux individuellement à notre scène. Et vous pouvez voir la caméra cachant la perle Jimmy. Vous y allez. Un tout petit Jimmy. Et vous pouvez le voir ici. C'est la coupure, la tranche que nous venons d'ajouter. Et si nous ajoutons celui avec le rectangle, vous pouvez voir qu'il y a un rectangle autour de lui que nous ne voulons pas. Je vais donc les supprimer tous les deux. Je vais cliquer sur la feuille du panneau. Une fois encore. Je vais aller chez Sprite Editor et je vais découper toutes ces choses correctement. Maintenant, vous pouvez le faire vous-même. C'est assez facile. Je vais juste changer les carrés ici. Je vais donc les rendre plus petits. Celle-ci est destinée aux inactifs. Alors, tu y vas. Je le rends plus petit pour qu'il s'adapte au carré. Nous n'allons utiliser aucun de ces deux-là. Je vais supprimer tout ce dont nous n'aurons pas besoin et je sais que ces deux-là nous allons avoir besoin d'eux. J'ai donc juste appuyé sur Control Z pour annuler certaines choses. Nous n'allons pas utiliser le vol, mais je vous recommande de conserver certaines des choses que vous pourriez vouloir ajouter. Je vais donc trancher tous ces éléments. Nous n'allons pas utiliser les animations de prise de vue que nous avons ici parce que nous allons créer nos propres mécanismes de prise de vue. Je ne fais donc que sélectionner et supprimer tous ces éléments. Vous pouvez garder celui-ci pour vous amuser. Je veux dire, honnêtement, ça a l'air tellement drôle. Vous pouvez le conserver pour une utilisation ultérieure. Et enfin, je vais changer la torpille ici. Je vais donc également supprimer tous ces éléments. Je vais choisir une de ces boîtes. Je vais le dupliquer. Donc, de la façon dont nous avons dupliqué le contrôle D, je vais m'assurer que toutes les tranches ont la même taille. Je vais donc en choisir un. Et je vais le dupliquer à nouveau, le
mettre ici. Nous devons nous assurer qu'ils sont tous à la même hauteur. Celui-ci est donc 513. Et voyons si cela correspond à tous les autres. Plus tard, vous comprendrez pourquoi nous faisons cela et pourquoi il est si crucial que toutes les tranches soient identiques. Je vais donc déplacer ça ici et celui-là. Il est donc évident que tous ces éléments correspondent correctement à l'exception de celui-là. Nous devons donc nous assurer que c'est ici. Voyons si cela fonctionne sur celui-ci. Et c'est un peu petit comme vous pouvez le voir, non, il s'adapte parfaitement de haut en bas. C'est génial. Et essayez également de vous assurer que le personnage est au milieu de cela. Je vais donc déplacer ça un peu vers la gauche. Celle-ci aussi. Et quelle est la hauteur ? Voyons donc que c'est trois, 513. Copions ça. D'accord. Celle-ci est correcte. Collez-le ici. Basé sur celui-ci. Basé sur celui-ci. Et en se basant sur celui-ci. Et celui-là, nous devons tous les avoir de la même hauteur. Je vois bien que j'ai une boîte supplémentaire ici. Je vais le supprimer et maintenant nous avons les découpes appropriées dont nous avons besoin. Donc, le ralenti, la marche et le torpille que nous allons utiliser. Je vais donc appuyer sur la touche Appliquer. Je vais regarder, voilà. Maintenant, nous avons tout mis en place. Je vais utiliser l'un des, voyons lequel est le 0. Et encore une chose que j'ai oublié de dire, nous pouvons en fait changer le nom pour que je puisse changer ce nom par un nom inactif. Je le sais. Au ralenti trois, et ainsi de suite. Nous pouvons tous les changer pour l'instant. On les appelle juste l'examinateur dix, exemple 2 et ainsi de suite. Je vais juste les garder tels qu'ils sont. Ce n'est pas une étape très importante, mais je voulais juste m'assurer que vous sachiez ce qui se passe. Nous allons donc, bien
sûr, nous demander d'économiser. Nous allons juste appuyer sur l'application ici. N'oubliez pas de postuler. Et maintenant, nous pouvons ajouter celui qui est inactif. Et ici, vous pouvez voir que c'est extrêmement petit. Comment le rendre plus grand ? Eh bien, comme nous l'avons fait avec l'arrière-plan, nous pouvons cliquer ici et nous pouvons modifier les pixels par taille. Ce sera votre tâche. Nous pouvons le changer. Mettons-le à 15. Où est-ce qu'il est allé ? Oh, j'ai tellement disparu. Pourquoi est-ce que c'est ? Pourquoi est-ce qu'il ne s'affiche plus ? C'est une question délicate. Nous y reviendrons plus tard. Mais pour l'instant, essayons de le rendre aussi gros que possible. Donc, peut-être que 50 est encore un peu petit. Allons en faire 32. Donc je pense que 32 est assez gros 0, donc il est apparu devant. Pourquoi, pourquoi cela apparaît-il parfois en France, parfois à l'arrière. Comment pouvons-nous résoudre ce problème ? Ne vous inquiétez pas, nous allons régler tous ces problèmes à l'avenir. Je pense donc que 32 est une taille assez décente. Peut-être qu'on arrivera peut-être à 28 ans. Donc, d'accord. Je pense que 28, c'est suffisant, peut-être même un peu gros. Nous verrons plus tard, je le redeviendrai à 32, peut-être 30. Je n'en suis pas sûr. Je ne sais même pas. Bien sûr, prenez le temps de comprendre comment vous voulez le configurer. Mais d'ici là, avant que je parte, laisse-moi parler. Vous avez mangé un petit défi et votre défi sera de créer votre propre joueur. Alors explorez le jeu ouvert r.org ou vous pouvez également trouver beaucoup d'excellents atouts de jeu sur HI dot io. Ce sont des sites Web incroyables. La plupart des ressources sont gratuites et vous pouvez les utiliser. Trouvez des personnages et des sprites qui correspondent à votre style. Comme vous pouvez le voir, j'ai ajouté ma propre image d'arrière-plan. Vous pouvez peut-être trouver une autre zone où vous souhaitez que votre joueur se batte. Ajoutez-les à votre jeu et coupez les sprites, comme nous l'avons appris dans cette vidéo, et c'est tout. Mettez la vidéo en pause dès maintenant et faites le dossier de chaque défi. Avant de partir, la dernière chose que nous devons faire est de créer un référentiel. Nous avons donc déjà appris comment télécharger l'arborescence des sources, comment tout ajouter. La dernière chose que nous allons faire, c'est que nous allons cliquer sur le bouton Créer ou vous pouvez ouvrir un nouvel onglet sur les sourcils. Voyons un projet Unity. Où l'avons-nous sauvegardé ? Nous avons oublié où nous avons tout sauvé. Voyons voir, la sauvegarde des projets Unity. On y va. Trouver l'envahisseur acheté à la ligne comme c'est ici que nous allons sélectionner le dossier. Nous allons créer un référentiel. Oui. Et comme vous pouvez le constater, tout est mis en place comme nous l'avons appris, nous devons nous assurer que nous devons ignorer les bibliothèques. Cliquez avec le bouton droit, ignorez tout ce qui se trouve dans la bibliothèque. Bon, donc maintenant, nous avons le dossier Gitangnore. Nous allons l'ouvrir. Nous allons comprendre que c'est très bien. Git. Ignorer. On y va, les maîtres. Et nous allons simplement cliquer sur la ligne. Control, une copie de ça ici. Sélectionnez tout le contrôle V. Enregistrez cela. Retour. Ici, vous pouvez voir que le fichier gitignore a changé, sorte que tout ce dont nous n'avons pas besoin a été supprimé et ne sera pas enregistré. Nous allons mettre en scène tout ça. Nous allons engager notre travail et ce sera le premier engagement de notre jeu. Commettez nos changements, allez voir les maîtres, et voilà, nous sommes prêts pour notre voyage. C'est tellement excitant. C'est la première fois que vous créez un projet. C'est vraiment très excitant. J'espère donc que vous allez relever le défi. Trouvez vos propres sprites, assurez-vous de toujours commettre les changements est très important. Vous comprendrez pourquoi plus tard dans votre parcours de développement de jeux, vous me remercierez, faites-moi confiance, et je vous verrai dans la prochaine vidéo.
8. Créer le joueur: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons tout appris sur le tri des calques. Nous avons également appris la relation parent-enfant, et non pas comme dans la relation parent-enfant classique, comme dans la relation parent-enfant objet de jeu. Comme vous pouvez le constater à
l'heure actuelle, le fusil de chasse est rendu devant le bras ou derrière le bras, mais ils sont tous rendus devant le joueur, qui est rendu devant l'arrière-plan. Et il a aussi une petite ombre. Donc, ne perdons plus de temps et commençons. Oh, l'affaire. Commençons donc. La première chose que nous voulons faire est de créer un objet de jeu de joueur. Donc, nous ne voulons pas l'avoir ni l'un ni l'autre pour l'instant, nous allons le changer. Nous ne voulons pas que le sprite soit l'objet principal. Nous voulons utiliser un objet de jeu de joueur doté d'un corps qui est à son tour le rendu du sprite. Je vais donc changer ça d'inactif au corps. Et je vais cliquer avec le bouton droit de la souris ici, créer un nouvel objet de jeu. Et je vais réinitialiser sa position car actuellement vous pouvez voir que nous avons créé cet objet de jeu et sa position est basée sur Où nous regardons dans la scène. Vous pouvez donc voir qu'il y a certains actes, d'une certaine façon, un certain Z. Ce que nous pouvons faire, c'est que nous pouvons cliquer sur le X, le
mettre à 0, nous pouvons cliquer sur le Y, mais si les zéros sont à 200, mais c'est un peu encombrant à œuvres. Mais il existe une méthode beaucoup plus fluide et professionnelle. Au fait, j'ai cliqué trois fois sur les commandes pour revenir sur tout cela, on peut cliquer sur les trois petits boutons ici, ou trois petits points. Nous pouvons faire défiler vers le bas et nous pouvons voir que nous pouvons réinitialiser la position ou réinitialiser l'ensemble du transport. Par exemple, disons que j'ai défini une rotation de 134. Je clique ici, je peux réinitialiser la position ou réinitialiser la rotation, ou je peux réinitialiser l'objet entier du jeu. Ce ne sont donc que de petits indices. Vous pouvez même constater que le nom de l'objet de jeu a été réinitialisé. Donc, ni semaine ni semaine, nous ne l'avons même pas nommé. Je pense. Quoi qu'il en soit, nous allons appeler cela la couche de malheur, qui est aussi Ginny. Et nous allons bouger le corps et le mettre sur place, le joueur de la mort. Alors, que s'est-il passé juste là ? Laissez-moi simplement refaire ça. Regardons le corps. Quelle est sa position ? C'est moins 5.60.89. Lorsque nous le placons sous le lecteur dôme, nous en faisons un enfant. Maintenant, vous pouvez voir que si nous bougeons V, ne jouons pas ou vers la gauche et la droite, remarquez que nous ne bougeons pas le corps. Nous sommes en train de déplacer l'objet du jeu Doom Player. Vous pouvez voir que le corps, qui est ici même, se déplace également. Et vous pouvez voir que nous pouvons changer de position. Et ce qui est cool,
c'est que regardons à nouveau le corps, récemment la position du corps. Donc, le corps est, disons qu'on ajoute 0, 0, d'accord ? Si nous déplacons le joueur DOM, quelle sera la position du corps alors qu'il est encore 00 ? Donc maintenant, la position, la rotation et l'échelle et tout est relatif à l'objet principal du jeu, qui est le joueur de malheur. Mais l'objet principal du jeu n'est pas le bon mot. Il s'agit de l'objet de jeu parent et le corps devient l'objet de jeu enfant. À quoi ressemble une relation parent-enfant ? Il ne s'agit pas d'une séance de thérapie. C'est en fait ce qu'on appelle une relation parent-enfant dans Unity. Ainsi, l'enfant va se déplacer, faire pivoter et se mettre à l'échelle avec l'objet de jeu parent, comme nous l'avons vu maintenant, utilisé pour créer un corps d'objets APT qui se déplacent ensemble. Nous verrons ce que j'entends par corps d'objets. Je ne veux pas dire que le corps du joueur. Nous ajouterons un bras, nous ajouterons un pistolet, nous ajouterons une ombre. Et toutes ces personnes bougeront ou devront bouger avec le joueur pendant que nous jouons à notre jeu. Les enfants peuvent également être parents d'autres objets. Vous remarquerez plus tard que nous pouvons avoir un enfant d'enfant. L'enfant devient donc parent, mais c'est toujours un enfant par rapport au parent principal. Donc, c'est comme une sorte de grand-parent si vous voulez, appelez ça comme ça. Enfin, les propriétés de transformation enfant sont relatives au parent. Cela signifie que, comme vous l'avez vu lorsque nous modifions la position de l'objet de jeu parent principal, la position du corps reste la même, 0, 0, 0. Revenons donc à Unity. Maintenant, nous avons le corps. La prochaine chose que nous allons faire est d'ajouter un pistolet et l'ombre. Donc, si nous allons dans les ressources. Le joueur ici, vous pouvez voir que nous avons un R et que nous avons une ombre. Et celui-ci appartient à l'autre doom player, pas celui-ci,
celui que nous utilisons actuellement à l'autre que j'ai fourni, vous pouvez utiliser les deux. Je vais utiliser ce bras spécifiquement que nous connaissions toujours la différence entre les deux. Il n'aura pas l'air aussi joli, mais c'est bon pour apprendre. Je vais donc sélectionner le bras et l'ombre, et je vais les traîner dans les acides ici. Je vais mettre l'ombre et vous pouvez
essayer de le faire vous-même. Donc, si je déplace l'ombre sous le lecteur de dômes, vous remarquerez qu'en le déplaçant en
tant qu' enfant du joueur de dunes, nous avons maintenant l'ombre sur une position différente. Je peux le réinitialiser et je peux le mettre ici, mais il n'est pas là. Et même si je le rends un peu plus gros, je vais en faire peut-être huit au lieu de 100. Vous y allez. Vous pouvez voir que l'ombre est maintenant devant. Mais pourquoi faut-il parfois être devant, parfois derrière ? Qu'est-ce qui donne, comment allons-nous y remédier ? Nous en discuterons dans un peu. Laissez-moi juste ajouter le bras ici. On y va. Maintenant, nous avons le bras. Mettons-le comme l'enfant des joueurs du dôme à l'ombre en dessous. Nous allons réinitialiser la position du bras. Nous allons faire en sorte que les 32 armés s'appliquent. Alors que le bras, vous pouvez voir le bras. Vous y allez. C'est derrière le joueur. Ce n'est pas du tout bon. Comment allons-nous résoudre ce problème ? Nous allons résoudre ce problème en utilisant ce qu'on appelle les calques de tri. Actuellement, nous pouvons voir que le corps a un rendu de sprite, le bras a un rendu de sprite et que l'ombre possède également un rendu de sprite. Et vous pouvez voir ici, dans le rendu sprite il y a quelque chose appelé les paramètres supplémentaires, qui ont quelque chose appelé la couche de tri et l'ordre dans les calques. Maintenant, qu'est-ce que tout cela fait ? Vous pouvez voir que tout ce qui est actuellement en arrière-plan est par défaut. Le corps, le R et l'ombre sont tous par défaut, et tous sont classés en 0. C'est ainsi que l'unité détermine quel sprite doit être devant quel autre sprite, surtout lorsqu'il s'agit de jeux 2D. Actuellement, vous pouvez voir que l'ombre est à 0 et qu'elle est derrière le joueur. Mais regardez de près ici. Ou faisons-nous le bras. Si je reçois le R, il est toujours par défaut, tout comme le corps. Mais si je le mets sur le seul, on y va. Maintenant, c'est devant notre joueur. Si je le mets, déplacons-le sur le côté. Si je le mets sur moins 1, vous pouvez voir qu'il disparaît derrière l'arrière-plan. Laissez-moi le remettre à un et laissez-moi le mettre dans l'avion. Maintenant, c'est génial, tout fonctionne bien. Je peux définir l'arrière-plan à moins 1 et m'assurer que chaque fois que j'ajoute quelque chose, c'est devant ou à la banque et à la banque. Mais il y a un problème. Que se passe-t-il lorsque j'ai 100 objets ou 200 objets de 5000 objets ? Dois-je tous les définir ? Moins 1 plus 1, 2, 3, 4 moins 100. De toute évidence, non. Ce que nous devons faire, c'est de créer une couche de tri. Et si je clique ici en arrière-plan, et si je clique sur la valeur par défaut, vous pouvez voir que je peux ajouter une couche de tri à notre gain. Cliquez donc sur Ajouter une couche de tri. Nous ouvrons la couche. Comme vous pouvez le constater, nous avons des balises, nous avons des calques de tri et nous avons des calques. Nous allons nous y plonger dans un peu. Concentrons-nous sur le calque de tri. Nous pouvons tirer le petit avantage ici. Et nous pouvons créer un nouveau calque qui appellera l'arrière-plan. Vous pouvez maintenant voir que l'arrière-plan est affiché devant ou derrière la valeur par défaut. Donc, si je reviens à l'arrière-plan, cela aura du sens dans un peu. Je vais définir le calque de tri comme arrière-plan. Et voilà. Vous pouvez voir qu'il disparaît. Parce que laissez-moi y retourner. La façon dont nous revenons, nous passons à Calques, les calques que vous pouvez voir ici. Donc les calques, les calques ajoutés. Vous allez chercher cet inspecteur. Si je déplace l'arrière-plan derrière la valeur par défaut, vous pouvez voir maintenant que tout ce qui était sur le calque par défaut, de sorte que
l'ombre, le bras et le corps sont maintenant rendus devant lui. Revenons donc au calque. Sur cette couche, vous pouvez voir que c'est ainsi que fonctionne la hiérarchie. Et c'est très important ici. Mais comme vous pouvez le constater, cela facilite grandement la vie. Vous avez maintenant un défi et votre défi sera de créer une couche de tri de calques. Nous allons donc créer une nouvelle couche de tri appelée Player. Attribuez tous les éléments du lecteur à cette couche. Assurez-vous que le lecteur est rendu devant
l'arrière-plan comme nous l' avons vu en modifiant la hiérarchie dans la couche de tri. Enfin, en guise de défi supplémentaire, si vous vous sentez à la hauteur, allez dans les Ressources, ajoutez un pistolet à partir de leur arme, fixez-le sur le joueur et assurez-vous qu'il est rendu entre le joueur et le bras. Nous voulons que le bras soit devant le pistolet, mais nous voulons qu'il soit également devant le joueur, mais derrière le pistolet. Vous devrez donc jouer avec ça. Si vous devez créer un calque supplémentaire, allez-y. Vous pouvez créer autant de calques de tri que vous le souhaitez, mais assurez-vous que le vrai conserve les choses afin de ne pas avoir besoin de créer un calque spécial pour le bras et l'ombre. C'est tout le temps sur le joueur. Ne vous inquiétez pas à ce sujet. Cela dit, mettez en pause la vidéo dès maintenant et relancez le défi. Bon, bon retour. Alors, comment as-tu eu presque ça ? J'espère que vous avez fait de votre mieux pour relever le défi. Faites toujours de votre mieux avec un défi, même si c'est difficile, même si vous ne savez pas comment le faire, vous pouvez toujours revenir en arrière et annuler ce que vous avez fait. Vous apprenez des erreurs que vous avez commises. Quoi qu'il en soit, calque du joueur, je vais sélectionner le corps, maintenir Contrôle, sélectionner le bras et l'ombre. Et je peux tout changer. Et pour le calque du joueur, je vais déplacer l'ombre pour qu'il soit juste sous le joueur juste ici. Voyons voir. On y va. Je peux créer la couche de commande. Gardons ça à 0. Le corps sera à un seul et le bras sera à deux. Ainsi, le bras sera toujours rendu et devant le corps du joueur. Sauvons la scène, allons dans nos ressources et récupérons nos armes. Vous pouvez donc voir ici, dans nos ressources, nous avons les armes qui vont ici. Allons au PNG. Je vais choisir le fusil de chasse, vais le faire glisser dans les actifs ici. Je vais dans quelle fin ? Le joueur du dôme. Je vais changer ça avec le fusil de chasse. Il est extrêmement petit. Je vais m'assurer qu'il s'agit d'une troisième rampe, pour peut-être appliquer les modifications. Alors que le fusil de chasse 0 ou qui cueille gros. Je vais donc changer ça pour peut-être le pistolet qui crée une couche de tri pour le pistolet. Donc toutes les armes, les armes. Et ça va être défini comme des armes. OK. C'est un peu plus gros que je ne le souhaiterais. Ou nous le savons parce que nous n'utilisons que les armes sur le joueur que nous n'allons pas créer. On y va donc. Nous allons supprimer cela. Nous garderons le fusil de chasse sur la couche du joueur. Et parce que le bras est sur les deux, nous allons le mettre sur les trois et le fusil de chasse sera sur les deux en ce moment. Alors, tu y vas. Mais évidemment, faisons de cela un enfant du joueur. Et évidemment, nous devrons rendre le fusil de chasse un peu plus petit. Donc, 32, faisons-en 50. Voyez à quoi ça ressemble. Peut-être trop petit. Essayons. 40. Merci. Quarante, ce sera bien. Toujours aussi grand que ça. On va peut-être faire 40 à 40 ans pour appliquer ça. Oui, je pense que c'est un fusil de chasse qui a l'air assez bien. Alors, on y va, sauve tout ça, on dirige le jeu. Et on y va. Donc maintenant nous avons l'arrière-plan, le joueur, nous avons une ombre qui est d'ailleurs une très bonne touche, donne au jeu une capacité de profondeur. Et nous avons un fusil de chasse qui est rendu devant le joueur. Maintenant, je pense que le fusil de chasse bénéficierait d'un changement de position, mais pour l'instant, j'espère que cela vous plaira. Allons-y et n'oublions jamais aussi. Changements de métal. Vous pouvez donc voir que nous allons mettre en scène tout cela, mais nous avons quelques choses que nous ne voudrions pas changer. Ainsi, par exemple, certains PNG ou les images qui prennent beaucoup de place. Pour l'instant, nous les garderons, mais plus tard, vous verrez que nous n'avons pas à mettre en scène les images. Nous pouvons simplement les enlever. Ils occupent beaucoup de place, de l'espace inutile. Nous y allons donc pour l'instant, nous allons mettre en scène tout cela, valider les changements. Qu'avons-nous fait ? Nous avons créé un joueur et appris le tri des couches. Il est très important de toujours nommer vos commits à quelque chose dont vous vous souviendrez peut-être plus tard. Par exemple, nous savons maintenant qu'il s'agissait de la validation initiale et la deuxième validation, nous avons créé un joueur et appris la couche de tri. Nous aurions pu ajouter un pistolet, changer la couche de tri des canons,
etc. J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo où nous ajouterons un script au joueur et commencerons à changer son comportement. Tellement excitant, je vous verrai alors.
9. Déplacer en utilisant des entrées (variables): Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous allons créer notre premier script et l'ajouter à notre Doom Player. Non seulement cela, nous allons apprendre beaucoup de choses, mais nous allons apprendre ce que signifie ce mot effrayant. Nous allons en apprendre davantage sur les variables. Nous allons en apprendre davantage sur les intrants. Nous allons en apprendre davantage sur le vecteur 2. Nous allons apprendre comment commencer et mettre à jour fonctionnent séparément. Cela dit, s'agit d'une vidéo un peu plus longue si vous le souhaitez, mais si vous êtes débutant, il est très important, très crucial de tout comprendre. Donc, ne perdons plus de temps et commençons. Oh, d'accord, donc c'est le moment de faire des scripts. La première chose que nous allons faire, c'est de créer un script et de l'attribuer au Doom Player. Aujourd'hui, il existe de nombreuses façons de créer des scripts et il
existe de nombreuses façons d'attribuer des scripts à certains objets. Ils sont tous les mêmes. Commençons par le plus basique,
c' est simplement cliquer sur l'objet du jeu. Vous pouvez voir ici que nous avons la transformation. C'est l'un des composants dont nous disposons. Nous pouvons ajouter un autre composant ici en cliquant dessus. Maintenant, vous pouvez constater que nous avons de nombreux composants que nous pouvons ajouter, allant de l'audio à l'effet, en passant par la physique, etc. Mais nous avons également cette option ici d'ajouter des scripts. Nous pouvons cliquer dessus. Nous pouvons le voir et ajouter le script que nous voulons. Ou encore plus simple,
nous pouvons simplement commencer à saisir le nom du script que nous voulons ajouter. Et le script que nous voulons appeler ou créer sera la manette du joueur. Nous allons donc créer un contrôleur de couche ici et nous
assurer que vous créez le nom pour qu'il s'agisse d'une seule phrase sans espaces. Vous pouvez voir ici que nous avons la possibilité de créer un nouveau script. Cliquons dessus. Vous pouvez voir le nom comme manette de joueur. Et maintenant, nous pouvons créer le script, mais assurez-vous que Shoe trouve le mot correct ou le
nom correct du script car ce sera le nom de la classe à l'intérieur de ce script. Cela sera très crucial lorsque vous créerez des scripts ultérieurement. Nous allons donc créer une annonce. Attendez juste un peu. Et maintenant, nous devrions voir que le script est prêt. Si nous cliquons dessus ici, nous pouvons voir dans l'inspecteur à quoi ressemblera ce script. Et maintenant, nous allons double-cliquer. Et vous pouvez voir que Visual Studio s'ouvre. Maintenant. Une des choses que beaucoup de gens ou de nombreux étudiants me demandent encore et encore. Si votre script ne s'ouvre pas à l'aide de Visual Studio, ou, par exemple, lorsque vous tapez quelque chose ici et que vous ne recevez pas les recommandations de Visual Studio, vous pouvez accéder à ce qui, accéder à Préférences, accéder aux Outils externes, et dans l'éditeur de script externe, assurez-vous que vous disposez de Visual Studio Community. Vous pouvez choisir nos IDE tels que Visual Studio Code. Mais personnellement, j'aime ou préfère utiliser Visual Studio Community 2019. C'est bien mieux et plus fluide que le studio. Parfois, le studio a juste ses bizarreries là où il ne s'affiche pas, ne s'ouvre pas correctement. Je préfère donc utiliser Visual Studio Community. C'est gratuit. Il fonctionne. Continuons. Maintenant. Nous avons ouvert notre script ici. Nous avons les bibliothèques que nous pouvons utiliser. Nous avons le nom de la classe, la manette du joueur. Il doit toujours porter le même nom que le script que nous avons créé ici. Vous pouvez donc voir la manette du joueur en aucun cas ne
modifiez-vous le nom du script ici sans modifier le nom de la classe ? N'essayez même pas de le faire. Cela va créer beaucoup de problèmes. Qu'avons-nous ici ? C'est un public, nous verrons ce que cela signifie. C'est une classe, c'est un comportement mono. comportement Monte nous donne la possibilité d'utiliser des éléments tels que le démarrage et la mise à jour. Qu'est-ce que Start ? Start est une méthode. Nous verrons plus loin quelles sont les méthodes. Mais pour l'instant, tout ce que vous avez besoin de savoir quel code que nous écrivons à l'intérieur de
l' étoile est exécuté dès que nous commençons notre jeu, si cet objet est allumé , bien
sûr, nous verrons ce que cela signifie également plus tard. Comme vous pouvez le constater, une mise à jour est appelée une fois par image. Donc, si nous avons, par exemple, éléments que nous voulons appeler chaque mise à jour de trame sont parfaits pour cela et nous verrons tout cela au fur et à mesure que nous progresserons dans ce cours. Vous comprendrez tout, ne vous inquiétez pas. Maintenant, la première chose que nous devons faire, c'est que nous avons besoin d'un moyen de déplacer notre joueur. Nous allons le faire en prenant les entrées des touches fléchées ou des touches WASD. Mais avant de le faire, il y a quelque chose que nous devons prendre en considération, c' est la vitesse de déplacement de notre joueur. Et pour cela, nous allons avoir besoin d'une variable. Qu'est-ce qu'une variable lorsqu'il s'agit de C-sharp ? Laissez-moi vous expliquer. Les variables sont comme des boîtes. Nous avons donc une boîte, nous lui donnons le nom des vies, et nous avons mis à l'intérieur de cette boîte un numéro trois. Nous avons donc maintenant une variable obtenir des vies qui a trois à l'intérieur. C'est ainsi que nous créons le code de cette boîte ou de valeur. Nous commençons par donner l'accessibilité. Alors, où pouvez-vous accéder à cette variable ? Il peut être public ou privé. S'il est privé, nous ne pouvons y accéder qu'à l'intérieur de la classe que nous avons créée, et non de l'extérieur. S'il est public, nous pouvons quitter n'importe quel autre script que nous voulons. Nous devons attribuer le type de variable. Nous avons donc plusieurs types, nous avons des entiers, des chaînes, etc. Nous verrons en un peu quels autres types nous avons. Nous avons le nom de la variable. De toute évidence, chaque variable doit porter un nom. Comment l'appelons-nous autrement ? Et nous avons les données qui se trouvent à l'intérieur de cette variable. C'est ainsi que nous créons une variable en C Sharp. Et c'est la représentation si vous voulez, c'est comme une boîte que nous mettons les choses et ensuite nous passons à autre chose. Nous avons différents types de variables. Et le premier type est une vélocité. Par conséquent, un entier est un nombre normal, disons 123456. Un flotteur est, disons 4,8. Pourquoi avons-nous un flotteur ? Parce que parfois la vitesse de quelque chose ou la vitesse d'une voiture n'est pas seulement de cinq ou six. Il peut être 6,32, il peut être 6,9, il peut être 6.9456. Nous avons donc besoin d'un flotteur, et c'est ainsi que nous créons un flotteur. Nous ajoutons toujours les données. Donc le 4.8 avec un F à la fin. Ensuite, nous avons un booléen. Le booléen est généralement vrai ou faux. Par exemple, supposons que nous voulions déterminer si un joueur est mort ou non. Donc, comme lui, il est mort, alors la variable est vraie. S'il n'est pas mort, alors la variable est « S false ». Enfin, nous avons une ficelle. Par exemple, qu'est-ce qu'une chaîne de caractères ? Nous avons plusieurs personnages, un après l'autre. Je vois, e, l. Cette chaîne de caractères est Michael. Nous appelons donc une variable de type chaîne avec le nom mon nom, et elle représente Michael. Assurez-vous que chaque fois que vous créez une variable de chaîne située entre ces deux guillemets. Ok, maintenant, avec toutes ces variables faites avec, allons-y et créons notre propre variable dans les scripts ici. La première chose que nous allons faire, car nous allons créer quelque chose appelé champ sérialisé. Maintenant, n'ayez pas peur de ce nom long. Il va s'agir d'un entier, et il va s'appeler la vitesse de déplacement. Maintenant, cela déterminera la vitesse à laquelle notre joueur se déplace au fur et à mesure que nous avons
mis en œuvre votre compréhension et pourquoi utilisons-nous quelque chose appelé le champ sérialisé. Vous venez de me dire, Michael, que c'est public ou privé. Que rencontre ce champ sérialisé ? Eh bien, ne vous inquiétez pas à ce sujet. Plus tard. Je vais également expliquer pourquoi nous utilisons ce que l'on appelle un champ sérialisé. Mais pour l'instant, comprenez que c'est quelque chose que nous pouvons voir chez l'inspecteur. Donc, si je rends cela public, sauvegardez-le, retournez dans notre script. Vous verrez que cela change chez l'inspecteur. Nous avons le public et le mouvement. Et si nous allons voir le doom player, vous pouvez voir ici que nous avons la vitesse de déplacement et que nous pouvons la modifier. Mais si je le rends privé pour que d'autres scripts n'y accèdent pas, vous remarquerez ici que nous ne pouvons plus le modifier. Mais que se passe-t-il si nous voulons pouvoir le modifier à partir de l'inspecteur, mais en même temps, nous ne voulons pas que d'autres scripts y accèdent. Dans ce cas, nous créons un champ sérialisé. Nous sauvegardons cela. On y retourne et on fait l'inspecteur. Et vous pouvez voir maintenant ne
pouvons pas le modifier,
mais d'autres scripts ne peuvent pas y accéder. Nous examinerons cela plus tard au fur et à mesure que nous progresserons lorsque nous aurons d'autres scripts. Super, nous avons maintenant la variable de la vitesse de déplacement. La prochaine chose que nous voulons obtenir est d, mouvement, direction ou la contribution que nous recevons. Alors, comment allons-nous déplacer notre joueur ? Eh bien, nous allons avoir besoin de deux entrées. Un qui déplacera le joueur vers la gauche et la droite, ou dans la direction horizontale, et l'autre qui déplacera le joueur vers le haut et vers le bas, c'
est-à-dire la direction verticale. La façon dont nous le faisons consiste à utiliser le système d'entrée et nous allons
obtenir nos entrées en utilisant quelque chose appelé le point d'entrée get access Raw. Maintenant, vous pourriez être confus. Qu'est-ce que c'est ? Comment allons-nous obtenir cela ? Eh bien, chaque fois que vous en faites face, peut-être. Peut-être une nouvelle méthode ou une chose bizarre que nous utilisons dans l'unité et que vous êtes un peu confus. Vous avez un ami très serviable, Google. Et lorsque vous le regardez dans Google, vous pouvez voir que nous avons quelque chose appelé la documentation Unity, qui est un endroit tellement incroyable et qui devrait être une source d'informations quotidienne pour vous. Nous voulons donc utiliser les entrées. Nous voulons obtenir les axes horizontaux et verticaux. Vous pouvez voir ici, si nous la recherchons et les documentations, nous avons toutes les informations dont nous avons besoin. Tout d'abord, nous pouvons voir comment fonctionne la déclaration. Nous pouvons voir la description afin qu'elle renvoie la valeur de l'accès virtuel identifié par le nom de l'axe. Il vous explique également comment utiliser ces différentes méthodes. Et il vous donne également ici un exemple de la façon de l'utiliser. Et voici, ils l'utilisent et la mise à jour, nous pouvons même aller de l'avant et copier cela et l'utiliser dans notre propre roi. Mais pour l'instant, nous allons simplement chercher le point d'entrée, obtenir une ligne d'accès, horizontale. Très joli. Mais d'où ont-ils obtenu le nom horizontal ? Jetons un coup d'œil. Si nous y retournons et notre jeu. Si nous allons dans le fichier ou si nous allons voir les paramètres de modification du projet. Si nous regardons le gestionnaire d'entrées, nous cliquons sur l'axe, nous pouvons voir que nous avons le pare-feu horizontal et
vertical pour sauter, le saut de feu
MouseX, etc. Ce sont tous les éléments que nous pouvons utiliser. Et si nous cliquons sur l'Horizontal, vous pouvez voir ici que nous avons le nom horizontal, où la raison pour laquelle il est utilisé ici. Alors que vous pouvez voir ici que nous utilisons horizontalement. Et vous avez également la verticale et vous pouvez voir que le bouton négatif est à gauche, le bouton positif est droit. Et vous avez également un bouton négatif, ce qui signifie une alternative, qui est le A et le D. Vous avez aussi la gravité et ainsi de suite, mais des détails là-dedans. Et vous avez également l'axe, l'axe des x, c'est-à-dire l'horizontal. Allons donc dans notre code et mettons en œuvre cela. Nous allons donc ouvrir le froid ici. Ils l'ont utilisé comme mise à jour. Allons de l'avant, utilisez-le et mettez-le à jour car nous voulons y
accéder à chaque fois. Nous allons donc écrire ici point d'entrée, obtenir un accès erroné. Et nous allons ouvrir les deux crochets ici. Mais maintenant, nous voulons écrire horizontalement. Disons que nous écrivons hâte xanthan. Donc, vous pouvez voir, j'ai un peu foiré. Ce n'est pas le bon mot. S'il ne s'agit pas exactement du même mot que celui utilisé ici dans les paramètres du projet. Cela ne fonctionnera pas. Qu'est-ce que cela signifie ? Chaque fois que nous utilisons les références de chaînes, nous avons déjà appris ce que sont les chaînes. Nous devons nous assurer d'entrer dans Unity. Double-cliquez ici pour le sélectionner, Contrôlez C pour le copier, revenez ici et collez. Cela était certain que nous ne commettions aucune erreur lorsque nous créons ou utilisons une référence de chaîne. C'est très important car lorsqu'il s'agit d'erreurs, ne seront pas détectées par Visual Studio. C'est pourquoi il est impératif lorsque vous utilisez une référence de chaîne pour toujours copier et la coller. Il s'agit d'une règle selon laquelle vous utiliserez tout le développement de vos jeux de voyage. Maintenant que nous avons l'axe roulé à l'horizontale. On peut aussi ajouter la verticale, mais ce n'est pas suffisant. Nous avons besoin d'un moyen de stocker ce que nous cliquons. Pour ce faire, nous allons donc créer une autre variable ici. Cette fois, ça va être privé. Il va être de type vecteur 2 et ce sera le mouvement. Et maintenant, qu'est-ce qu'un vecteur deux et pourquoi nous l'utilisons pour avoir l'entrée du mouvement. Eh bien, parce que si nous regardons en arrière ici et que nous attendons la compilation, vous pouvez voir que la position est un x, y et z.
Maintenant, parce que nous ne travaillons pas dans la dimension VC et cette dimension, peu importe ce que vous voulez appeler, nous ne fonctionnent que dans les X et Y. Nous voulons avoir un vecteur qui prendra à la fois le x et le y. Maintenant, ce que nous pouvons faire dans notre code, nous pouvons venir ici. Nous pouvons écrire des entrées de mouvement. Nous pouvons ajouter le point x et il sera égal au point d'entrée. Vous vous trompez d'accès. Et juste pour nous assurer que nous pouvons tout voir, nous allons écrire le journal des points de débogage. Et ici, nous allons simplement imprimer le mouvement, ce point de pied x. Nous allons le sauver. Nous allons également imprimer le journal des points de débogage et l'ensemble de l'entrée du mouvement. Je vais donc écrire ici, c'est le vecteur. Pour sauvegarder cela, revenez dans Unity et assurez-vous que vous disposez de la console ici. Si vous n'allez pas à Window, allez à Général. Et vous pouvez voir ici que vous avez la fenêtre de la console. Nous allons donc cliquer ici. Ne vous inquiétez pas de ces petites erreurs. Lancez le jeu. On y va. Nous pouvons donc voir que nous avons actuellement des zéros. Nous pouvons cliquer sur l'effondrement. Cela réduira tous les messages identiques. Si nous essayons maintenant d'appuyer sur A ou D, si nous appuyons sur la touche A, vous y allez. Vous pouvez voir que cela devient moins 1 et que le vecteur 2 est inférieur à 1 000. Si nous appuyons sur la touche d, vous remarquerez qu'elle devient 1 et que le vecteur deux est 110. On y va donc. Excellent. Maintenant que vous comprenez comment ils fonctionnent, à quoi ils ressemblent, il est temps de relever un petit défi et votre défi sera d'obtenir les commentaires y. Alors, vérifiez dans Project Settings Input Manager pour l'entrée y, que devrait-elle être ? À quoi la chaîne doit-elle me faire référence ? Obtenez l'entrée et le code à l'aide du rouleau d'axe d'écartement. Vous pouvez également vérifier quelque chose appelé « get access without row ». C'est une bonne ressource supplémentaire pour vous. C'est très facile, il suffit de vérifier la documentation, d'avoir accès sans Rob, de voir quelle est la différence. Enfin, vous devrez afficher cette entrée sur la console à l'aide du journal des points de débogage, comme nous l'avons fait avec l'entrée de mouvement. Alors mettez la vidéo en pause maintenant et allez faire chaque gallon. Bon, bon retour. Comment êtes-vous arrivé à ça ? J'espère toujours que vous faites de votre mieux. Nous allons donc dupliquer cette ligne. Comment pourrions-nous faire cela ? Il suffit de cliquer sur la fin de cette ligne. Maintenez le contrôle D. Maintenant, vous avez exactement la même ligne. On va changer ça du X au Y. Et puis le fichier input.txt a accès. Rob, que devrait-il être ? Eh bien, nous savons que cela devrait être vertical, mais chaque fois que nous avons affaire à des références de chaînes, nous allons à la verticale, double-cliquez sur Contrôle C, revenons dans le contrôle de code V, sauvegardez cela. Et dupliquons cela aussi, mouvement entrée point y. Et ajoutons simplement un peu de mots ici. Donc ce sera le x, ce sera le y. Sauvez tout cela, retournez dans l'unité. C'est alors que vous fermez la fenêtre des paramètres du projet. Lancez le jeu. Maintenant, comme vous pouvez le voir à la fois le x, le y et le vecteur ou tous les 0. Et vous pouvez voir combien nous en avons ici. Une fois que nous avons appuyé sur le w, nous pouvons voir que nous avons le y comme un, le vecteur 2, 0, 1. Si on appuie sur le S, c'est moins 1. Si nous appuyons sur la touche a, x est minus1 alors que le y est toujours 0, vous pouvez le voir ici dans le vecteur 2. Si nous appuyons à la fois sur la touche W et D, vous pouvez voir que ce vecteur est 1,
1, x étant un. Et tout fonctionne parfaitement avec tout. J'espère que ça vous plaira. J'espère que vous avez compris ce qui se passe. Si vous n'êtes pas sûr de ce qui se passe. J'ai essayé de revoir cela, comprendre ce que signifie un vecteur deux. Nous avons également quelque chose appelé le vecteur 3. Chaque fois que nous travaillons avec des dimensions VC, s'il s'agit d'un jeu 3D. Et cela dit,
j'espère que vous apprécierez et j'espère que vous avez également compris comment la mise à jour est appelée chaque image, vous pouvez voir combien de fois elle est appelée. Et juste pour une petite démonstration, si vous êtes encore un peu sceptique quant à ce que je dis, essayons de déboguer le journal de points. Et disons ici, hé, je commence à être appelé une fois. J'ai sauvegardé cela dans notre jeu lorsque nous lançons, dès que cela s'assemble, exécutez le jeu. Vous verrez juste ici, hé, est appelé qu'une seule fois. Et c'est ce que l'on appelle chaque image. Et notre jeu avec cela dit
, ici, commet tous nos changements. S'engager. Et comment devrions-nous appeler cela ici ? Création d'un script pour le joueur et des variables apprises. Maintenant, c'est parce que nous créons généralement un cours lorsque vous
effectuez un projet et que vous apprenez des variables, n'est-ce pas important ? Je vais l'enlever. Cela signifie simplement que vous avez créé un script pour la couche. Nous allons engager nos changements. Et je vous verrai dans la prochaine vidéo.
10. Modification de la position du joueur (Transforme d'objets de jeu: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons en fait mettre les entrées que nous avons créées pour utiliser et nous allons voir à quel point les variables sont importantes. Alors maintenant, lorsque nous réalisons notre gain, vous remarquerez que nous ne sommes pas seulement là. Vous n'avez rien dans la console. Lorsque nous appuyons sur la touche WASD, nous voyons que notre joueur se déplace à gauche, à droite, à gauche, en haut, en bas. Et non seulement cela, si j'augmente la vitesse de déplacement, nous
y allons, nous sommes beaucoup plus rapides. Donc non seulement nous bougeons le joueur avec les touches, mais
nous pouvons également contrôler la vitesse à laquelle il a bougé. Donc, cela dit, ne
perdons plus de temps et commençons. Bon, maintenant que nous avons les intrants prêts, nous voyons comment ils fonctionnent. Il est temps de commencer à bouger le joueur. Comme nous l'avons promis. Ouvrons le script ici. Et allons-y et supprimons ces journaux de points de débogage. Ils étaient juste ici aussi. Faites-nous croire que cela fonctionne réellement. La première chose que nous devons faire est accéder à la position transformée du joueur. Nous allons donc aller de l'avant et cliquer sur Transformer. Et vous pouvez voir ici à quel point Visual Studio est déjà utile. Il nous dit ce qu'est la transformation. Donc, la transformation qui va écrire en ce moment est le transport attaché à cet objet de jeu. Quel objet de jeu ? Il s'agit de l'objet de jeu sur lequel le script de la manette du joueur est dessus. Et si nous regardons en arrière ici, nous cliquons sur le calque. À tout moment, nous cliquons sur le joueur. Nous pouvons voir que la manette du joueur est attachée au joueur et la transformation qui se trouve sur le GameObject ne joue pas comme celle-ci. Nous accédons donc à cette transformation spécifique. Donc, ici,
nous écrirons à nouveau transformer, appuyez sur Tab pour terminer la position du mot point. Vous pouvez voir que vous pouvez accéder à la position, à l'échelle, à la rotation, à tout ce qui est disponible sur la transformation. Et nous écrivons une position. Maintenant, cela va être égal à un nouveau vecteur trois. Et ce sera le cas, disons pour l'instant seulement 0,1 f. Et nous pouvons également écrire le point 1 f. Cela signifie 0, et nous garderons l'axe z au même endroit. Nous allons sauver ça. Maintenant, vous pensez peut-être pourquoi Vector3 n'avons-nous pas simplement dit que nous ne voulions pas modifier cela ? Eh bien, si nous survolons la position, vous pouvez voir que l'espace mondial positionne la transformation en tant que vecteur trois, qui peut également parcourir les documentations et voir qu'il s'
agit en fait de la position transformée de n'importe quel objet, peu importe si nous utilisons 3D, 2D 1D, c'est impossible, mais vous obtenez le vecteur d'image à trois positions. Nous accédons toujours à la position du vecteur C, mais nous la gardons comme 0 f. Maintenant la portée n'est pas complète, mais je vais l'utiliser juste pour apprendre que nous faisons des erreurs, je vais l'enregistrer. Je vais y retourner. Et voyons juste quelques valeurs réelles ici pour que nous le sachions, donc moins cinq et disons que c'est moins 1 sauvera cela. Nous allons lancer notre jeu et regardons. On y va. Donc 0.10.1. Maintenant, quel est le problème ? On ne l'appelle pas chaque image ? Eh bien, le problème ici est que nous assignons simplement cette valeur ici, le nouveau vecteur, 30.10.10 f à la position. À chaque image, nous n'augmentons pas la position de la transformation. Alors, comment allons-nous commencer à augmenter ? Laissez-moi juste arrêter le dramaturge ici. Nous allons écrire que nous prenons la position du point de transformation de l'objet de jeu ,
puis nous y ajoutons le vecteur 0.10.1 3, chaque image. Nous allons donc sauver ça. Et revenons en arrière et regardons notre jeu, quoi il ressemble en ce moment. Nous gérons le jeu et voilà. Des objectifs très précis. Le joueur vient de quitter le bâtiment, comme vous pouvez le constater, comme vous pouvez le voir maintenant ce qui se passe ici. Nous prenons la position transform.py. Nous affectons la transformation déjà disponible, mais la position plus le vecteur 3, et nous le faisons à chaque image. Disons donc que nous commençons à 0, 0. Nous prenons 000 ici, nous ajoutons à ce vecteur, la prochaine image nous avons 0.21. On le prend, on y ajoute, ça devient 0,2. Nous le prenons, nous ajoutons à cela devient 0,3. Donc, chaque image est augmentée. Maintenant, comme vous pouvez le constater, il y a du code redondant ici. La redondance signifie que nous l'utilisons plusieurs fois. Pour éviter cela, nous pouvons simplement supprimer cela
ici et ajouter un plus derrière les égaux. Et c'est exactement la même syntaxe qu'avant. Donc, si nous écrivons ceci à nouveau, laissez-moi juste dupliquer cela. Je vais simplement ajouter deux barres obliques. Cela devient un commentaire. Et comme nous l'avons dit, un commun n'exécute pas le code, et nous allons simplement supprimer ce code. Donc, comme un petit rappel de ce que signifie ce plus. Nous allons donc sauver ça. Nous reviendrons dans notre jeu et réduisons un peu cela, donc nous ajouterons 0 et ici, sauvegardons cela dans notre jeu. Nous exécutons le code, le jeu. Et nous y allons, nous pouvons le voir flotter lentement et encore, génial. Nous avons donc maintenant notre joueur qui se déplace. Mais nous ne voulons pas que ces valeurs soient simplement arbitraires. Nous ne voulons pas avoir 0,1 ou 0,01. En fait, nous voulons que les commentaires que nous avons obtenus ici déplacent le joueur. Ce sera donc votre défi. Votre défi consiste à déplacer la position du joueur avec l'entrée. Vous allez donc accéder à la position de la transformation du joueur. Vous allez faire de cette position un nouveau vecteur 3. Et vous allez utiliser le mouvement input.txt et le point y car les x et y de ce nouveau vecteur 3 garderont également l'axe z à 0 F. Et certains juste un peu plus d'aide. Je vous recommande de consulter la documentation Unity et de voir l'exemple. Ils ont été si gentils chez Unity Company quelque part pour nous donner un exemple de ce que nous recherchons. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Donc, si nous faisons défiler vers le bas ici, vous pouvez voir que nous obtenons l'entrée horizontale, nous obtenons l'entrée verticale, puis nous les mettons toutes à l'intérieur de la position transformée. C'est l'exemple exact dont nous avons besoin et notre gain. Donc, si nous revenons ici, au lieu de 0,01, je vais écrire le point d'entrée de mouvement x. Je vais écrire le point d'entrée de mouvement y. Et je vais enregistrer tout cela. Maintenant de retour dans notre jeu, nous lançons le jeu et maintenant notre joueur ne bouge plus. Si nous voulons le déplacer à droite, nous avons eu le Dickey il se déplace vers la droite, la gauche, et il a disparu. Comme vous pouvez le constater, notre joueur est extrêmement rapide. Pourquoi est-ce que c'est ? Eh bien, c'est parce que les mises à jour s'appellent chaque image. Donc, si nous essayons de jouer à nouveau, laissez-moi vous montrer ce que je veux dire. Si nous regardons les statistiques ici, nous pouvons voir combien d'images par seconde nous disposons. Donc, vous savez ce que sont les images par seconde ? Si vous avez déjà joué à un jeu et que vous pouvez voir maintenant c'est près de mille images par seconde. Nous appelons cela mille fois, 1000 fois. Nous en ajoutons un, donc nous ajoutons 1000 chaque fois ou toutes les secondes si vous le souhaitez. Alors, comment allons-nous contrôler cela ? Eh bien, il y a un moyen très simple, et c'est en multipliant cela par temps.DeltaTime. Et ce qui se passe actuellement, Time.DeltaTime, si nous le survolons,
c' est l'intervalle et les secondes entre la dernière image et la dernière image actuelle. Ce que cela fait, c'est qu'il faut le temps entre chaque image, nous la multiplions par celle-ci et deviendra maintenant la fréquence d'images et dépendants. Permettez-moi de vous montrer ce que cela signifie. Cela signifie que lorsque nous exécutons le jeu, le temps qu'il faut entre la première et la seconde est ajouté au mouvement. Et maintenant, quand on touche la touche D, on y va. Nous sommes beaucoup plus lents. Et si nous avions le W, nous montons vers le haut, les SVM vers le bas, un, nous nous dirigeons vers la gauche, vers la droite, et ainsi de suite et ainsi de suite. Est-ce que c'est cool ? Ce que nous avons au pluriel, qui nous sommes extrêmement bas. Ce n'est pas une façon de jouer à un jeu, surtout lorsque nous avons des ennemis effrayants qui nous suivent. C'est pourquoi nous avions cette vitesse de déplacement variable tout le temps. Cela nous permettra de contrôler notre vitesse. Nous allons donc maintenant multiplier cela par la vitesse de déplacement. Nous allons sauver cela. Ainsi, dans notre gain, nous pouvons voir que la vitesse de déplacement est de 20. Mettons-le à cinq. Gardez ça, lancez le jeu. Et maintenant, nous pouvons nous déplacer vers le haut, vers le bas, vers la gauche, à droite, comme nous le voulons. C'est génial que nous ayons enfin un personnage, un joueur qui se déplace dans un monde que nous avons créé en utilisant du code simple. Allons en faire 50. Regardons ça. Eh bien, on y va. Nous pouvons même contrôler la vitesse à laquelle il va. Je veux dire, sérieusement, à quel point êtes-vous excité ? C'est peut-être juste moi. Gardons ça à cinq heures. J'en pense cinq. Aucune fibre n'est vraiment lente. Faisons ça. Oui, on y va. Donc 10 ont l'air vraiment, vraiment sympa. Et cela étant fait, j'espère que cela vous plaira. Avant de présenter la prochaine vidéo, vous remarquerez que nous pouvons encore traverser les murs et nous éloigner, ce qui n'est pas bon. C'est pourquoi dans la prochaine vidéo, nous appliquerons la physique à notre joueur et nous
le ferons interagir avec divers objets de notre monde. Cela dit, quatre, je vais m'assurer de valider vos changements. Je ne vais pas faire avec chaque vidéo parce que c'est quelque chose qu'il faut devenir automatique. Et chaque fois que vous faites quelque chose d'important dans votre jeu, assurez-vous de mettre en scène tout le travail, engager tout votre travail, et je vous verrai dans la vidéo suivante.
11. Atteindre des obstacles (colliers): Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous faisons passer notre jeu au niveau supérieur. Quand nous lançons notre jeu. Vous remarquerez que non seulement nous nous promenons, mais si nous essayons de quitter notre carte, nous
y allons. Nous ne pouvons pas. Je jure que je suis toujours en train d'appuyer sur le mal. J'essaie toujours de descendre, mais ça ne marche pas. J'essaie toujours de sortir. Cela ne fonctionne pas. Nous sommes donc confinés dans ce petit espace. Nous le faisons en utilisant des corps rigides, des collisionneurs. Et c'est vraiment bien parce que nous pouvons enfin sentir le poids de notre jeu. Donc, même si nous pouvions marcher, nous pouvions voir que nous pouvons tout faire, mais maintenant nous avons du poids sur notre mouvement. Nous pouvons sentir le monde qui nous entoure. Cela dit, ne perdons plus de temps. Et commençons. Donc, actuellement, lorsque nous lançons notre jeu,
nous pouvons bouger et tout ce qui est génial. Donc, actuellement, lorsque nous lançons notre jeu, Mais comme vous pouvez le constater, lorsque nous essayons de frapper le mur ou quelque chose comme ça, nous bougeons simplement bâtard. Et c'est comme s'il n'y avait rien dans ce monde. Il semble vide, il ne semble pas réel même si nous y emménageons. Alors, comment allons-nous y remédier ? Nous allons utiliser ce qu'on appelle un collisionneur. Permettez-moi de vous montrer ce qu'est un collideur dans la documentation Unity, comme vous pouvez le voir, toujours référencé dans la documentation Unity, vous pouvez y accéder via Google. C'est super facile, super efficace. Voyons ce que nous avons de classe de collisionneurs basée sur la description. Nous avons une boîte, une sphère, une capsule, un collisionneur à mailles, des matériaux physiques et des corps rigides. Il faut déplacer quelque chose que nous apprendrons dans un objet muni d'un collisionneur. Pendant le gameplay, vous pouvez attacher un composant de corps rigide et nous obtiendrons juste le corps rigide un peu de patients, vous pouvez voir toutes les propriétés que nous pouvons avoir, les limites, le décalage de contact, le matériau. Nous avons des méthodes publiques telles que la refonte du point le plus proche. Nous avons des messages extrêmement importants et nous utiliserons beaucoup de Trigger Enter à la sortie du déclencheur sur Trigger Stay. Vous pouvez lire ici les descriptions de chaque méthode, de ce que chaque propriété, signification de chaque message, ce qu'il fait, de tout l'héritage, ce que nous pouvons utiliser, de la balise de comparaison sera très importante. Vous pouvez voir que nous en avons beaucoup. Vous n'avez pas besoin de comprendre chacun d'entre eux. C'est juste agréable de savoir que vous pouvez, si vous avez quelque chose en tête à implémenter, vous pouvez toujours aller dans les documentations de l'unité et voir si ce que vous recherchez est disponible ici. Cela dit, revenons ici et ajoutons un collisionneur de boîtes à l'un de ces murs ici. Commençons par le bas. Nous allons donc cliquer avec le bouton droit de la souris ici. Ou passons à l'arrière-plan. Ajoutons un composant ici. Nous allons en faire un collisionneur de boîte 2D, car nous travaillons sur ce collisionneur de boîte en 3D. Celui-ci est en 2D. Nous cliquons dessus. Vous pouvez voir qu'il remplit immédiatement toute la pièce, mais nous ne voulons pas cela. Nous voulons réellement le modifier, ou nous pouvons cliquer sur le bouton Modifier ici. Vous pouvez voir que nous pouvons en faire un déclencheur. Nous pouvons définir un décalage, nous pouvons définir la taille, sorte que nous puissions le réduire sur l'axe des Y, ou nous pouvons simplement cliquer sur ces trois points connectés ici et simplement le déplacer manuellement. Alors, tu y vas. Maintenant que nous avons ce collisionneur juste ici sur le mur ou en bas ou quoi que vous vouliez l'appeler, nous pouvons décliquer. Cela va lancer le jeu. Et maintenant notre joueur, quand il descend,
oh, eh bien, que se passe-t-il ? Le joueur frappe toujours le mur et il passe devant. Pourquoi est-ce que c'est ? Eh bien, parce que nous n'avons pas de collisionneur sur notre couche. Ce sera donc votre défi. Votre défi consiste à ajouter un collisionneur au joueur. Donc, dans un collisionneur, une capsule, il n'est pas nécessaire qu'il s'agisse d'une capsule. Cela dépend de la taille et du cadre de votre lecteur. Celui qui est vrai personnellement, ou si vous utilisez le même que moi, assurez-vous que ce n'est que l'objet parent du joueur, pas le corps. Et modifiez la taille du collisionneur à la taille appropriée de votre joueur. Donc, avec ces instructions, mettez en pause la vidéo dès maintenant et relancez le défi. Bon, bon retour. Alors, comment avez-vous fait ça ? Nous allons ajouter un collisionneur à capsules 2D. On y va. Nous avons la capsule, la coquille de la capsule et nous ne savons même pas comment elle est prononcée. Nous cliquons donc ici. Vous pouvez voir la petite ligne verte ici. Nous allons donc décrocher. On y va et on fait à peu près la taille de notre couche. Maintenant, voyons si cela fonctionne. Si nous gérons notre jeu. Maintenant, lorsque nous descendons à pied, nous continuons à traverser l'objet. Pourquoi cela ne fonctionne-t-il pas ? J'aurais probablement dû vous avertir à ce sujet. Nous allons maintenant ajouter un Rigid Body 2D. Et maintenant, lorsque nous lancerons le jeu, nous verrons que nous frappons le mur. Mais je n'ai rien pressé. Si je monte et que je lâche prise, on tombe. Pourquoi est-ce que c'est ? Que se passe-t-il ? Eh bien, parce que lorsque vous ajoutez un corps rigide, vous ajoutez également de la gravité. Examinons un peu plus en profondeur ce qu'est un corps rigide. Il contrôle donc la position d'un objet par simulation physique. Ainsi, lorsque vous ajoutez un corps rigide à un objet de jeu, vous y ajoutez de la physique. L'objet du corps rigide sera tiré vers le bas par gravité sans ajouter de code supplémentaire. Et nous pouvons également leur appliquer nos propres forces, ce que je veux dire par eux, c'est le corps rigide. Vous pouvez également entrer dans les documentations de l'unité et approfondir ce qu'est le corps rigide. Et en fait, nous allons devoir nous y plonger. Je vais donc entrer ici. Docs d'unité de corps rigide. On y va. On y va. Nous voyons les documents Unity 3D. Et vous pouvez voir la description,
les propriétés, les méthodes publiques, etc. Revenons en arrière et encore, nous pouvons voir ici que nous pouvons changer la masse, la traînée angulaire. Nous pouvons modifier la façon dont la collision est détectée, discrète, continue, mais il faut un peu plus de puissance de traitement , le mode veille, les contraintes, nous allons en fait les utiliser un peu. Vous verrez pourquoi. Et nous pouvons changer cela de dynamique deux cinématiques, statiques. Et chacun d'entre eux est expliqué ici. Mais la principale différence, alors que cela expliquait quelque part ici, je ne sais pas où vous pouvez lire sur chacun d'eux pour y approfondir, mais je sais que la dynamique signifie être affectée par les forces extérieures. La cinématique signifie qu'elle n'est pas affectée. Et les moyens statiques sont comme un gros rocher. Il ne bouge pas du tout. Vous pouvez voir ici l'échelle de gravité. Réglons la valeur 0, sauvegardons cela, lançons le jeu. Et maintenant, vous remarquerez que nous ne tomberons plus. Alors maintenant, lorsque nous descendons, vous pouvez voir que nous ne pouvons plus passer sous cela. Mais qu'est-ce qui s'est passé ? Et vous pouvez voir que nous nous déplaçons, nous devons ajouter un collisionneur de boîtes. Mais que s'est-il passé ici et qu'est-ce que c'est, cette nervosité ? Donc, la première chose que nous allons régler comme le retournement des choses. C'est donc parce que nous sommes en rotation. Vous pouvez voir ici, c'est en fait parce que la physique a calculé que nous devrions la faire pivoter à cause de la capsule ici. Nous allons donc geler la rotation autour de l'axe Z pendant Z, car cela vous montre si nous cliquons sur l'outil de rotation ici ou si nous touchons simplement l'aile. Nous pouvons voir quand nous tournons,
c'est l'axe Z qui nous fait pivoter et nous pouvons le voir clairement lorsque nous sortons de 2D, vous pouvez cliquer dessus à droite ici, nous sortons. Vous remarquerez que l'axe Z, et vous pouvez le voir. On y va. C'est autour de l'axe Z que nous tournons. Donc nous arrêterons le, nous allons régler cela à 0, va geler sur le Z. Et maintenant, quand nous lancerons notre jeu, nous descendons. Et on y va. Nous ne retournons plus si nous passons de gauche à droite, mais nous avons toujours cette nervosité. Et qu'est-ce que c'est agité ? D'où vient-il ? Eh bien, c'est une question de code. Nous pouvons voir ici que nous bougeons le joueur en utilisant sa transformation, cette position. Nous avons donc deux forces en collision. Nous avons la position transformée en essayant de passer par l'hirondelle, mais nous avons la physique des deux collisionneurs qui tentent de repousser le joueur. Cela crée donc cette nervosité. Comment remédier à cela ? Eh bien, nous allons commencer à déplacer le joueur, non pas à utiliser sa position de transformation, mais à utiliser sa vélocité. Et la vitesse est disponible sur le corps rigide. Si vous trouvez cela quelque part ici, je ne suis pas sûr de ce que c'est. Voyons voir. Vélocité. Vous y allez. On peut y ajouter de la vitesse, vitesse
angulaire, de la vitesse normale. Nous pouvons le changer ici. Alors, faisons-le. Si nous y allons et que vous savez quoi, ajoutons-le ici. Nous allons créer un champ sérialisé. Ce sera une variable de type corps rigide 2D, et nous l'appellerons simplement le corps rigide du joueur. Gardez ça. Oh, et encore une chose que vous avez remarquée, et j'ai oublié de vous le dire. C'est ainsi que nous nommons notre variable. Le premier mot doit toujours comporter la première lettre non majuscule, tandis que tous les mots suivants seront en majuscule. Pourquoi est-ce que c'est ? Prenons un exemple à partir d'ici. Vous remarquerez que le joueur n'est pas en majuscule. corps rigide est par le B car le corps ne l'est pas. Donc, si nous sauvegardons cela, nous examinerons l'inspecteur. Vous remarquerez ici, la variable, la façon dont elle est écrite sera un corps rigide du joueur avec un corps rigide en un seul mot. Si nous revenons en arrière, nous faisons en sorte que cela soit capitalisé. Nous sauvegardons cela. Nous revenons dans l'inspecteur, vous remarquerez que maintenant le B est en majuscule et qu'il s'agit d'un mot distinct. Ainsi, chaque fois que nous capitalisons l'un des mots, il devient séparé. Mais ce n'est pas ce que nous voulons. Nous le voulons comme un seul. Vous pouvez voir le même exemple et la vitesse de déplacement. Quand on y retourne, on y va. Nous venons donc de créer une référence au corps rigide du joueur, mais nous ne l'avons pas ajoutée car vous pouvez voir maintenant que le joueur est rigide, et il n'y a tout simplement pas comment nous le faisons. Il suffit de cliquer sur le corps rigide ici et de le faire glisser vers le haut. Vous pouvez donc voir, comme son nom l'indique, c'est le corps rigide sur la couche de dunes. Nous sauvegardons cela dans notre jeu. Et ici, nous allons utiliser à la place de la position de transformation delta et tout cela, je vais juste commenter ce point de vente, nous allons le supprimer, mais je veux juste avoir tout cela devant que
vous connaissiez le processus de ce qui est se produisant. Alors maintenant, nous prenons le corps rigide du joueur, accédons à la vélocité dessus. Et cela va être égal à l'entrée du mouvement à la vitesse de déplacement. Et parce que nous utilisons la vélocité, cela ne nécessitera aucun temps.DeltaTime. Nous sauvegardons cela. Nous y retournons. Allons faire monter un peu ce type. Alors maintenant, lorsque nous lançons notre jeu, on se déplace. Et si nous essayons de passer à travers le mur, vous y allez. Vous pouvez voir que nous n'avons plus la nervosité
parce que nous avons les deux moteurs physiques qui fonctionnent. Eh bien, pas le moteur physique 2, 1 qui fonctionne sur les deux bibliothèques à cause du corps rigide. Enfin, nous allons ajouter quelques autres collisionneurs à l'arrière-plan. Je vais donc ajouter une boîte collider 2D. Je vais rendre ça un peu plus petit. Et maintenant, il n'est plus recommandé d'ajouter plusieurs planeurs de boîte sur le même objet de jeu, mais pour l'instant, nous ferons une exception. Cela se produira rarement. Alors, tu y vas. Ajoutons un collisionneur de boîtes comme ça. Ajoutons-en un autre. Et celui-ci sera sur le côté. Donc, nous ne sortons pas, nous allons juste le rendre un peu plus gros. Et ajoutons le dernier collisionneur de boîtes, et celui-ci sera celui de l'autre côté. On y va. Nous sauvegardons tout cela. Nous gérons notre jeu. Et maintenant, on descend. On ne peut pas marcher à gauche, on ne peut pas. Nous avons marché vers la droite, nous ne pouvons pas. Et si nous essayons de progresser, nous ne pouvons pas non plus, mais il y a un léger problème. Vous pouvez voir que nous avons encore de l'espace ici pour aller. Ce que je vais faire, c'est que je vais simplement rendre les joueurs en collision un peu plus petits sur le dessus. Alors, passons par ici. On peut même peut-être changer cela d'une capsule à autre chose et le faire comme ça. Oups. Où est-il ? Nous changeons de position, donc nous la déplacons sur le X. Oui, nous y allons. Nous gérons notre jeu. Et nous pouvons voir que nous progressons en quelque sorte. Nous avons encore ce peu d'espace. Ce n'est pas un problème énorme. Nous pouvons même fabriquer B au lieu d'une capsule, faire un collisionneur de boîte ou autre chose. Mais vous pouvez voir que tout fonctionne bien et dandy avec cela, assurez-vous de commettre vos changements. Et dans la vidéo suivante, nous viserons notre pistolet en utilisant la direction ou l'endroit où notre souris pointe parce qu'actuellement, avoir ce pistolet ne fait pas grand-chose. Je vous verrai dans le prochain.
12. Visage du stylo (Point d'écran): Bonjour, bon retour, Mes développeurs de jeux préférés dans cette vidéo, notre arme n'est plus un objet statique. Si vous regardez de près, vous pouvez voir que lorsque nous descendons, le pistolet se déplace vers le bas. Quand on lève les yeux, le pistolet se bloque. Évidemment, il y a encore quelques choses qui doivent être réparées parce que tenir le pistolet comme ça me semble plutôt mal à l'aise, mais pas de soucis à ce sujet. C'est la première étape pour nommer correctement notre arme. Donc, ne perdons plus de temps et commençons. Il y a beaucoup de maths là-dedans. Alors mettez vos casquettes de réflexion. Maintenant que nous avançons et que nous nous heurtons à des choses, il est temps de commencer à viser notre arme. Pour ce faire, nous voulons faire pivoter l'arme autour d'une certaine position. Nous ne voulons pas vraiment faire tourner l'arme exacte parce que si nous regardons ici, si nous allons sur les lieux,
vous pouvez voir maintenant, vous pouvez voir maintenant, si nous essayons de faire pivoter le pistolet tel qu'il est, il n'a pas l'air aussi beau. Nous avons besoin d'un point d'où le pistolet va tourner. Ce que nous allons faire, c'est que nous allons faire un clic droit sur le lecteur dôme. Nous allons créer un objet de jeu vide. Nous allons appeler ça le bras d'armes. Et nous allons le déplacer à un certain point. Et c'est le point où le pistolet ou à partir duquel le pistolet va tourner. Je vais donc le mettre presque autour de la main ou du bras du joueur. Et je vais fabriquer le fusil de chasse, un enfant de ces armes. Maintenant, lorsque nous tournons le bras de l'arme, vous remarquerez que le fusil de chasse reste à sa place presque autour du bras, et cela semble beaucoup plus naturel lorsque nous faisons tourner le fusil de chasse ou les armes. Il est donc temps de prendre un peu de froid. Mais avant de faire cela, comment allons-nous réellement faire tourner ce bras ? Cela dépendra de l'endroit où se trouve notre bouche. Disons donc que nous sommes ici. Nous voulons que le fusil de tir pointe vers la souris. Comment allons-nous calculer cela ? Eh bien, nous aurons besoin de quelques points et laissez-moi l'expliquer en maths, yay math. Commençons donc. Tout d'abord, nous avons besoin de la position du joueur à l'écran. J'utilise le terme « position du joueur », mais c'est en fait le point sur lequel nous tournons le fusil de chasse. Mais pour l'instant, restons simples. Appelez cela la position du joueur, et nous avons la position de la souris sur l'écran. Ce que nous voulons, c'est que nous voulons obtenir le vecteur sur ces deux points. C'est la direction qui aura disparu qui va pointer. Mais comment allons-nous réellement calculer l'angle dans lequel nous voulons que le canon pointe ? Eh bien, nous connaissons l'exposition et nous connaissons la position Y. Eh bien, je voulais dire X et Y. Ce que nous pouvons faire, c'est que nous pouvons utiliser quelque chose appelé la tangente d'arc. Et c'est quelque chose qui nous est disponible en maths. F de l'unité est une bibliothèque. Nous pouvons donc utiliser cela pour calculer l'arctan. Et si vous ne savez pas quel arctan ou si vous ne savez même pas ce que Dan est tangent, je crois que c'est l'avant, c'
est-à-dire le Y divisé par V x. Et lorsque nous faisons cela, nous obtenons un certain nombre, qui est la tangente. Donc, pour obtenir l'angle, nous utilisons quelque chose appelé la tangente de l'arc, qui est un peu inverse. Mais tout ce que vous devez savoir, c'est que nous avons la différence de hauteur, nous obtenons la différence de distance. Et en utilisant cela, nous calculons l'angle dans lequel l'argon devrait pointer. Il s'agit de mathématiques élémentaires de base. Je ne sais pas si vous êtes familier avec ça. Si vous voulez approfondir la question, soyez mon invité, je crois que ce sera une explication suffisante. Traduisons donc ces équations mathématiques en codes mathématiques. Je vais donc revenir en arrière et notre script ici dans la manette du joueur. Et la première chose dont nous avons besoin, c'est les deux références pour la caméra et pour les armes. Je vais donc commencer par créer un champ sérialisé, qui sera une transformation. Et ça va représenter que les armes sont géniales. La deuxième variable que nous allons créer en tant que caméra privée, et elle sera la caméra principale. Et ce qui est cool à ce sujet, c'est que nous pouvons immédiatement aller Stuart et dire que la caméra principale est égale à la caméra. Dot principal. Et en utilisant cette caméra, cette principale, nous pouvons immédiatement obtenir une référence à la caméra principale dont nous disposons. Et ici, super. Nous devons maintenant savoir où se trouve notre bouche dans le monde. Nous allons donc faire défiler vers le bas et ici, et je vais simplement supprimer ces commentaires parce que nous n'en avons plus besoin. Si vous estimez que vous en avez besoin, gardez-les pour vous rappeler plus tard comment nous avons changé et évolué dans notre code. Maintenant, je vais trouver la position de la souris. Je vais utiliser un vecteur trois. Et ça va s'appeler la position de la souris. Et cela sera égal à la position de la souris point d'entrée. Et vous pouvez voir maintenant que la communauté Visual Studio nous
donne immédiatement la position actuelle de la souris en coordonnées pixel. Super, c'est ce dont nous avons besoin. Et évidemment, je connais déjà ce genre de choses. Si vous vouliez faire des recherches sur ce point, vous auriez dû aller dans Google, comment obtenir le plus de position. Vous avez obtenu les documentations pour l'unité. Vous auriez trouvé cette position de souris point d'entrée. Vous l'auriez utilisé. Ce n'est qu'un raccourci. Continuons. La prochaine chose dont nous avons besoin, c'est le point d'écran. Donc, point d'écran, et il sera égal à la caméra principale, la caméra mondiale, au monde à l'écran. Et vous pouvez voir la définition et voici la position de transformation de l'espace mondial et de l'espace écran. On y va. C'est ce dont nous avons besoin. Transformez l'échelle locale, je veux dire la position locale. Et cela nous donnera la position locale de la transformation, qui est le joueur en ce moment. Et maintenant, il est temps de calculer l'angle. Tout d'abord, sauvegardons tout ça. Allons de l'avant et assignons le bras au joueur. Je vais donc tirer le bras de l'arme maintenant. Nous allons sauver ça. Et maintenant, la prochaine étape consiste à calculer réellement l'angle. Donc, je vais tout d'abord vous
montrer ceci à nouveau pour que vous puissiez revenir en arrière et regarder ça si vous en avez besoin. Et puis je vais vous lancer un défi. Et votre défi sera de calculer l'angle. première chose que vous faites est de soustraire la position x de la souris de la position du point d'écran du x. Évidemment, vous devrez faire la même chose pour le y. Ensuite, vous devrez calculer le point F mathématique arctangent pour le trouver dans la documentation Unity. Allez-y, mettez la vidéo en pause dès maintenant. Va faire de ton mieux. Essayez-le. Vous ne perdrez rien en faisant de votre mieux. Mettez la vidéo en pause dès maintenant et relancez le défi. Salut, bon retour. Comme vous pouvez le voir, je viens de chercher des maths, tangente d'
arc dans Unity. Maintenant, je suis juste ici. Que dois-je faire ? Je dois voir comment cela fonctionne. Que fait ? Il renvoie un flotteur. Voici notre façon d'utiliser matlab.org Tange. Ok, super. Revenons ici. La première chose à faire est donc de calculer la différence. Je vais mettre les deux dans un vecteur deux. Je vais donc utiliser un vecteur pour, j'appellerai cela le décalage. C'est donc le décalage entre les deux points. Il sera égal à un nouveau vecteur deux. Et ici, je vais d'abord obtenir la position de la souris point x et en soustraire,
le point d'écran dirige. Et je vais faire la même chose sur le pourquoi. Maintenant, je vais créer un flotteur car comme nous avons vu cette méthode, la méthode dot arctan renvoie un float, va être égale à maths F dot arc tan ou non, Eta. C'est ce qu'on appelle un bronzage deux. Et je vais utiliser le point de décalage y divisé par le décalage DRX. Super, je vais donc sauver ça. Mais chaque fois que nous voulons attribuer la rotation réelle aux armes,
nous ne pouvons pas simplement le faire à l'aide d'un flotteur. Ce que nous devons faire, c'est que nous devons utiliser une méthode supplémentaire, qui est la méthode qui suit deux degrés. Et vous pouvez voir que cela convertit les radians en degrés constants. Nous devrons donc le faire. Et la dernière chose que nous devons faire, c'est que nous devrons accéder aux armes en rotation des
points et nous préparer à affronter un monde un peu effrayant. Nous allons utiliser les quaternions. Donc, Quaternion Dot Bueller. Et nous allons le définir à 00 sur l'axe X. Nous ne tournons pas sur l'axe Y, nous ne tournons pas. Nous tournons uniquement autour de l'axe Z en utilisant l'angle. Avant de vous enfuir, qu'est-ce que Turnitin dot Hulu ? Si vous regardez la précédente ici, vous pouvez voir qu'elle renvoie une rotation qui fait pivoter des degrés Z autour de l'axe z, x autour de l'axe des x, des
x autour de l'axe des x, etc. Donc, Quaternion Dot. Si vous êtes intéressé, vous pouvez approfondir cela. Personnellement, je fais tourner des objets dans Unity depuis plusieurs années et je n'ai jamais tout à fait compris ce qu'ils
entendent par quaternion n'est qu'un moyen
de convertir le XYZ en une rotation et un espace réels. Alors n'hésitez pas à plonger en profondeur, aller le chercher, à vous assurer de tout comprendre. Si ce n'est pas le cas, si vous n'êtes pas dérangé de ne pas
comprendre complètement ce qui se passe avec quaternion u dot. Croyez-moi, vous pouvez traverser votre parcours de développement de jeux sans vous en soucier. s'agit donc simplement d'un moyen de convertir x, y et z en un angle en rotation. Nous allons sauver ça. Nous retournerons dans Unity. Et nous allons diriger le jeu. Et voyons ce qui se passe avec le pistolet en ce moment, nous montons, le pistolet monte. Nous descendons. Le pistolet descend. Si nous allons à gauche, oui. Notre arme a l'air un peu bizarre quand on regarde dans l'autre sens, mais quand il s'agit de la bonne direction, on y va. Nous bougeons et nous nous adaptons même à mesure que nous marchons. Vous pouvez donc voir quand nous montons, le pistolet descend. Je regarde toujours exactement où se trouve la position de la souris. Tellement génial maintenant, nous avons un pistolet qui tire réellement, ce qui est incroyable à mon avis, pas vraiment de tir, qui tirera dans la bonne direction plus tard au fur et à mesure que nous avancerons. Mais il y a évidemment quelque chose qui ne va pas lorsque nous essayons de déplacer la souris dans l'autre sens, elle se déplace correctement. C'est ce que nous allons corriger dans la prochaine vidéo tout en apprenant quelque chose de très agréable encodage qui s'appelle les instructions if et les conditions if. Je vous y verrai donc. Mais avant de partir, assurez-vous
toujours de mettre en scène tous vos fichiers. Mega s'engage. Je vais dire que ça a fait pointer mon arme dans la bonne direction ou ne pas envier l'angle droit. Parce que dans la vidéo suivante, nous allons le faire pointer dans la bonne direction, faire pointer tout le joueur et la bonne direction. Alors, à ce moment-là.
13. VisER la bonne direction (si l'étape): Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons non seulement faire tourner le pistolet, mais nous allons également pointer dans la bonne direction. Mais non seulement cela, non seulement nous pointons dans la bonne direction, nous pouvons également pointer en arrière. Et c'est très important et ce sera votre défi. Nous allons apprendre comment utiliser les conditions,
if pour faire pivoter de gauche à droite. Et ça va être très friand, ça
va être incroyable parce que nous rendons notre gain beaucoup plus vivant, beaucoup plus efficace. Ne perdons donc plus de temps. Et commençons. Oh, d'accord. Maintenant, notre gomme est en train de tourner. Il pointe toujours vers la souris. C'est génial. Mais que se passe-t-il lorsque nous dépassons une certaine limite ? Vous pouvez voir maintenant que le GAN pointe toujours vers la bouche. Mais tout d'abord, c'est inversé. Deuxièmement, le joueur ne regarde pas dans la bonne direction, nous devons
donc régler tout cela. Mais comment, comment pouvons-nous dire à notre joueur de
se comporter d'une manière quand il regarde dans une direction et une autre quand il regarde dans l'autre direction ou devrait regarder comment pouvons-nous lui dire ? Si c'est comme ça, nous voulons faire quelque chose. Si c'est autre chose, nous voulons faire autre chose. Eh bien, c'est ce que nous appelons la déclaration if. Laissez-moi vous guider à travers ça. d'instruction IF conditionnelle. Voici à quoi ressemble la syntaxe. Nous avons une condition qui doit être vraie. C'est à l'intérieur de ces deux supports ici. Et si cette condition est vraie
, le code à l'intérieur de ces deux lignes tortillantes est exécuté. Si ce n'est pas le cas, nous avons quelque chose qui s'appelle l'autre. Si cette condition n'est pas vraie, sinon si une autre condition est vraie, ce code sera exécuté. Et si ni cette condition ni la seconde n'est vraie, alors nous avons quelque chose qui s'appelle l'autre. Et ce code sera exécuté si aucune des conditions précédentes n'est vraie, vous pouvez ajouter autant d'autres instructions if que vous le souhaitez afin de pouvoir ajouter. La première est toujours si vous ne pouvez même pas faire d'autre chose, si vous pouvez ajouter immédiatement un autre ou si vous pouvez ajouter 15 autres si vous en avez besoin, vous peut-être jamais besoin de cet argent, mais si jamais vous en avez besoin de plus d'un, plus de
deux, vous pouvez ajouter. Nous avons donc une condition ici. Si c'est vrai, ce code s'exécute et on s'arrête. Nous ne continuons pas à regarder vers le bas. Si ce n'est pas le cas, ce premier n'est pas vrai. Nous regardons le deuxième. Si c'est le cas, nous exécutons, si ce n'est pas le cas, nous continuons. Enfin, si nous ne trouvons aucune condition vraie, nous en exécutons une autre. Allons de l'avant et mettons en œuvre cela. Alors, que recherchons-nous ici ? Nous cherchons à faire pivoter l'objet entier. Si c'est le cas, que recherchons-nous ici ? Nous voulons voir si la position de la souris est inférieure à celle du lecteur dôme, par exemple, il
s'agit de la position sur le x dans la scène. Ainsi, lorsque nous reculons, vous pouvez voir que c'est moins lorsque nous nous dirigeons vers la droite. Cela signifie qu'il est petit. Imaginez donc que la position de la souris est un autre objet de jeu. Par exemple, nous sommes ici et dans cette zone à gauche du joueur, qui signifie que la position la plus élevée est inférieure à ce point vert, qui signifie que nous voulons faire pivoter le joueur entier de l'autre côté. Mais comment allons-nous réellement faire cela ? Eh bien, il y a la balance ici, ce qui rend la tâche très facile. Donc, si je change l'échelle sur le x, vous pouvez voir qu'il devient de plus en plus large. Mais que se passe-t-il quand on est négatif ? Donc, quand on devient négatif, oui, on y va. En fait, on retourne le joueur. Et c'est ce que nous voulons ajuster chaque fois que nous regardons dans l'autre sens. Et cette direction, lorsque la position de la souris est inférieure au point de l'écran, c'
est-à-dire le joueur. Nous voulons regarder ici. Et dans cette direction, nous voulons changer l'échelle à moins un, pas seulement l'ACS, mais aussi le y. Nous verrons pourquoi. Maintenant que nous avons établi ces choses, créons notre première déclaration si. Ici, nous allons en créer assez. Nous allons ouvrir les deux crochets ou colonnes. Je ne sais pas comment on les appelle. Nous allons vérifier la position de la souris point x. Nous n'avons pas besoin du Y. Peu importe. Et s'il est inférieur au point d'écran, le RX. Ensuite, nous allons prendre l'échelle locale de transformation, qui est l'échelle locale de l'objet contenant ce script. Cela signifie que le joueur ne doit pas être un nouveau vecteur 3 moins 1,
f 1, f 1, f 1. Gardez ça. Nous réalisons le gain. C'est alors que le Y est toujours positif. Donc, si nous regardons dans l'autre sens, vous pouvez voir que le pistolet est à l'envers. Donc notre objectif, laissez-moi simplement vous montrer et la façon dont je fais une pause à l'aide des touches est le
changement de contrôle P. Donc ce que nous devons faire, c'est si nous saisissons le bras de l'arme, si je le mets à moins un, vous y allez. Vous pouvez constater que nous sommes de retour à une bonne échelle ou à une bonne publicité. Je vais donc régler ça à moins 1, sauvegarder ça dans notre jeu, lancer le jeu. Et maintenant, nous regardons de haut en bas, le gang tourne. Si nous allons de l'autre côté, vous y allez. Le pistolet a l'air bien. Super. Donc, tout est mis en place. Le seul problème, c'est que lorsque nous regardons en arrière, le joueur ne change pas. Alors, comment allons-nous nous assurer que lorsque cette condition n'est pas vraie, comment allons-nous faire pivoter le joueur en arrière ? Eh bien, c'est votre défi. Votre défi consiste à créer une autre déclaration. Vous devrez ajouter aux instructions if et else. Nous avons déjà vu à quoi cela ressemble. Cela s'active lorsque la position x de la souris est plus petite que le point x. Dans ce cas, nous devons remettre les échelles locales ou toutes les échelles locales à une seule. Et je vais vous donner un petit indice, qui consiste à définir l'échelle sur le vecteur trois points un, vecteur trois points un. Vous pouvez également effectuer des recherches sur la documentation d'Unity. Cela signifie qu'il s'agit d'un vecteur 3, 1, 1, 1. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Comment avez-vous eu tout ça ? J'espère vraiment, vraiment que vous essayez toujours de relever ces défis. Je vais donc créer une autre déclaration ici. Et ce que je vais faire, c'est que je vais prendre la transformation à l'échelle locale. Et ça va être égal au vecteur trois points un. Sauvons ça. Et je vais également dupliquer cela. Donc, la façon dont nous le dupliquons comme souvenir du contrôle D. Et au lieu de la transformation, je vais utiliser les armes, je vais sauver tout ça. Je vais retourner dans mon jeu. Je vais le faire fonctionner. Maintenant, je regarde vers la droite, mon pistolet tourne correctement. Tout va bien. Je regarde vers la gauche, le pistolet tourne correctement. Le joueur regarde dans la bonne direction. Maintenant, si j'y retourne, on y va. Vous pouvez donc constater que nous avons résolu notre problème. Le joueur regarde toujours dans la bonne direction. Nous avons le pistolet pointé correctement, et nous avons enfin l'air incroyable en le faisant. Maintenant, nous pouvons nous promener. Vous pouvez voir que c'est beaucoup plus naturel parce qu'il pointe toujours vers le pistolet. Non seulement l'arme pointe correctement vers le canon, problème
d'arme pointe vers la souris, mais aussi une couche profonde, le corps
entier tourne et pointe dans la bonne direction. ce faire, assurez-vous d'aller de l'avant et de valider les changements que nous avons apportés. Et dans la prochaine vidéo, nous allons ajouter plus de saveur à nos jeux. Comment, en créant la marche, le ralenti et peut-être même les animations de torpilles pour le joueur ont hâte de commencer à animer. Je vous verrai dans le prochain.
14. Animations de l'unité: Bienvenue à mes collègues développeurs de jeux dans l'une des vidéos les plus excitantes et les plus longues et les plus longues. Mais croyez-moi, ça en vaut vraiment la peine. Dans cette vidéo, nous allons donner plus de vie et à notre jeu en créant des animations. Maintenant que nous commençons notre jeu, nous ne sommes pas simplement là comme une statue. Vous pouvez voir que nous sommes en train de bouger. Donc, notre joueur monte et descend, haut en bas, de haut en bas. Et non seulement cela, chaque fois que nous commençons à marcher, regardez ça. Il commence à bouger ses pieds. Est-ce que c'est cool ? Sérieusement, maintenant nous n'avons plus que le joueur debout comme une statue chanceuse. En fait, il a la vie, sa respiration. Il marche, il regarde autour de
lui, il pointe son arme, il est prêt à commencer à tirer. Il a encore besoin d'un peu de peaufinage, mais on s'occupera de ça dans la prochaine vidéo. Alors, qu'est-ce qui, au final, quelle vidéo ? Ne perdons plus de temps à réfléchir et passons à l'animation. Oh, d'accord. Donc, en ce moment, lorsque nous commençons notre jeu, si nous nous déplacons, comme vous pouvez le constater, nous sommes très viciés. On n'a pas d'animations en particulier, on ne voit pas le joueur changer d'état quand il commence à marcher ou quand il est debout non plus. Nous allons donc changer cela. Nous allons ajouter des animations à notre joueur. Et nous avons déjà quelques feuilles de calcul et ici, celles qui détermineront notre animation. Vous pouvez donc voir le ralenti, la marche. Nous allons les mettre côte à côte et jouer ces sprites pendant que nous marchons,
alors que nous restons immobiles, tout comme nous faisons le mouvement des torpilles. Commençons donc par les animations. Tout d'abord, comprenons ce que sont les animations. quelques éléments clés dont nous avons besoin. Tout d'abord, nous avons le contrôleur d'animateur, qui vous permet d'organiser et de maintenir un ensemble de clips d'animations. Nous avons le composant animateur que nous ajoutons à n'importe quel objet de jeu que nous voulons animer. Nous avons les animations réelles, qui sont plusieurs sprites qui sont rendus les uns après les autres. Nous verrons également que nous avons un autre type d'animations qui nous permet de
déplacer des objets, puis de les mémoriser et de les jouer à certains moments. Et enfin, nous avons le moteur de rendu de sprite. Maintenant, pourquoi est-ce que je vous rappelle le rendu de sprite ? Parce qu'en un instant, vous devrez comprendre quel moteur de rendu de sprite essayerait réellement de
changer afin de créer les animations que nous avons pour notre lecteur DOM. Bon, on parle assez. Commençons par les animations. Allons donc dans Unity. Et la première chose que nous devons faire, c'est d'obtenir les fenêtres de l'animation. Nous allons donc créer la fenêtre des animations. Allons-y ici. Et créons une autre fenêtre pour l'animateur. Vous y allez. Donc, l'animateur indique où nous allons définir toutes les animations. Et les animations comme l'endroit où nous allons réellement créer les animations. Commençons. Tout d'abord, nous allons choisir notre doom player. Et comme vous pouvez le voir immédiatement dans la fenêtre d'animation, nous devons commencer à animer, faire du lecteur, créer un animateur et un clip d'animation. Super, faisons-le. Nous allons cliquer sur Créer. Et comme vous pouvez le constater, nous sommes actuellement à la fois dans le fichier envahisseur et les actifs. Je vais créer un nouveau dossier ici, qui sera les animations. Ou des animations. Vous y allez. Et ici, créez un dossier appelé le lecteur. Et nous allons nommer notre clip. Commençons par créer un joueur, je pense. Ok, super. Nous avons donc maintenant notre nouvelle animation. Et si nous regardons le lecteur dôme, vous pouvez voir que nous avons un nouveau composant à côté du corps rigide et de la capsule, qui est l'animateur. Donc, si nous entrons dans la scène, rien ne change, sauf à l'intérieur de l'animateur, juste pour tout rafraîchir, vous pouvez voir que nous avons maintenant ces petits rectangles ici. Et que s'agit-il ? Eh bien, nous avons tous les états, l'entrée et la sortie. Ne nous inquiétons pas de l'état et de la sortie. Concentrez-vous sur l'entrée et le joueur au ralenti. Cela signifie que dès que nous commençons notre jeu,
nous passons immédiatement au joueur au ralenti. Et vous verrez que chaque fois que nous avons un animateur, nous avons toujours une animation par défaut avec laquelle nous commençons. Et dans ce cas, nous avons le joueur au ralenti dès l'entrée. Et comme vous pouvez le voir, c'est relié par cette ligne avec une flèche. C'est ce qu'on appelle une transition. Et plus tard, nous ferons notre propre transition pour passer d'une animation à l'autre. D'accord, continuons. La prochaine chose que nous voulons faire est de créer l'animation. Pour ce faire, nous devons obtenir nos sprites inactifs ici. Ces trois, nous voulons les ajouter au joueur et commencer à jouer avec eux. Mais il y a ici un petit détail que nous devons prendre en considération. Nous allons changer les sprites du joueur. Et les sprites que nous changeons sont en fait sur le corps, pas sur l'immédiat. Faire un objet de jeu de joueur. Par conséquent, grâce à cette animation, il
faudra ajouter une propriété ici. Et laissez-moi juste expliquer cette fenêtre ici. Il s'agit de la chronologie de l'animation. Vous pouvez donc voir à partir de 030, c'est 2.5ème et 2 ici. C'est une seconde. Vous avez la pièce, la prochaine image-clé incontournable, etc. Vous avez le bouton Enregistrer ici et vous pouvez créer un nouveau clip en cliquant sur cette liste déroulante ici. Nous allons donc ajouter une propriété. Lorsque nous cliquons dessus, vous pouvez voir que nous avons accès à tous les composants présents sur le joueur ou sur l'objet du jeu Doom Player,
nous pouvons changer les armes que sont le Chicago, le bras, le corps, tout. Je vais donc accéder au corps. Et vous pouvez voir que je peux accéder au rendu sprite dessus. Et si je fais défiler vers le bas, je peux accéder au sprite qui se trouve sur le corps ici. Je vais donc cliquer sur le petit signe plus ici. Si je rends cela un peu plus grand, vous pouvez voir que je peux vraiment voir ce petit sprite et c'est ce que nous allons changer. Donc, si je touche Play, vous remarquerez que rien ne change car ce sprite est exactement le même que celui-ci. Changeons donc cela. Je vais ancrer les animations et ici juste pour avoir un peu d'espace, je vais supprimer la dernière, Gardez ça juste ici. Je vais sélectionner ces trois éléments et les ajouter à la chronologie ici, et je peux me débarrasser du premier. Alors maintenant, laissez-moi faire ça, d'accord, mais à part. Je vais ancrer l'animation ici. Et maintenant, si j'essayais de jouer l'animation, c'est parti. Vous pouvez voir que notre joueur commence à bouger. Est-ce que c'est cool ? Que se passe-t-il ici ? Si vous regardez de près, permettez-moi de faire une pause pendant une seconde. Je vais juste passer le temps entre les deux un peu loin. Maintenant, lorsque nous jouons, vous remarquerez que nous passons d'un sprite à l'autre. Et vous pouvez vous en assurer en regardant ici l'inspecteur du corps et voir que nous passons de l'un ou l'autre,
soit au ralenti, en voulant deux au ralenti. Et celui-ci ici, qui est les trois, est à peine joué car dès que nous arrivons à la fin, nous commençons immédiatement dès le début. Par conséquent, le principal à avoir pour créer des animations est que tout le temps,
la première image doit être copiée en appuyant sur Contrôle C et B, la dernière image également. Vous remarquerez maintenant à quel point l'animation est bien meilleure. Je vais donc rejouer l'animation. Vous y allez. Vous pouvez voir que maintenant nous sommes au ralenti. On peut voir 1, 2, 3, 1, 2, 3 jouer l'un après l'autre. Nous avons donc maintenant l'animation du joueur au ralenti. Et si nous réalisons notre gain, vous pouvez voir que dès que nous commençons, le joueur démarre l'un ou l'autre des liens. Et même pendant que nous
déménageons, nous sommes toujours au ralenti. Même si nous regardons dans l'autre sens, nous sommes toujours au ralenti. Et si nous vérifions l'animateur, vous pouvez voir que tout le temps nous sommes au ralenti. Je vais le verrouiller ici pour que nous puissions le voir clairement et faire un zoom arrière un peu. C'est donc le joueur qui tourne au ralenti tout le temps pendant que nous sommes debout, immobile. Super. Maintenant, la prochaine étape consiste à créer l'animation de marche. Et ce sera votre défi. Votre défi consiste à créer une autre animation. Procurez-vous donc les sprites ambulants du sprite principal. Si vous ne l'avez pas déjà découpé, choisissez le lecteur Doom dans la hiérarchie et créez un nouveau clip comme je vous l'ai montré. Ajoutez tous les sprites marcheurs et séparez-les. Jouez et faites en sorte que la marche soit belle. Et si vous êtes intéressé par un défi supplémentaire, vous pouvez créer l'animation des torpilles. Je ne sais pas si je vais continuer à utiliser l'animation des torpilles. Peut-être que ça devrait être différent, peut-être v, rouler autour de l'animation. Je ne sais pas avec ce non, mettez la vidéo en pause maintenant, allez essayer l'animation. Ne vous inquiétez pas, même si vous êtes débutant, essayez
simplement. Voyez quelques étapes. Comment j'ai créé le ralenti. Essayez-le vous-même, amusez-vous, profitez-en. Et c'est tout. Mettez la vidéo en pause dès maintenant et lancez-la à chaque défi. Bon, donc maintenant nous allons créer la deuxième animation, qui est la marche. Je vais donc cliquer ici. Je vais créer un nouveau clip. Allez dans le lecteur d'animations, choisissez le ralenti, et au lieu de tourner au ralenti, je vais le définir comme la marche. Alors maintenant, le joueur marche. Très bien. Bon, donc maintenant, nous allons ajouter une propriété ici. Nous allons accéder au corps car rappelez-vous les sprites que nous changeons sont sur le corps. rendu Sprite, le sprite parce que nous changeons réellement chaque sprite. Et nous allons ajouter, déplacons l'animation ici. Ce n'est peut-être pas le meilleur endroit pour ajouter une animation, mais nous n'aurons qu'à faire avec ce que nous avons pour l'instant. Allez au projet, qui est notre marche. Je pense donc que ces quatre derniers sont ceux qui sortent. Il suffit de les ajouter ici. Je vais retirer le dernier et le premier. C'est ce qui a commencé l'animation. Choisissons tous ces éléments et je vais les répartir avec un intervalle de 10. Allons en faire 10. Donc, 10, 10, 10. Et je vais copier le premier et le définir comme le dernier. Et maintenant, lorsque nous avons essayé de jouer l'animation, nous
y allons, vous pouvez voir la marche du joueur. Et c'est exact. Maintenant, comment allons-nous faire la transition ? Et si vous cliquez sur l'animateur, vous verrez que nous avons maintenant un nouveau clip ici, qui est le joueur qui marche. Mais comment allons-nous passer de l'élargissement de la conversation ? C'est la question d'un million de dollars. Avant de vous expliquer comment nous faisons cela, permettez-moi de vous montrer ce que nous avons créé dans ce dossier Animations à l'intérieur du lecteur. On a donc le doom player, il a un animateur, il a une manette. Et si je clique sur la manette, d'ailleurs,
chaque fois que vous cliquez, par exemple, sur le joueur ne pas jouer, vous pouvez voir le corps rigide où il se trouve ou les armes peuvent obtenir une référence. Nous cliquons sur la manette. Il s'agit de la manette et ce sont les animations du joueur et de la marche, du ralenti. Et vous pouvez voir ici, nous pouvons modifier un peu le décalage du cycle,
le temps de boucle, les pôles de boucle. Mais pour l'instant, nous n'allons pas approfondir cela. Pour l'instant, concentrons-nous sur l'animateur et sur la façon dont nous allons créer des transitions. Comment allons-nous décider du moment de la transition ? C'est également très important. Nous allons donc créer une transition ici en cliquant avec le bouton droit sur le joueur au ralenti. Ici, nous avons la transition de marque et nous allons la régler sur le joueur qui marche. Permettez-moi donc de zoomer un peu. Maintenant, vous pouvez voir que nous avons cette flèche qui passe du joueur au ralenti pour jouer ou marcher. Et nous pouvons également créer une transition entre le joueur qui marche au ralenti. Nous pouvons donc maintenant faire des allers-retours entre ces deux animations. Cliquons sur l'une de ces flèches et regardons et voyons ce que nous avons ici. Nous avons donc quelque chose qui s'appelle l'heure de sortie. Si vous le survolez, vous pouvez voir que cette transition a une heure de sortie fixe. Que signifie l'heure de sortie ? Cela signifie que si je passe du ralenti à la marche après un certain montant, est-ce que je veux passer automatiquement de la marche au ralenti ? Et notre cas, nous ne voulons pas le faire. Nous voulons revenir en arrière chaque fois que nous arrêtons réellement de marcher. Je vais donc désactiver l'heure de sortie Has. Je vais faire la même chose en descendant. Ensuite, nous allons chercher la durée de la transition. Et vous pouvez voir ici un aperçu, une petite fenêtre d'aperçu. Donc, quand je joue, je suis au ralenti, puis je commence à marcher. Nous avons la durée de la transition. Alors, comment voulez-vous terminer l'animation
du ralenti avant de passer à la marche et à notre cas, je pense que nous n'en avons pas besoin. Je vais donc définir la durée de la transition à 0 et aussi à cela dans la transition de la marche. Ainsi, dans les deux transitions, les deux flèches allant vers et depuis la marche, nous allons supprimer le temps de sortie, supprimer la transition plus tard lorsque nous en avons besoin. Je vais m'assurer de vous en parler. Ne vous inquiétez pas. Maintenant, si nous faisons défiler vers le bas, nous pouvons voir ici que nous avons quelque chose appelé les conditions. Et c'est dans quelle condition
passons-nous du joueur au ralenti au joueur qui marche ? Et dans quelle condition passons-nous marche au joueur à l'un ou l'autre des liens ? Il va donc falloir ajouter une condition. Comment ajouter une condition ici dans les transitions ? Si nous regardons à nouveau l'animateur, nous pouvons voir que nous avons l'étape du calque et que nous avons quelque chose qui s'appelle les paramètres. Et ici, nous pouvons ajouter certains paramètres auxquels nous pouvons accéder à partir de notre code et définir les conditions. Je vais donc cliquer et j'ai essayé d'ajouter l'un des paramètres. Vous pouvez voir que nous avons un nombre float, entier, un booléen et un déclencheur. Maintenant, float et entier s'expliquent eux-mêmes. Comme vous le savez, un booléen est vrai ou faux et un déclencheur ressemble à ce que signifie le mot, un déclencheur. Pour l'instant, concentrons-nous sur le booléen. Donc, lorsque je clique sur le booléen, vous avez la possibilité de l'appeler comme vous le souhaitez. Donc ce sera le booléen qui passe de l'un ou l'autre des liens à la marche, je vais l'appeler, est. Marcher, appuyez sur Entrée. Et maintenant, vous pouvez voir que je peux l'activer, ce qui signifie qu'il devient vrai, ou que je peux l'éteindre, ce qui signifie qu'il devient faux. Je vais donc cliquer sur la transition,
passant du lien d'identification du joueur à la marche. Et je vais cliquer sur la condition. Et comme vous pouvez le constater, parce que nous n'avons qu'un seul paramètre, il pense immédiatement que nous avons besoin de la marche ou détermine ce qui est vrai. Donc, quand la marche est vraie, nous passons du joueur au ralenti à la marche. Et si nous marchons, nous voulons passer au ralenti. Nous voulons avoir une condition où la marche est fausse. Alors maintenant, quand la marche est vraie, nous passons du joueur Ivan au jeu ou à la marche. Lorsque le joueur marche et marche devient faux. Nous sommes de retour au ralenti. Convertissons cela en code et ajoutons du comportement. Je vais ouvrir mon scénario. Et ici, la première chose que nous devons faire est d'obtenir une référence de l'animateur du joueur. Je vais donc créer un animateur privé, l'animateur de joueur. Et il peut porter la porte. Maintenant, c'est privé. Comment allons-nous ajouter ? Nous ne pouvons pas y accéder depuis l'inspecteur ici. Si je clique sur le lecteur dôme sur le script, nous n'y avons pas accès. Eh bien, nous pouvons utiliser quelque chose appelé le composant get. Donc ici, je vais écrire l'animateur de joueur va être égal pour obtenir un composant. Et nous allons ajouter le type de composant que nous voulons obtenir. Que se passe-t-il ici ? Permettez-moi de survoler la composante de la dette. Il n'a pas d'explication. Je vais vous dire quelle est l'explication que vous pouvez aussi aller de l'avant et trouver sur la documentation d'Unity, c'est très facile. Ce qu'il fait, c'est dès que nous commençons, nous obtenons le composant, qui est de type animateur attaché à l'objet de jeu qui a la manette du joueur en tant que script. Ce que nous faisons, c'est que ce script utilise le composant VI get ici. Et obtenir l'animateur, qui est celui-ci. Et maintenant, nous avons une référence à ce sujet. Nous pouvons maintenant accéder à de nombreuses choses à l'aide de cet animateur. Et vous pouvez également parcourir les
documentations Unit is et voir tous les différents types de méthodes, propriétés et de diverses choses que nous pouvons faire avec cet animateur. Alors, que va-t-on faire dans cet animateur ? Nous voulons vérifier s'il y a un état de santé. Nous voulons vérifier si nous marchons. Nous voulons définir la marche à vrai, puis passer à l'animation de marche. Je vais donc créer une condition if ici et vérifier si l'entrée du mouvement est différente du vecteur à 0. Par conséquent, le vecteur 0 est comme le vecteur 3 ici. Point un, ce qui signifie 111 vecteur deux points 0 signifie 00. Cela signifie que si l'entrée de mouvement n'est pas égale à 0, cela signifie
que nous avons la marche ici. Nous avons de la vélocité, nous avons du mouvement. Nous allons chercher l'animateur du joueur. Nous allons utiliser quelque chose appelé Boolean set. Et ici, vous pouvez voir qu'il faut une pièce d'identité ou une autre façon d'utiliser le stand. Si je clique ici, vous pouvez voir que je peux utiliser un nom de chaîne. Et c'est ce que je vais faire. Et vous pouvez voir que nous avons une référence de chaîne. Et qu'avons-nous dit des références de rétrécissement ? Chaque fois que nous en avons un, nous y allons toujours, nous le copions car s'il y a une erreur, l'EDI ne nous dira pas quel est le problème, quelle est l'erreur. L'IDE, je veux dire l'unité ou le Visual Studio. Et ici parce que nous marchons. Oh, et j'ai oublié. Que signifie ce point d'exclamation ? Que signifie le point d'exclamation égal ? Donc, si vous voyez ici, nous avons dit que lorsque la position de la souris de x est inférieure à ce point vert, nous aurions pu dire que si la position de la souris AX est égale,
chaque fois que nous voulons comparer deux valeurs, nous pouvons définir ils sont égaux, égaux. Cela signifie que la position x la plus élevée est la même que celle du point x de la souris. Mais ici, nous avons décidé de le garder comme inférieur ou égal. Mais que se passe-t-il si nous voulons dire, si ce n'est pas égal ? Alors, nous utilisons le point d'exclamation égal. Cela signifie que chaque fois que l'entrée du mouvement est différente du vecteur à deux points 0, nous avons la valeur true. Sinon. Cela signifie que lorsque l'entrée du mouvement est égale à 0, nous allons dupliquer cette ligne. Et si nous maintenons Alt enfoncée et que nous utilisons les touches fléchées, nous pouvons le mettre ici. Et nous allons mettre la marche à faux. Nous allons sauver ça. Passons en revue encore une fois parce que j'ai oublié de vous
en parler et j'ai continué à l'utiliser, ce qui est très mauvais. J'espère donc que ce n'était pas trop déroutant. Quoi qu'il en soit, nous créons une condition si que nous avons apprise dans une vidéo précédente. Nous vérifions si la vitesse de déplacement est différente d'un vecteur 0, exemple différente de celle d'un point d'exclamation et égale. Donc, si la vitesse de déplacement est différente de 0, cela signifie que nous marchons. Nous allons accéder à l'animateur du joueur qui va utiliser la méthode Bool set. Et nous allons accéder au paramètre is walking et le définir à vrai. Et rappelez-vous que lorsque nous l'avons défini sur vrai, nous avons ici la transition qui dit que si B marche est vrai, nous passons du ralenti à la marche, et nous avons fait de même en utilisant un autre. Sinon, lorsque l'entrée du mouvement est égale au vecteur
2, 2, 0, cela signifie que nous avons arrêté de marcher fonctionne comme faux. Nous passons du joueur qui marche au jeu ou au ralenti. Voyons si cela fonctionne. Nous commençons donc le jeu. Nous pouvons voir ici que nous avons un joueur au ralenti. Si nous commençons à marcher, vous y allez. Vous pouvez voir que maintenant nous marchons et il est évident en passant que
les jambes de notre joueur bougent. Est-ce que c'est cool ? Nous avons donc maintenant des animations. Nous avons des transitions d'une animation à l'autre. Nous avons créé deux animations. Vous avez peut-être créé le troisième sur vous-même. Je ne le ferai pas maintenant, même si plus tard pour le futur Michel de gérer ce problème, je me sens paresseux en ce moment. Mais il y a encore une chose dont nous devons nous occuper si nous allons ici et chez le joueur du dôme. Et passons à Animations. Si nous choisissons le ralenti , par
exemple, et que nous le jouons, vous remarquerez que notre arme et notre bras restent immobiles là, sans rien faire. Ce n'est pas du tout bon. Cela rend le jeu très, très mauvais. Donc, et aussi quand il s'agit de marcher, vous pouvez voir ici que le bras bouge, le joueur bouge, mais le bras et parti sont très rigides. Dans la vidéo suivante, nous allons résoudre ce problème. Donc avant de partir, assurez-vous de tout mettre en scène, assurez-vous de commettre des animations ajoutées et des animations
au ralenti et à
la marche dans votre cas également l'animation torpille au joueur, commettez les modifications. Et je vous verrai dans la prochaine vidéo.
15. Améliorer les animations de joueurs: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, lorsque nous exécutons notre jeu, notre main et notre arme ne sont plus statiques. Et quand on se déplace à gauche et à droite, ce n'est
peut-être pas très visible, mais on peut voir que le bras qui est simplement ralenti la vitesse de déplacement. Maintenant, quand nous déménageons, vous y allez. Vous pouvez voir que le pistolet se déplace de haut en bas et que le bras se déplace vers la gauche et la droite. En fait, tout tourne un peu. Est-ce que c'est cool ? Maintenant, nous ne sommes plus qu'une arme à feu qui tue un monstre, un tueur de mort. Nous sommes en fait une couche de dooms animée qui fait d'autres choses. Donc, ne perdons plus de temps et commençons. Alors, qu'est-ce que je veux dire par amélioration de notre animation ? N'avons-nous pas déjà une animation assez bonne ? Eh bien, non. Comme vous pouvez le constater, lorsque nous jouons l'animation, le pistolet ne bouge pas, le bras ne bouge pas et ce n'est pas bon. Donc, résolvons ça. Allons de l'avant et commençons par l'ouverture des yeux. vais regarder comment je le fais, puis vous allez le mettre en œuvre pendant la marche. Ce sera votre défi. Donc même j'aime garder les défis une surprise, mais je veux que vous vous concentriez sur ce que nous faisons. Nous avons donc ce petit bouton rouge ici. Lorsque nous cliquons dessus, nous commençons à enregistrer. Vous pouvez voir que nous avons le rat et que nous pouvons changer tout ce que nous voulons. Pendant cette animation,
je peux donc augmenter la vitesse de déplacement. Vous remarquerez donc que lorsque nous commencerons au début, regardez la vitesse de déplacement lorsque je avance sur la chronologie, vous verrez qu'elle augmente au point que je l'ai dit. Et ensuite, par exemple, je veux le diminuer. Et vous remarquerez que cette propriété supplémentaire est ajoutée. Nous commençons donc par eux. Nous passons à 72, puis nous descendons à moins quatre. Nous avons donc commencé à reculer. Est-ce que c'est cool ? Mais nous ne sommes pas là pour modifier la vitesse de déplacement. Nous pouvons changer tout ce que nous voulons. Au fait,
c' est pourquoi les animations, outil
aussi incroyable et puissant dans Unity. Ce que nous voulons faire, c'est que nous voulons déplacer le bras et le bras s'ouvrira de haut en bas. Ce que nous allons faire, c'est que nous allons le faire, c'est notre première animation. Permettez-moi de rendre le bras un peu plus gros car je veux couvrir tout le côté du joueur. Je ne veux pas que rien soit visible derrière ça, alors je vais choisir le bras et je vais le faire vers 30 ans. Appliquez cela. Maintenant, le bras est un peu plus gros. Il couvre le bras du joueur. Et de retour ici. Oh, est-ce que j'ai changé ? Est-ce que c'était pendant l'animation Aquino ? Donc, lorsque nous descendons, vous pouvez voir que nous descendons un peu. Je vais descendre le bras et l'arme. Juste un peu. D'accord. Et quand on descend encore plus, je vais bouger un peu plus le bras et l'arme. Et quand on se lèvera, je vais copier la position initiale du R et du pistolet, copier et la coller à la fin. Ok, super. Lorsque nous aurons terminé l'enregistrement, nous devons nous assurer que nous avions cette chronologie rouge. Assurez-vous que nous arrêtons d'enregistrer. Nous avons donc maintenant le kit d'animation. Vous pouvez voir ici que nous avons deux propriétés supplémentaires où nous modifions le y, le x, uniquement la position du transport. Nous aurions pu le faire en ajoutant une propriété et en accédant à tout à partir d'ici, mais c'est un peu rapide. Voyons donc ce que nous avons ici. Laissez-moi les fermer. Que se passe-t-il maintenant lorsque nous jouons l'animation ? On y va. Vous pouvez voir que le bras et le pistolet vont de haut en bas. Mais il est évident pour moi et pour vous qu'il y a quelque chose qui ne va pas. Qu'est-ce qui ne va pas ? Vous pouvez voir que le joueur, laissez-moi arrêter ça. Je vais jouer ça. Le bras commence à descendre avant que le sprite ne se déclenche, avant le premier petit joueur de Dip NT. Et voilà que tu y vas. Vous pouvez voir que le bras est plus rapide, pas plus rapide. Mais le problème, c'est que lorsqu'il s'agit d'animer des sprites, nous avons ces quatre images, d'accord ? Nous avons donc la première image. Nous avons pesé ces 10 images, puis nous avons la deuxième image. Nous avons passé dix images, puis nous avons la troisième image. Mais le bras et les autres animations fonctionnent différemment. Si je regarde, par exemple, les armes sont, remarquez comment les y changent. Il ne passe pas immédiatement à moins 0,332. En fait, il passe lentement de moins 28. Et chaque image va moins, moins, moins, moins, moins, moins, moins jusqu'à ce qu'elle arrive à ce point. Et puis il descend un peu moins, puis il descend un peu plus. Le pétrole monte. Position d'origine. Ce n'est pas ce que nous voulons. Ça a l'air très mal. Si je dirige le jeu, vous pouvez voir que ça a l'air très mauvais. On dirait que le bras n'est pas correctement attaché au joueur. Maintenant, si vous voulez, si cela fait partie de votre jeu, si c'est la bizarrerie que vous voulez avoir dans votre jeu, alors allez-y. Je vous recommande de jouer et de créer votre propre animation. Vous n'êtes pas obligé de suivre mes étapes exactes, mais je veux vous montrer ce qui peut être fait. Vous avez juste ici la feuille de dope. feuille de dope. Je ne sais pas trop comment cela se prononce, mais c'est là que nous définissons les différentes propriétés. Nous pouvons aussi faire autre chose, qui sont les courbes. Et vous pouvez voir maintenant que nous avons ces courbes très différentes. Nous pouvons donc changer la façon dont les sprites, les armes sont en position et comment la position des bras change-t-elle avec le temps. Par exemple, je peux sélectionner le x ici. Le pourquoi, comment un changement et le z. Permettez-moi de vous donner un exemple pour que vous compreniez que nous avons ce levier ici. Lorsque je clique sur la deuxième image, vous pouvez voir que je peux régler la vitesse ou la lenteur ou la courbure de l'animation. Donc, si j'ai créé comme ça ou que je le fais comme ça, vous remarquerez que le y va augmenter puis descendre, puis descendre plus bas que prévu, puis atteindra le but. Alors, quand je joue, regarde à quoi ça ressemble. Vous pouvez voir, on y va. Laissez-moi ralentir ça. Donc, le Y monte, puis il
descend , puis il passe à la position où nous avions l'intention d'être. Quel est l'intérêt de faire cela ? Nous pouvons jouer avec eux, les
faire comme nous le voulons. Mais ce que nous voulons, c'est que nous voulons prendre cela et le
prendre jusqu'à ce qu'il devienne un petit carré. De quoi cela ressemble-t-il ? Laissez-moi vous montrer. Maintenant, quand on joue. là que tu y vas. Ce n'est pas très perceptible. Mais encore une fois, lorsque nous bougerons, vous remarquerez que le pistolet ne descend pas seulement le bras. Et quand nous en arrivons à ce point, le pistolet tombe avec le joueur, puis monte lentement. Nous avons donc trouvé un moyen de faire cette transition tout comme les sprites. Encore une fois, nous prenons celui-là aussi. On y va. Maintenant, vous remarquerez que le pistolet se déplace de haut en bas. C'était exactement le joueur. Faisons de même pour le bras. Si nous cliquons sur le pourquoi. C'est ce qu'il a dit ici. Allons courir. Vous pouvez voir comment fonctionne le bras. Nous allons choisir le deuxième cadre. Nous allons le déplacer jusqu'au bout. Nous choisirons le cadre qui le déplacera également jusqu'au bout. Et maintenant, l'animation devrait paraître parfaite lorsque nous l'examinons. là que tu y vas. Vous pouvez voir que le bras, le pistolet et le sprite du joueur se déplacent tous ensemble à l'unisson. J'espère donc que vous avez compris ce que nous créons ici. Permettez-moi de lancer le jeu pour que nous puissions voir correctement ce qui se passe. là que tu y vas. Vous pouvez voir que maintenant la R & D peut faire partie intégrante du joueur. Maintenant, avant de lancer le défi, il y a une chose que nous devons prendre en charge, non pas prendre en charge ou prendre soin de la prudence pendant que nous jouons. Vous remarquez que vous m'avez créé et que vous le faites ensemble. Nous avons créé le pistolet avec une rotation. Nous faisons donc tourner le pistolet pour pointer vers notre masse. Si nous essayons d'ajouter une rotation au pistolet en ce moment que nous marchons, ou si nous essayons d'ajouter de la rotation à cette animation, le pointage de la gomme ne fonctionnera plus. Pourquoi ? Parce que la mise à jour et l'animation seront en conflit. L'animation veut donc faire pivoter le pistolet dans un sens, tandis que la souris veut faire tourner l'autre côté. Et ce qui se passe, c'est que l'animation gagne et que nous ne pouvons plus indiquer qu'ils ont disparu. Cela dit,
maintenant que vous savez que nous ne devrions pas ajouter de rotation au pistolet, mais n'hésitez pas à ajouter de la rotation au bras. Et maintenant, il est temps de relever votre défi. Votre défi consiste à terminer l'animation de marche. Faites donc pivoter le bras tout en marchant pour pouvoir modifier la rotation du bras, assurez-vous qu'il couvre le vrai bras du joueur afin que nous n'ayons aucune incohérence. Assurez-vous de ne pas faire pivoter le pistolet dans l'animation si vous le souhaitez, soyez mon invité, essayez-le, voyez si je mentais ou non. peut-être moi qui sait. Mettez la vidéo en pause dès maintenant. Je jure que ce n'était pas le cas. Je ne le fais jamais. Et relevez le défi. O K. Bienvenue. Je vais donc passer de l'un ou l'autre de me tourner à la marche. Et je vais faire de même. Je vais cliquer sur le bouton Enregistrer. Et voyons voir, je vais le faire, c'est le premier cadre que nous marchons déjà. Que devrions-nous faire ici ? Vous pouvez être créatif, faire ce que nous voulons. Je vais faire mon truc et les expliquer par étape si vous n'avez pas déjà compris ce que nous avons fait auparavant. Donc, les armes ne tournent jamais, nous allons bouger un, disons un peu. Donc oui, c'est autour de ce que je veux. Et le bras, je vais le faire pivoter un peu et changer sa position vers la droite. D'accord. Ensuite, nous passons à cette position. Je vais baisser le pistolet et je vais bouger le bras un peu comme ça et changer de position. Voyons voir, où est-il ? Bon, donc juste ici. Puis on se déplace à nouveau, le pistolet vers
le haut et le bras se pose comme ça, et descend un peu ou change la rotation. Et tout cela dépend de vos préférences. Peut-être devrions-nous aussi faire de l'ARN, mais plus gros maintenant. Ensuite, nous passons à la trame suivante. Le pistolet descend un peu. Et le bras bouge ça. Alors que le bras doit être le RMB. Ok, si léger autour de ça et remonte. Enfin, nous avons la dernière image où nous allons copier ces trois images. Vous pouvez donc voir chacun de ces carrés,
les carrés inversés ou inversés représentent la position du bras, la rotation
du bras et les armes du bras ne sont pas positionnées. Je vais donc sélectionner les trois, les copier et les coller sur la dernière image. Voyons donc à quoi ça ressemble. D'accord. Le pistolet se déplace de haut en bas, ce qui est plutôt cool. Le bras va vers l'avant et vers l'arrière. Il y a un cadre que je n'aime pas trop, qui est ici. Et c'est parce que le bras est un peu petit. Je pense donc que le sprite rend le bras un peu plus gros. Nous allons changer cela dans un peu. Nous pouvons même modifier l'échelle. Essayons de le faire. Donc nous sommes le lien Chris, oh, non, pas tant que ça augmentera l'échelle à 1,2, peut-être sur le X et le Y. Et d'accord, c'est trop gros. Faisons 1.1 et réduisons un peu la rotation. Maintenant, vous allez voir et ça reste le même. Je vais donc voir aussi que le chou frisé continue d'augmenter dans l'ouïe. Sachez quoi, ne jouons pas avec la balance. venons de supprimer. Ce n'est pas bon, parce nous pouvons le faire à partir d'animaux va simplement l'augmenter à partir d'ici. Donc, si on va dans le bras, on va peut-être en faire un peu plus. 28, peut-être 29. Appliquer. Oui, je pense que c'est assez bien. Et je vais arrêter l'animation. Maintenant. Je vais entrer dans les courbes. Voyons ce que nous avons ici. Nous avons le flingue. Maintenant, ce que je pense que je veux peut-être garder le même pistolet et voir ce qui change ici. Donc, la position sur le Y et le X. Je vais
donc les définir,
choisir celle-ci, la déplacer vers le haut afin que vous puissiez voir maintenant une représentation visuelle de ce que nous voulons dire. Nous avons donc toujours la même position. Jusqu'à ce que le clic nous descende, cliquez sur nous descendre. Et je vais changer celle-ci. Également. Cliquez sur la position x visite alors que la courbe. Alors que la courbe, d'accord, c'est donc en bas. Pourquoi voulez-vous rendre ma vie plus difficile ? Nous tournons cette rangée, cette rangée, celle-ci, et nous y allons. Le dernier reste le même. Voyons maintenant. Bon, c'est plutôt bien. La position qui permet de régler la rotation. Donc, pendant que nous nous déplaçons, la rotation autour de z change. Ok, quoi ? Qu'est-ce qui se passe avec ça ? Voyons voir. Donc, pour une raison quelconque, les échelles ont changé, mais pas de soucis. Nous trouverons une solution, puis nous allons avancer. Oh, pour que nous puissions augmenter cela. Ok, super. Et on y va. Maintenant, regardons ça. Ok, donc le bras semble assez bien et le pistolet se déplace de haut en bas. Et si nous essayons de lancer notre jeu, voyons à quoi cela ressemble. Ok, l'aigle est bon. La marche du pistolet est encore un peu déconcertante. Je n'aime pas la façon dont il se déplace de haut en bas. Allons changer cela. Et l'animation, fermez ces deux choses. Aller à la position de marche, aux courbes. Qu'est-ce qui change ? C'est la position Y. Où est-il ? Ok, donc on va faire cette place, celui-là aussi. Et le dernier, sauf ça, se trouve autour de l'animation. Bon, donc on y va. Nous avons le pistolet qui se déplace de haut en bas. Honnêtement, ce n'est pas parfait, mais c'est suffisant. Essayons la rotation. Si ça marche, j'espère que vous le testerez vous-même. Alors maintenant que nous marchons, nous y allons. Nous pointons correctement. Nous marchons le pistolet qui se déplace de haut en bas. Nous marchons avec notre main. Nous n'avons plus de main statique ni de pistolet statique. En fait, le joueur se promène. Est-ce que c'est cool ? Nous avons des animations incroyables. Dans la dernière vidéo, nous allons ajuster la vitesse des joueurs parce que vous ne l'avez peut-être pas remarqué, peut-être que vous l'avez fait. Mais quand nous avons marché à droite, nous avons une certaine vitesse. Lorsque nous montons, nous avons la même vitesse, mais si nous essayons de descendre et de partir, vous pouvez voir que nous sommes un peu plus rapides. Vous pouvez donc voir maintenant que si nous marchons, nous essayons de monter. Vous remarquerez que nous sommes un peu plus rapides et je vais
expliquer pourquoi c'est comme ça que fonctionne la vélocité. Un peu de mathématiques sur le fonctionnement des vecteurs et de la normalisation. Donc les maths, Yay, ai
hâte de voir la prochaine vidéo, non ? Je vous verrai alors assurez-vous de valider toutes vos modifications. Regardez jusqu'où nous sommes parvenus. Regardez tout ce que nous avons fait jusqu'ici. Nous avons créé, apprenons le tri des couches, créé des scripts. Maintenant, le joueur se déplace. Maintenant, notre joueur se déplace à l'aide d'un tout nouveau corps rigide et d'un collisionneur. Nous avons fait une arme dans l'angle. Nous avons fait pointer le joueur dans la bonne direction. Nous avons ajouté des animations. Maintenant, nous avons amélioré nos animations, améliorerons également notre vitesse, et je vous verrai dans la prochaine vidéo.
16. Vitesse de le lecteur 00 : Bienvenue, mes collègues développeurs de
jeux. Il s'agit d'une vidéo très rapide
et courte. Ce n'est qu'un petit ajustement
que nous voulons faire. Et la façon dont notre
joueur se déplace, nous n'avons pas de froid majeur, nous n'avons pas de principes majeurs. Nous avons une petite
leçon sur les mathématiques, qui est reconnue comme la partie la plus excitante du développement de
jeux. Oui, c'est ce que tu es venu
ici pour les maths, n'est-ce pas ? Quoi qu'il en soit, ne
perdons plus de temps. Et vous pouvez voir que la vitesse lorsque nous nous déplaçons en
diagonale est la même que lorsque nous avançons vers le haut
ou vers le bas ou vers la gauche et la droite. Quoi qu'il en soit,
ne perdons plus de temps et
commençons. Oh, d'accord. Voyons donc ce
qui se passe ici. Comme je vous l'ai dit, chaque fois que nous avançons à
gauche et à droite, nous avançons à une
certaine vitesse. Mais lorsque nous avançons à gauche
ou à droite et que nous montons vers le haut, nous avançons à une vitesse
beaucoup plus rapide. Donc, si vous n'êtes pas convaincu, essayons cela. Je mens peut-être. Je vais descendre ici. Je vais écrire le journal des points de
débogage. Et ici, je
vais dire marcher avec une vitesse de et je
vais aller de l'avant et ajouter la vitesse du corps rigide de la
couche. Gardons cela et
voyons ce que nous avons. Maintenant, cela pourrait ne pas fonctionner. Si je clique sur la console, vous remarquerez que nous avons 00. Donc maintenant, si je le bouge, vous ne le verriez pas debout. Quand je m'éloigne, c'est moins 10 quand je
monte et à droite, on voit que c'est 10 par 10, et c'est la vitesse de déplacement
que nous avons ici. Mais nous ne voulons pas voir comment est le vecteur de
la vitesse. Nous voulons en voir l'ampleur. Je vais donc ajouter quelque chose qui
s'appelle la magnitude. Si vous ne savez pas quelle est
l'ampleur, je vais l'
expliquer en un peu. Encore une fois, nous gérons le jeu. Nous avons maintenant la magnitude 0. Si je marche vers la droite, nous avons fait vers la
gauche, nous en avons dix. Si je monte, c'est encore 10 ans. Vous pouvez le voir
augmenter ici. Si je descends, c'est encore 10. Mais maintenant, si je vais vers la droite, finis, on peut voir que c'est 14 ans. Michael, votre instructeur, ne ment pas. Jamais. Vous pouvez voir que nous avançons
plus vite lorsque nous nous
déplaçons en diagonale, haut ou en bas en appuyant sur deux touches. Pourquoi cela se produit-il ? Eh bien, il revient. Mathématiques simples. Vous pouvez voir que nous avons la vitesse sur le y et
la vitesse sur le x. C'est ce
que nous avons vu
avant d'ajouter la magnitude, qui est de 10 sur 10. Ce qui se passe ici,
c'est que nous ajoutons ces deux vecteurs alors que
nous avançons en diagonale. Et nous avons la vitesse finale
du joueur, qui est plus rapide que ces deux-là. Maintenant, si vous le souhaitez, vous pouvez le conserver dans votre jeu si cela fait partie
de votre jeu. Mais généralement, nous ne
voulons pas que le joueur se déplace plus vite lorsqu'il
se déplace en diagonale. Ce n'est pas logique. Ce que nous allons faire, c'est
que nous allons normaliser. Nous le faisons en normalisant
c'est recréer cet arc. Cela signifie que cela
devient un cercle, qui signifie que la vitesse sur le x plus la vitesse du y est la même que la vitesse lorsque nous nous
déplaçons en diagonale. Il s'agit donc d'un vecteur normalisé, ou lorsque nous disons
normaliser un vecteur. Alors, allons-y
et faisons exactement cela. Donc, dans notre code, passons à Visual Studio. Et maintenant, voyons où nous
avons ajouté notre vélocité ? C'est juste ici. Je vais donc ajouter une, une autre ligne ou je suis désolé, avant d'ajouter cela
à la vélocité, je vais prendre l'entrée du mouvement et je
vais la normaliser. Gardez ça. Alors maintenant, quand nous
retournons dans notre jeu, et au fait,
tout le processus ici, vous savez que celui-ci
prend juste une valeur. La vitesse de déplacement ne change pas. La seule variable qui
change est donc l'entrée du mouvement. C'est pourquoi je normalise
l'entrée du mouvement. Par conséquent, la vitesse
reste la même. Donc, juste si vous étiez confus, pourquoi nous changeons l'
entrée du mouvement, pas la vitesse. Donc, nous retournons ici, nous gérons notre jeu. Et maintenant, vous pouvez voir que nous avons
marché vers la droite. Stan, à
gauche, il y a encore 10, en haut, Stan en bas, il est 10. Quand on se déplace en diagonale. On y va. Vous pouvez voir que
c'est toujours fait. Est-ce que c'est cool ? C'est génial. Enfin,
vous voudrez peut-être le garder. Peut-être voulez-vous
rendre le joueur plus rapide lorsque vous bougez en diagonale. Ce n'est pas un problème. Vous pouvez faire ce que vous voulez. C'est votre jeu, ajoutez-y votre propre saveur. Mais il s'agit d'une habitude de développement de
jeux de combat que vous devriez avoir au fur et à mesure que vous progressez dans
votre voyage. Eh bien, ça dit que c'était
une vidéo rapide et courte. Assurez-vous de valider
vos modifications. J'ai oublié de les commettre
la dernière fois, mais pas de soucis. Je peux garder cette
manette de lecteur car nous n'avons
modifié que le journal des
points de débogage ici. Et les normalisés,
je peux les mettre en scène, valider ces changements et
ensuite valider les autres. Donc, bien cela dit, j'espère que ça vous plaira. Et je pense que c'est la fin de section 2 où nous allons
mettre en place notre joueur. Dans la section suivante, nous
allons commencer à utiliser notre arme pour tirer en
ajoutant des mécanismes de tir. Je vous verrai alors.
17. Section 3 : Mise en place de la mécaniques de tournage - créer des balles: Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo. Et lorsque nous lançons le jeu, vous pouvez voir que nous avons une balle qui traverse l'espace et que lorsqu'elle touche un mur, elle est détruite. Ne perdons donc plus de temps. Et commençons. Bon, allons donc créer des balles. La première chose que nous devons faire, c'est que nous avons besoin d'un sprite à balles. Allons de l'avant et faisons exactement cela. Je vais me lancer dans le projet. Et avant de faire ces choses, je veux changer quelques choses ici. Je vais donc cliquer avec le bouton droit de la souris pour créer un dossier. Je vais appeler ça les jupes. Et je vais ajouter la manette du joueur. Et ici, je vais créer un dossier pour la première fois maintenant les sprites. Et je vais ajouter tous les sprites que nous avons dans ce dossier. Ou même avant cela, je vais créer un dossier pour le lecteur et un dossier pour les armes à feu. Des fusils. On y va. Maintenant, je peux ouvrir les sprites ici. Prenons le flingue et mettons-le ici. Prenons le prix du lecteur et les mettons dans le dossier du lecteur. Super. Maintenant, nous avons tout mis en place. Nous avons cette petite erreur. Je ne pense pas que ce soit un problème majeur. Ok, super. Maintenant, allons maintenant créer un autre dossier ici qui sera les puces. Allons dans les ressources et prenons les sprites pour les balles laser. Vous vous demandez peut-être pourquoi ai-je choisi d'avoir des balles laser et non des balles pour un fusil de chasse ordinaire ? Eh bien, tout d'abord, regardez ces balles, quel point elles ont l'air cool. C'est le 4142. Je voulais que quelque chose apparaisse facilement. Comme vous pouvez le voir, nous le sommes, mettons ça sur le calque du joueur, accord, donc je veux que quelque chose soit clairement visible pour nous. Je ne veux pas avoir une petite balle que l'on peut à peine voir. Je veux avoir une grosse balle brillante que nous pouvons tirer. Donc, si vous le souhaitez, nous pouvons créer une couche de tri pour les puces. Allons-y et faisons-le. Une nouvelle couche de tri, nous appellerons cela les puces et elle devrait être affichée devant le joueur. Je vais choisir ça. Je vais le renommer en balle du joueur. Et je l'ai choisi au hasard. Vous pouvez choisir n'importe quelle balle que vous voulez. Je pense que peut-être un fusil de chasse rouge. Savoir. Encore mieux que ça. Regardez ce que nous pouvons faire. Je peux choisir la balle du joueur et je peux changer le sprite ici, faire glisser le chiffre 14. On y va. C'est donc une énorme balle. Peut-être que ça pourrait être modifié un peu, donc la balle se rend devant le joueur. Et je pense que peut-être en faire 0,50,5. Non, peut-être en garder un. Oui. On dirait une grande balle de fusil. Ok, super. Nous devons maintenant ajouter quelques éléments à cela. Nous devons tout d'abord ajouter un corps rigide parce que nous allons être,
Qu'est-ce que c'est, Désolé, de la place. Nous allons ajouter un corps rigide parce que cette balle va évidemment bouger. Nous allons nous assurer de geler la rotation. Nous allons nous assurer que la gravité est égale à 0. Et on y va. Ensuite, nous allons ajouter un collisionneur à cela. Je vais donc ajouter un collisionneur. Voyons lequel devrions-nous utiliser ? Je pense que le collisionneur de capsules ne fonctionnera pas parce qu'il est inversé, culminé à l'horizontale. Allons de l'avant et utilisons un collisionneur de boîtes. Je pense que c'est suffisant. Où est le collisionneur de boîtes ? Allons le rendre un peu plus petit. Oui. On y va. Et je vous recommande toujours de rendre les
collisionneurs de boîtes autour de choses comme des balles un peu plus petits qu'ils ne doivent l'être. On y va donc. Oh, d'accord. C'est assez bien, je crois. Et maintenant, nous devons changer le comportement de la balle. Nous voulons le faire voler. Comment pouvons-nous faire cela ? Pour ce faire, nous y ajoutons un script. Je vais donc entrer dans nos scénarios ici. Je vais cliquer avec le bouton droit de la souris et créer un nouveau script, qui sera le contrôleur de balle du joueur. Attendons que cela compile un point immédiatement pour ouvrir un script chaque fois que vous en créez un, attendez
simplement qu'il se compile. Et maintenant, nous pouvons aller de l'avant et faire glisser le script sur la balle du joueur. Et nous pouvons voir dans la balle du joueur que nous avons le rendu de sprite via le corps rigide, le collisionneur de boîte et bien sûr le script du contrôleur de balle du joueur. Double-cliquez et ouvrons le script vers le haut. Nous avons donc un tout nouveau script. Que devons-nous faire ici ? Tout d'abord, nous voulons un moyen de contrôler la vitesse de cette balle. Je vais donc créer un champ sérialisé de type float, qui correspond à la vitesse des balles. Et il suffit de le définir par défaut 25 F car nous ne voulons jamais avoir une valeur par défaut de 0. Donc 55, mais la vitesse de la balle. Donc, s'il est bas, mais c'est mieux que rien. Et la prochaine chose que nous voulons faire, c'est d'ajouter de la vitesse à cette balle. Pour ce faire, nous
avons donc besoin d'une référence au corps rigide. Et je n'ai pas envie de le faire, donc je veux vous le donner comme un défi, vous devrez obtenir une référence au corps rigide. Ainsi, créer une variable de type corps rigide pour s'assurer qu'il est privé. Et commencez à obtenir le composant du type corps rigide. Si vous savez déjà comment faire cela, mettez la vidéo en pause et relancez le défi. Sinon, je vais vous donner un petit indice sur la façon d'obtenir un composant. Utilisez le composant get avec un type situé entre les deux panneaux petits ou plus petits. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Ici, je vais créer un corps rigide privé 2D et le corps rigide à balles. Gardez ça. Et maintenant, parce que nous avons la manette de balle du joueur sur un objet de jeu qui possède également le corps rigide. Nous pouvons y accéder immédiatement en disant que le corps
rigide des balles est égal à la composante de la dette, le corps rigide 2D. Et maintenant, nous avons une référence à ce sujet. Maintenant et mettez à jour ce que nous allons faire ? Eh bien, comme nous l'avons fait avec le joueur, je vais dire que la vitesse du corps rigide des balles est égale au nouveau vecteur 2,
car la vélocité est un vecteur 2. Lorsque nous travaillons dans l'espace, je vais en garder un pour le x et je vais garder 0 F comme y
et je vais le multiplier par la vitesse de balle. Pourquoi est-ce que je fais ça ? Eh bien, parce que je ne veux pas que la balle se déplace sur l'axe Y. Je ne veux pas qu'il se déplace verticalement. Je veux déplacer la balle uniquement horizontalement pour l'instant. Alors, gardons ça. Bon, revenons à Unity et faisons un zoom et passons à la vitesse deux pour voir clairement ce qui se passe. Ramenons l'employeur et la balle en arrière et lançons notre jeu. Nous y allons donc, vous pouvez voir que la balle circule dans l'espace et quand elle frappe, donc tout s'arrête complètement, si génial. Notre balle bouge parfaitement. Nous pouvons le diviser. Nous pouvons faire ce que nous voulons. Mais que se passe-t-il, par exemple, si le livre est en diagonale lorsque nous lançons notre jeu ? Voyons ce qui se passe. Oui, donc ce n'est clairement pas comme ça qu'une balle est censée bouger. Ce que nous voulons faire, c'est que nous voulons que la balle
évolue toujours dans la direction que nous avons définie. Alors, comment allons-nous faire cela ? Supposons, par exemple, nous avons notre fusil de chasse ici, notre bras, et qu'il est tourné vers le haut. Notre balle sera également tournée vers le haut. Donc, si on le déplace,
c' est quelque chose de semblable à ça. Mais si nous cliquons ici, là-haut, ici, vous pouvez voir le centre et le monde entier. C'est pour la rotation, c'est pour la manière dont
les axes sont représentés. Donc, si je clique sur le local, vous pouvez voir que c'est la direction que la balle regarde actuellement. C'est ainsi que la balle va sortir et voler. Et vous pouvez voir que c'est le rouge, qui est l'axe des x, regarde vers le haut et la direction de la balle. Donc, chaque fois que nous faisons pivoter notre fusil de chasse, nous voulons que la balle le fasse pivoter également. Nous voulions donc toujours voler dans la direction du x. Alors comment allons-nous faire cela ? Heureusement, il y a un vecteur qui s'appelle le point de transformation, non ? Laissez-moi vous montrer ce que c'est. Oups, désolé, c'est pour plus tard. Transformer ce droit est donc l'axe rouge du transport dans l'espace mondial. Nous pouvons donc accéder à cet axe quand nous le voulons. Et c'est dans cette direction que nous allons faire voler notre balle. Donc de retour dans notre code et ici je vais supprimer le nouveau vecteur deux. Et je vais le faire à la place. Dites que la direction sera transformée point, n'est-ce pas ? Donc, à chaque fois et à chaque mise à jour, lorsque la balle vole, elle vole à la vitesse de la balle que nous avons déterminée et dans la direction du transform.py, droite, qui est l'axe rouge. Essayons ça. Donc, si je dirige le jeu maintenant, la balle bouge bien. Super. Voyons si nous sauvegardons cela. Et quand la balle pointe vers le haut, si je dirige le jeu, oui, on
y va, la balle monte. Est-ce que c'est cool ? Super. Maintenant, encore une chose. Ce n'est pas la façon dont il se comporte. Habituellement une balle chaque fois que c'est comme ça. Laissez-moi juste l'étirer. Eh bien, ça marche. Oui. Vous y allez. Il a simplement adoré le bâtiment et il se poursuivra pour toujours jusqu'à l'éternité. Et c'est un problème. Chaque fois que vous avez une balle qui n'est pas détruite à un moment donné quand elle heurte un mur. C'est ce que nous devons corriger. C'est la première chose. Deuxièmement, une balle ne se contente pas de toucher un mur et de rester là. Une balle devrait pouvoir traverser un mur. Peut-être, j'ai peut-être traversé un mur. Nous allons donc cliquer sur la balle du joueur. Nous allons descendre vers le collisionneur et nous allons en faire un déclencheur. Qu'est-ce qu'un déclencheur ? Un déclencheur que le collisionneur se comporte comme un déclencheur ou non, ce n'est pas très utile. Un déclencheur signifie que si cette balle touche une sorte de surface, elle ne l'affecte pas physiquement. Mais cela nous donne la possibilité d'appeler quelque chose appelé « cause », « C'est très intelligent ». Et sur Trigger Enter to the, donc ce que cela fait, vous pouvez lire la description envoyée lorsqu'un autre objet entre dans un collisionneur déclenché attaché à cet objet uniquement à la physique. Que se passe-t-il si cette balle est un déclencheur lorsqu'elle se déplace dans l'espace ? Quand il frappe le mur ici, qui est en arrière-plan. Quand il frappe ce mur, une méthode d'entrée de sucre sera appelée, ce qui créera sur le contrôleur de balle et l'or de méfiance, nous pouvons aller de l'avant et faire tout ce que nous voulons. Et l'une de ces choses est de détruire la balle. Permettez-moi de démontrer. C'est beaucoup parler, pas assez d'action. Voyons ce qui se passe. Je vais écrire sur Trigger, Enter 2D, appuyer sur la touche Tab. Comme vous pouvez le constater, c'est un vide privé. Ne vous inquiétez pas si vous ne savez pas ce qu'est ce mot. Plus tard, nous expliquerons tout et comment créer des méthodes. Ne vous inquiétez pas. Et puis nous avons l'Onsager entrer et nous avons quelque chose ici qui s'appelle un paramètre. Nous allons également approfondir la question. Mais tout ce qu'il faut savoir que cette collision est l'objet que nous venons de frapper. Par exemple, si cette balle vole et frappe le joueur, le joueur est la collision ici. Mais de toute façon, que voulons-nous faire quand la balle frappe quelque chose ? Eh bien, nous voulons que cette balle se détruise elle-même. Nous voulons que cette balle disparaisse. Nous n'avons plus besoin de nous dans notre monde. Il y a une très bonne méthode pour faire cela, écrirait simplement détruire l'objet du jeu, et c'est tout. Donc, nous détruisons ce que les stéroïdes devraient-ils ou supprimons un objet de jeu, un composant ou un actif ? Et que voulons-nous supprimer ? Nous voulons supprimer l'objet du jeu réel. Et si vous le survolez, vous pouvez lire l'objet du jeu. Ce composant est attaché à un composant d'un objet de jeu. Alors, gardons ça. Revenons à Unity, ce double set ici. Et maintenant, lorsque la balle touche l'un des collisionneurs, elle devrait disparaître de notre scène. Lançons le jeu. Gardez les yeux rivés sur la vue de la scène. Vous y allez. Il prend des stéroïdes. Avez-vous remarqué dans la hiérarchie que nous n'avons plus la balle ? Excusez-moi, c'est une mise à jour ennuyeuse. Essayons à nouveau sans aucune mise à jour. a essayé de mettre la balle ici. Lancez le jeu, gardez un œil sur la hiérarchie quand elle frappe, sorte que toute la balle disparaît. Donc maintenant, lorsque nous entrons dans une zone, balle est détruite parce qu'elle est un déclencheur, ce qui signifie qu'elle déclenche la méthode Onsager enter chaque fois qu'elle touche n'importe quel type de mur, vous pouvez en savoir plus ici dans la documentation Unity. J'espère que vous avez apprécié la création de votre toute nouvelle balle. J'espère que cela ne vous dérange pas que les balles soient brillantes et très futuristes au moment de la bizarrerie du jeu que nous créons. Et nous utilisons également des sprites gratuits. Nous devons donc contourner les limites que nous avons. Dans la vidéo suivante, nous tirerons
ces balles depuis le pistolet en apprenant ce qu'est un bref résumé. N'oubliez jamais de valider vos modifications. J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo. Et avant d'aller en passant, il y a quelque chose que nous ne voulons pas mettre en scène et notre jeu, qui sont les sprites que nous venons d'ajouter. Alors ce que nous allons faire, car ce n'est pas nécessaire de mettre en scène, d'engager les sprites. Ce que je vais faire, c'est que je vais aller ici. Je vais cliquer avec le bouton droit de la souris et je vais
ignorer tout ce qui se trouve sous les actifs, les sprites. Nous ne voulons pas sauver quoi que ce soit qui se trouve à l'intérieur des sprites. Parce que nous aurons toujours les sprites sur notre ordinateur, nous n'aurons peut-être jamais supprimé les sprites par erreur. Et même si c'est le cas, nous pouvons toujours les remettre en place. Et 3, ils occupent beaucoup de place inutile. Donc, ignorez tout ce qui est sous les sprites de ressources touchés Ok, tout devrait être parti, seulement les balles et ainsi de suite et ainsi de suite. J'espère que vous avez tout apprécié et je vous verrai dans la prochaine vidéo.
18. Tirer des bullets (prefabs et instantiation): Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo ultra excitante. Nous avons déjà créé des puces, nous les avons faites voler, mais maintenant en utilisant la puissance de brève-up, la puissance d'entrée, la puissance d'instanciation. Je veux dire, nous avons tellement appris dans cette vidéo nous pouvons commencer à tirer des balles dans différentes directions. Est-ce que c'est cool ? Comme vous pouvez le constater, nous avons plusieurs balles tirées à partir de notre fusil de chasse. Ne perdons donc plus de temps. Et commençons. Oh, d'accord, il est donc temps de commencer à tirer des balles. Mais nous voulons que plusieurs balles soient tirées. Nous ne voulons pas seulement avoir une seule balle. Alors, que devons-nous faire ? Doit-on dupliquer cette balle plusieurs fois ? Au fait, je fais cela en utilisant le contrôle D. Eh bien, évidemment non, ce n'est pas une bonne idée. Ce que nous devons faire, c'est que nous devons créer quelque chose appelé préfabriqué. Qu'est-ce qu'un préfixe ? Laissez-moi vous montrer. Un préfabriqué signifie essentiellement qu'il s'agit d'un objet de jeu précédemment fabriqué que nous pouvons utiliser plusieurs fois. Il y a beaucoup
d' avantages à avoir des préfabriqués lorsqu'il s'agit de créer de nouvelles scènes et de faire différentes choses. Passons en revue quelques points importants sur les préfabriqués. Il s'agit d'un modèle pour un objet de jeu donné. Ainsi, tout comme nous avons la balle avec ses composants spécifiques à un collisionneur spécifique, nous pouvons en créer un préfabriqué et créer plusieurs puces avec les mêmes composants, avec les mêmes sprites, le même collisionneur, etc. système préfabriqué vous permet de stocker un objet de jeu avec toutes ses propriétés. Ainsi, comme je l'ai dit, vous pouvez créer un préfabriqué de la puce, puis créer plusieurs puces avec les mêmes propriétés, composants de
jeu, etc. À quoi l'utilise-t-on ? Nous pouvons réutiliser un objet de jeu configuré d'une manière particulière. D'où la puce que nous pouvons créer plusieurs, mais voyons voir, nous verrons comment nous pouvons éditer de nombreux objets en même temps. Par exemple, supposons que nous voulons accélérer les balles. Faut-il aller changer toutes les balles ou à chaque fois ? Non, nous ne pouvons changer que le préfabriqué et toutes les autres formes de ce préfabriqué seront modifiées. Nous pouvons utiliser le même objet dans différentes scènes, beaucoup plus facilement lorsque nous commençons à créer plusieurs niveaux. Vous saurez ce que je veux dire par là, et c'est tout. Allons donc créer un préfabriqué. Maintenant, le processus de création d'un préfabs est extrêmement difficile. Soyez donc très, mettez vos casquettes, arrêtez tout et regardez ce que je fais. C'est très important. Tout d'abord, nous créons un dossier qui est le préfabriqué. Je vais entrer ici et maintenant je vais créer un préfabriqué à partir de cette balle. Ce que nous devons faire, c'est que nous devons d'abord faire glisser cette balle ici. Et c'est tout. C'est ainsi que nous créons un préfabriqué. Maintenant, ce que nous pouvons faire, c'est que nous pouvons simplement faire glisser cette balle ici et créer plusieurs puces. Et vous pouvez voir que la balle trois, deux balles 1 ont toutes les mêmes composantes dans l'inspecteur. Et vous pouvez savoir qu'un objet de jeu est un préfabriqué en regardant son érudit. Vous pouvez donc voir que l'arrière-plan n'est pas un préfabriqué, mais la balle du joueur est parce qu'elle est un peu bleue. Disons donc, par exemple, que
je souhaite créer un préfabriqué à partir du lecteur de salle. On y va. Donc maintenant, la couche de vidage est un préfabriqué et je peux en ajouter une autre et une troisième. Et si je dirige le jeu, maintenant nous avons trois joueurs malades qui se promènent autour de l'a. là que tu y vas. Nous avons une armée cool. Les trois mousquetaires, nous les appellerons les trois. Je n'en suis pas sûr. D'accord. Les mousquetaires, ça suffit. Allons de l'avant et supprimons toutes les puces dont nous disposons. Nous pouvons même supprimer cet original et l'ajouter à partir de nos préfabriqués. Et gardons le joueur ici comme préfabriqué. C'est tellement sympa. Maintenant, nous avons presque tout mis en place et nous pouvons commencer à créer en tirant les balles. Allons donc dans la manette du lecteur et commençons à le faire. Maintenant, je vais tirer ces balles depuis la manette du joueur. Mais gardez à l'esprit plus tard que nous aurons besoin d'un autre script pour faire le tir à notre place. partir de maintenant, c'est juste une tête. Tout d'abord, je vais créer un champ sérialisé qui est de type objet de jeu. Et ce sera la référence à la balle, ou on peut l'appeler jouable. Ne vous inquiétez pas. Pour l'instant, gardons ça comme une balle. Nous allons avoir besoin d'une référence à ce que l'on appelle la transformation ou la position du feu de transformation. Et pourquoi avons-nous besoin de cela ? Eh bien, d'où viendra notre balle ? Donc, évidemment, il sortira de notre fusil de chasse. Et où est le point de tir du fusil de chasse ? S'il sortait du milieu du fusil de chasse, ce ne serait pas trop beau. Ce que nous allons faire, c'est d'ajouter un point de feu. Et ce point de feu sera un objet de jeu vide, qui sera un enfant des armes sont. Donc, point de feu. Et remarquez ce qui se passe maintenant, car ils ne sont pas superposés est un préfabriqué. Vous remarquerez que le cautionnement du dossier a un petit avantage. Qu'est-ce que cela signifie ? Si je clique sur le calque supérieur ici, je peux double-cliquer dessus et l'ouvrir séparément. Vous remarquerez qu'il n'a pas le point de feu parce que le préfabriqué n'a pas encore été ajusté. Et vous pouvez le voir à partir de la couleur du point de feu et du petit plus. Nous pouvons donc entrer dans le joueur de do. Ici, nous avons la priorité. Si nous cliquons vers le bas, vous remarquerez que les choses que nous avons modifiées mais qui n'ont pas encore été appliquées au préfabriqué. Et vous pouvez voir que nous pouvons soit appliquer la chose spécifique, soit nous pouvons appliquer tout. Donc, quand on touche l'application all, maintenant, le joueur de la mort, quand on double-clique sur lui, a le point de feu, le préfabriqué du joueur de mort a aussi le point de feu. Nous allons donc déplacer le point de feu ici et devant le fusil de chasse. Mais si nous ajoutons 11 autres joueurs du dôme, vous remarquerez que le point de feu est toujours au milieu, tandis que le point de feu sur le joueur de mort se trouve devant le fusil de chasse. Oh, et aussi, vous pouvez voir quand je clique sur le point de feu,
la transformation, la position a cette petite ligne bleue et cela représente que nous avons changé quelque chose du préfabriqué. Je vais donc entrer dans le Doom Player, cliquer sur Override et appliquer tout. Mais nous n'appliquons pas toujours tout. Gardez cela à l'esprit. Quand je clique sur Appliquer tout. Si je retourne au lecteur Doom ici, je sélectionne le pointeur de fichier et il est apparu comme par magie à l'extrémité du fusil de chasse. Vous commencez donc à comprendre à quel point un préfabriqué peut être utile lorsqu'il s'agit de modifier plusieurs éléments de préfabriqués que nous avons créés. Plus tard. Au fur et à mesure que nous avançons dans le cours, nous rendons des choses plus complexes. Vous verrez à quel point le système est efficace. Pour l'instant, nous supprimerons le doom player et continuons. Nous avons donc notre point de feu, nous avons notre balle. La prochaine chose que nous voulons faire, c'est que nous voulons commencer à tirer 0. Je l'ai donc ajouté au mauvais endroit, excusez-moi. Nous travaillions dans la manette de balle du joueur et nous aurions dû travailler dans la manette de couche, pas dans la manette de balle du joueur. C'est un peu déroutant. Je n'ai pas remarqué la balle du joueur. Ne vous inquiétez pas. Nous allons juste Contrôler X, qui les coupera à partir d'ici, et nous les collerons ici. Désolé pour la confusion. Je m'excuse pour mon manque de concentration. Gardez ça. Retournez en arrière. Maintenant, nous verrons que nous avons une référence à la puce, une référence à la position du fichier ou au point de feu, qui devrait être le point de feu. Sauvegarde ça dans notre jeu. S'il vous plaît, ne perdez pas mon temps et rien ne colle. point de feu et la balle seront les atouts. Préfabriqués. Faites glisser la balle. Et on y va. Nous pouvons également appliquer les modifications et ici. Alors, que doit-on faire ? Nous voulons, chaque fois que nous appuyons sur un bouton, qui sera la touche gauche de la souris, nous voulons tirer une balle. Alors, faisons-le. Nous allons créer une condition et la mise à jour où nous vérifions si nous appuyons sur un certain bouton de la souris. Mais si nous entrons dans l'unité, ce sont des documentations. Nous pouvons voir que nous avons une entrée pour faire baisser le bouton de la souris. Si nous lisons la description, nous pouvons voir qu'elle renvoie une valeur true pendant le cadre où l'utilisateur appuyé sur le bouton de la souris donné et nous pouvons même voir un exemple ici. Donc, si le point d'entrée obtient le bouton Boss vers le bas 0, nous appuyons sur le bouton principal, qui sera le bouton gauche de
la souris, celui comme bouton droit de la souris. Et les deux sont au milieu, c'
est-à-dire la petite roue. Donc, ici, je vais supprimer ce journal de points de débogage. Je vais vérifier si le point d'entrée obtient le bouton de la souris sur le 0. Que va-t-on faire ici ? Eh bien, nous voulons faire quelque chose qu'on appelle une instanciation. Qu'est-ce que c'est ? De retour ? Et la documentation de Unity, nous pouvons voir que nous pouvons instancier un objet. Nous allons lire la description. Il renvoie un objet qui a instancié des vêtements ou nous créons un clone du préfabriqué que nous possédons. Clone l'objet original et renvoie le clone. Cette fonction peut copier un objet similaire au duplicat, etc. Vous pouvez tout lire à ce sujet,
et c' est ainsi que nous pouvons l'utiliser. Nous pouvons donc simplement instancier l'objet,
quel qu'il soit, sans aucun ajout. Nous pouvons instancier un objet et en faire l'enfant d'un parent donné que nous voulons, ce qui est très utile. Nous pouvons instancier dans un monde et un certain espace. Nous pouvons ajouter une rotation de position et un parent. Tous ces éléments sont donc très importants. Maintenant que vous savez comment fonctionne l'instanciation, il est temps de relever un défi. Et votre défi sera d'instancier les préfabriqués de puces. Vérifiez donc l'exemple d'instanciation dans la documentation d'Unity. Les objets doivent être ou l'objet d'origine doit être le préfabriqué à puce. Assurez-vous que la position est à cinq positions. La rotation est également à cinq positions. Et je vais vous donner un petit indice si vous n'en avez pas besoin, vous savez comment créer. Allez-y et relevez le défi. Si ce n'est pas le cas, pour accéder à la position et à la rotation du point de feu, utilisez la position supérieure et la rotation. Mettez la vidéo en pause dès maintenant. Je sais que vous ne savez pas encore comment créer des instanciations, mais c'est le moment idéal pour vous
tester, dépasser vos limites ou ce que vous pensez être vos limites. Mettez la vidéo en pause dès maintenant. Allez au Shalon. Ce que nous allons faire, c'est que nous allons instancier, ouvrir les crochets. Et nous pouvons voir ici toutes les options dont nous disposons. Mais nous savons déjà à partir des documentations comment l'utiliser. Quel est l'objet original que nous allons utiliser ? Ce sera la balle à laquelle nous avons eu référence. Quelle est la position que nous voulons ajouter à cette puce ? Il va s'agir d'ajouter la position du point de feu. Et comme nous avons ajouté une position, nous voulons également ajouter une rotation et il s'agira simplement de la rotation des points de feu. Gardez ça. Maintenant, lorsque nous cliquons sur le bouton de la souris non nul, nous allons instancier la puce, laquelle nous avons obtenu une référence à la position du point de feu que nous avons créée avec la rotation des points éloignés. Pourquoi spécifions-nous la rotation du point de feu ? Parce que si je clique sur le point le plus éloigné, vous pouvez voir comment il tourne ici. Si je fais pivoter le bras maintenant parce que le point de feu est un enfant des armes,
vous remarquerez maintenant que c'est la direction, même si la rotation est toujours 0. Mais la direction que vous pouvez voir ici, si vous le voyez, a changé la situation de l'échelle mondiale à locale. Vous verrez comment le point de feu est dirigé. Je vais donc me contenter de revenir à 0. Et les rotations sont parfois bizarres. Il ne s'agit pas seulement de 0. Si nous examinons la position, si nous modifions la rotation, vous remarquerez que la position change également. C'est un peu déroutant. C'est pourquoi nous utilisons généralement des rotations quaternions dans Unity sont très difficiles. Quoi qu'il en soit, nous garderons ça. Nous allons lancer notre jeu et maintenant nous pouvons tirer nos balles. Est-ce que c'est cool ? Regardez le nombre de balles que nous avons créées. Mais comme vous pouvez le constater, lorsque nous tirons beaucoup de balles, elles se détruisent elles-mêmes. C'est donc un non-non. Cela étant fait, j'espère que cela vous plaira. Assurez-vous de valider les modifications dans la vidéo suivante, nous allons faire disparaître nos puces automatiquement sans avoir à appuyer sur le bouton à chaque fois. Même s'il s'agit d'un fusil de chasse, nous en ferons un fusil de chasse automatique. Alors commettez les changements, et je vous verrai dans la vidéo suivante.
19. Comptoir de tir: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons ajouter le tir automatique. Vous pouvez donc voir ici que nous avons un temps entre deux tirs. Combien de temps voulez-vous entre deux tirs ? Je vous entends. Vous voulez dire 0,5 ? Bon, monsieur, voilà. Nous jouons à Run. Nous avions le bouton Lecture. Nous effectuons le gain et maintenons le bouton gauche de la souris enfoncé. Et voilà. Vous pouvez voir que nous devrions chaque image et vous pouvez voir qu'elles sont très cohérentes. Donc je ne joue pas à un jeu et ici je maintiens le bouton enfoncé et il continue à tirer toutes les 0,5 secondes ou chacun a une seconde, nous continuons à tirer. Ne perdons donc plus de temps. Nous allons en apprendre davantage sur les compteurs. Et commençons. Ok. Nous voulons
donc pouvoir tirer
automatiquement des balles lorsque le bouton de la souris est enfoncé. Actuellement, chaque fois que nous appuyons sur le bouton, une fois que nous pouvons tirer, mais ce que nous voulons, c'est avoir une sorte de tir
automatique pendant que nous maintenons le bouton enfoncé, comme un fusil, même si nous sommes à l'aide d'un fusil de chasse ici, nous allons simplement utiliser notre imagination et imaginer qu'il s'agit d'un fusil de chasse automatique. Et pendant que nous maintenons le bouton enfoncé, il continue de tirer. Alors, comment allons-nous faire cela ? Actuellement, si vous regardez ici, vous pouvez voir que cette méthode, le bouton descendre de
la souris, bouton descendre de
la souris, renvoie une valeur true pendant le cadre où l'utilisateur a appuyé sur le bouton de la souris donné. Il ne renvoie donc true qu'une fois dans le cadre où le lecteur ou l'utilisateur a appuyé sur le bouton. Ce que nous voulons, c'est que nous voulons utiliser quelque chose appelé le bouton d'entrée de la souris. Remarquez donc que c'était le bouton de la souris enfoncé. C'est le bouton Obtenir la souris. Et si vous lisez la description, vous pouvez voir qu'elle renvoie une valeur true si le bouton de la souris donné est maintenu enfoncé. Donc, pendant que nous maintenons le bas, cela revient toujours vrai. Et cela nous permettra de continuer à instancier des puces tout le temps, à chaque image. Mais nous arrivons à un problème. Vous avez remarqué que lorsque nous lançons le jeu, si vous vous en souvenez, nous pouvons voir les statistiques ici. Nous avons donc environ 800 à mille images par seconde. Donc, chaque image, alors que nous maintenons le bouton de la souris enfoncé, nous allons instancier une balle, ce qui est très mauvais. Nous allons donc avoir environ 1000 balles à chaque seconde. Maintenant, c'est amusant. C'est une arme très OOP, mais ce n'est pas ce que nous voulons. Nous voulons avoir un certain temps entre tirage de chaque livre pendant que nous tenons le dos comme une vraie arme. Quel est le problème ici ? Okay, donc pas de soucis. Je pense que ça va se régler. De toute façon. Commençons par. La première chose que nous allons faire, c'est que nous allons créer un champ sérialisé, qui va être flottant, et ce sera le moment entre les prises de vue. Une deuxième variable que nous aurons en tant que flotteur privé et le compteur de tir. Et ce que nous ferons, c'est dès que nous
commencerons, nous allons régler le compteur de tir autour de 0, ou nous pourrons le régler immédiatement ici au lieu de le définir et de commencer. Nous commençons donc à 0. Maintenant, si nous faisons défiler vers le bas, nous allons créer une autre condition. Et nous dirons que si le point d'entrée obtient le bouton de la souris, qui renvoie si le bouton des modes donné est maintenu enfoncé. Et nous utilisons également l'index 0 pour le bouton gauche de la souris. Nous allons commencer à utiliser le compteur de tir et retirer le temps du delta du point temporel. Alors vous souvenez-vous que lorsque nous utilisons le plus est égal quelque part ici lorsque nous utilisions la transformation, maintenant nous ne l'avons plus. Eh bien, c'est similaire au plus égal. Cela représente donc le compteur de tir moins temps.DeltaTime. Et vous savez quoi, je vais dupliquer cela, commenter cela. Et puis je ferai en sorte que cela soit moins égal. Vous vous souviendrez donc que ce sont les mêmes choses. Et je vais même le faire descendre à côté de la ligne juste ici. Vous pouvez garder cela comme un rappel de la raison pour laquelle nous définissons moins égaux, plus égaux et toutes ces choses. C'est beaucoup plus facile à lire et c'est beaucoup plus cool et vous rendra beaucoup plus professionnel chaque fois que nous montrons votre jeu à quelqu'un. Continuons donc, quoi avons-nous besoin ici ? Pendant que nous maintenons le bouton de la souris enfoncé, le compteur de tir est compté à rebours. Ce que nous voulons, c'est que chaque fois que ce compteur de tir se termine ou devient 0, nous voulons tirer une balle, puis rafraîchir le compteur de tir au moment entre les tirs. Alors, comment allons-nous faire cela ? Au lieu d'instancier immédiatement, je vais lancer un défi. Est-ce que c'était une meilleure transition que la dernière fois ? Quoi qu'il en soit, votre défi est de vérifier si le compteur a été le cas, et donc de créer une condition si qui vérifie le compteur de tir. Si le compteur de tir est inférieur ou égal à 0, pourquoi est-il inférieur ou égal à 0 ? Vous demandez peut-être pourquoi pas immédiatement 0 ? Eh bien, parce que nous comptons.
20. Bullets Se frappent les Bullets: Bienvenue, Mes développeurs de jeux préférés dans cette vidéo, lorsque nous avons fixé le temps entre les prises de vue à 0,1 et que nous commençons à tirer sur nos oiseaux. Vous remarquerez que même s'ils sont au-dessus des autres, ils ne se détruisent pas eux-mêmes, mais ils sont toujours détruits lorsqu'ils frappent n'importe quel mur. Non seulement cela, si j'ai beaucoup de balles qui sont tirées et que le joueur les traverse, vous remarquerez que le joueur aussi, ou les balles et le joueur n'interagissent pas entre eux et qu'ils ne sont pas détruits en frappant la couche, qui est un bon mécanicien. Nous ne voulons pas que le joueur utilise la balle pour pouvoir se suicider. C'est un mécanicien de jeu. Cela dit, ne
perdons plus de temps et commençons par apprendre la couche et la physique 2D matrix k. Maintenant, lorsque nous lançons notre jeu,
vous verrez que nous pouvons lancer nos livres. Mais le problème est que si nous essayons d'appuyer plusieurs
fois dessus ou si nous fixons l'heure entre les tirs, par
exemple 0,1, vous verrez que nous ne voyons aucune balle s'envoler. Pourquoi ? Parce que remarquez à gauche, nous avons les balles qui tirent et se détruisent elles-mêmes parce qu'elles interagissent les unes avec les autres. Et ce n'est pas ce que nous voulons. Nous voulons résoudre ce problème. Comment allons-nous faire cela ? Maintenant, avant de continuer, c'est
peut-être quelque chose que vous voulez garder dans votre jeu. Mais honnêtement pour moi, c'est un peu ennuyeux que vos balles soient détruites. Encore une fois, comment allons-nous résoudre ce problème ? Eh bien, si nous regardons ici à droite et l'inspecteur de n'importe quel objet de jeu, nous pouvons voir que nous avons quelque chose qui s'appelle la couche. Et je vous l'ai déjà montré lorsque nous parlions de trier les calques, mais nous n'y avons pas plongé profondément. Donc, si je reviens aux calques, vous pouvez voir que j'ai des balises dont nous parlerons à l'avenir. Nous avons les couches de tri qui déterminent quel Sprite ou quelle couche s'affiche devant quelle autre couche. Et nous avons aussi les couches. Et vous pouvez voir que nous avons déjà les effets
transparents par défaut , ignorez la refonte de l'eau. Vous êtes tous ces différentes couches déjà présentes dans Unity. Ce que nous allons donc faire, c'est que nous allons définir les puces sur une certaine couche. Vous vous demandez peut-être, mais pourquoi devrions-nous placer ces puces sur une certaine couche ? Eh bien, permettez-moi de vous montrer en créant d'abord la couche de puces du joueur. Maintenant, nous voulons nous lancer dans les projets. Allez dans notre où sont les préfabriqués, le plus agréable ? Et réglons simplement la balle du joueur sur la couche de balles du joueur. C'était donc le préfabriqué. Ainsi, toutes les créations ultérieures ou les clones de ce préfabriqué seront également sur la couche de puces du lecteur. Mais quand même, en quoi cela nous aide-t-il ? Eh bien, si nous allons dans notre édition, dans les paramètres de notre projet, et si nous allons dans la physique 2D et que nous faisons défiler vers le bas, nous pouvons voir ici cette matrice de collision de couche. Et si vous, désolé, si vous inclinez la tête, vous pouvez voir, laissez-moi maximiser cela. Vous pouvez voir que nous avons les puces transparentes par défaut du lecteur refonte, l'interface utilisateur de l'eau et de ce côté également. Alors, comment fonctionne cette matrice ? Supposons que nous ayons la couche par défaut, qui était auparavant la couche puces. Et nous pouvons voir qu'il interagit également ici avec le calque par défaut de ce côté. Ce que nous pouvons faire, c'est que nous pouvons réellement désactiver cela. La couche par défaut n'interagit donc plus avec les autres couches par défaut. Mais évidemment, nous ne voulons pas que cela se produise, car chaque fois que vous créez un objet de jeu, vous l'aurez par défaut. Et peut-être voulons-nous que certains objets de
jeu par défaut interagissent avec d'autres objets de jeu par défaut. C'est pourquoi nous avons créé la balle du joueur. Ce que nous pouvons faire, c'est que nous pouvons dire que la balle du joueur, qui est ici, n'interagit pas avec la balle du joueur. Nous éteignons donc ça. Et maintenant, les balles du joueur ne devraient pas se détruire unes les autres car elles ne pourront pas interagir entre elles. Essayons ça. Je vais y retourner. Je vais diriger le jeu. Et je vais aller voir le joueur DOM et d'accord, donc le temps entre les tirs sera de 0,1. Et essayons de maintenir le bouton de la souris enfoncé. Maintenant, quand je maintiens le bouton de la souris enfoncé, c'est parti. Vous pouvez voir que les balles, même si elles sont au-dessus des autres, détruisent pas elles-mêmes, mais elles sont toujours détruites lorsqu'elles se heurtent à un mur. Vous pouvez donc le voir clairement lorsque nous tirons vers le mur, mais ils sont les uns sur les autres et ils ne se détruisent pas eux-mêmes. Est-ce que c'est cool ? Nous avons maintenant ce puissant outil dans notre arsenal où nous pouvons définir différents objets sur différentes couches et nous assurer qu'ils n'interagissent pas entre eux. Une autre chose que nous voudrions peut-être changer, c'est les balles du joueur qui frappent le joueur. Une fois encore. Je vous le dis, si vous voulez garder ce mécanicien dans votre jeu, n'hésitez pas à le faire. Si ce n'est pas le cas, nous allons modifier la façon dont les balles interagissent avec le joueur. Actuellement, le collisionneur de capsules du joueur est très petit. Ce que nous pouvons faire, c'est que nous pouvons ajouter un autre collisionneur de capsules. Nous devrons le faire plus tard, car que se passe-t-il si l'un des ennemis nous tire une balle la tête et que nous n'avons pas de collisionneur qui
n'indique pas que nous avons été abattus. Nous allons régler cela. Mais pour l'instant, gardons les choses simples et essayons de frapper le joueur sur ses jambes. Je vais donc diriger le jeu. Je vais tirer une balle. Et si je m'arrête là, on voit que ça frappe le joueur et peut le tuer. Une fois encore. Vous voulez garder ces mécaniciens. Vous voulez que les balles du joueur aident le joueur. C'est bon. Mais vous devrez relever ce défi. Vous devez vous assurer que le joueur et les balles n'interagissent pas. Créez donc un calque, un calque. Attribuez le joueur à cette couche et assurez-vous que les puces du joueur et du joueur n'interagissent pas via la matrice physique. Cela dit, mettez en pause la vidéo maintenant, allez créer la couche de lecteur. Assurez-vous que les balles ne tuent pas notre joueur. Bon, bon retour. Alors, comment avez-vous fait ça ? Avant de continuer, je veux juste faire quelque chose. Je vous ai dit que je ne voudrais pas le faire, mais faisons-le pour l'instant. Je vais ajouter un collisionneur de boîtes au joueur. Ce n'est pas là que le joueur interagira. Ce ne sera qu'un collisionneur de boîtes pour déterminer si le joueur est touché. Je vais donc faire le tour de la taille du joueur et je vais en faire un déclencheur parce que je ne veux pas que ce collisionneur de boîte interagisse physiquement avec le monde. Je veux conserver ce collisionneur de boîte comme enregistré si
quelqu'un a une couche profonde ou une sorte de couche. Je vais donc sauver ça. Je vais diriger le jeu. De toute évidence, nous devrons passer outre le préfabriqué. Je vais tirer ça et si je marchais vers la balle, on peut voir qu'il frappe le joueur. Allons donc dans les calques qui apparaissent. Au niveau des calques, ouvrez les calques. Je vais ajouter la couche de joueur. Et maintenant, je vais entrer dans le Doom Player. Je vais entrer dans les Calques et je vais définir ce calque sur la couche du joueur. Et vous pouvez voir que lorsque vous modifiez la couche d'un parent, vous obtenez l'option. Voulez-vous définir le joueur, le joueur par joueur pour tous les objets enfants également ? Voudriez-vous le faire ou non ? Je pense que ça ne nuirait pas si nous fixons les enfants aussi. Je vais donc régler ça, je vais sauver ça. Je vais aller dans les paramètres du projet, la physique, et je vais m'assurer que les balles du joueur et le joueur n'interagissent pas. Vous pouvez donc voir où il y a une intersection entre les balles du joueur. Le joueur. Je vais m'assurer qu'il n'y a pas de signe ici. On y va. Maintenant, si nous lançons
le jeu, les balles devraient traverser le joueur. Et oui, on y va. Nous pouvons donc tirer les balles autant de fois que nous le voulons, et elles ne touchent pas le joueur. Ils continuent de flotter jusqu'à ce qu'ils touchent une sorte d'ennemi. J'espère donc que vous apprécierez, j'espère que vous aimerez ce nouvel outil que vous possédez. Nous pouvons également appliquer toutes nos modifications au préfabriqué que nous avons du lecteur dôme. Et dans la vidéo suivante, vous remarquerez que nous avons ces balles, d'accord, elles tirent. Tout va bien, mais quand ils frappent un mur, il n'y a rien qui se passe. La balle ne fait que disparaître et ce n'est pas très excitant. Nous voulons avoir une sorte d'impact, des effets, ou nous pouvons sentir le poids de ces balles qui frappent un mur. Et c'est exactement ce que nous ferons dans la prochaine vidéo en ajoutant les effets spéciaux à la balle lors de l'impact. N'oubliez donc pas de valider vos modifications. Et je vous verrai dans la prochaine vidéo.
21. Effet d'impact de puces: Bienvenue, mes collègues développeurs de jeux. Nous venons donc de rendre notre jeu beaucoup plus cool. Alors maintenant, lorsque nous devrions attribuer un prix, nous ne faisons pas que disparaître nos balles. Nous avons notre balle dans une bouffée de fumée. Ainsi, lorsque nous tournons autour, vous pouvez voir que nous avons ce petit effet cool qui est détruit. Remarquez ici qu'il est détruit après un certain temps, ce que nous devons prendre en considération. Donc, ne perdons plus de temps et commençons. Oh, il est donc temps d'ajouter un peu de poids à nos impacts de balles. Et nous allons le faire en ajoutant un effet d'impact. Je vais donc entrer dans les ressources et je vais aller dans le dossier sprites, et je vais créer un nouveau dossier ici, ce qui sera le fait des puces. Et ici, nous allons aller dans les ressources. Et je vous ai fourni quelques faits que j'ai trouvés. Vous pouvez utiliser celui que vous voulez. Vous pouvez également en trouver sur le site Web, open game art.com ou tout autre site Web. Vous pouvez donc voir ici que nous avons trois effets. Celui-là avec un peu de fumée, celle avec un peu moins de fumée, mais c'est un peu bizarre. Et celui-ci, maintenant je vais utiliser l'OH, donc vous voyez qu'il a l'impact sur le métal d'impact. Métal à impact métallique. Ne vous inquiétez pas à ce sujet. Nous n'avons qu'à faire avec ce que nous avons. Nous allons utiliser le métal d'impact. Je vais utiliser le premier. Bien sûr. Pourquoi pas ? Alors, comment allons-nous faire cela ? Nous allons couper le sprite. Nous allons créer une animation, puis nous allons la jouer chaque fois que nous toucherons l'objet. Je vais trancher ça si tu veux. Nous pouvons le faire ensemble en même temps et voir qui le fait plus rapidement ou mieux. Donc, tout d'abord, nous sélectionnons le premier 1. Premier impact, rendez-le multiple. Appliquez les modifications. Faisons en sorte qu'il s'agisse. Peut-être n'avons-nous pas besoin de le faire valoir. Allons-y et Sprite Editor. Ok, la particule de fumée ou non visible, mais nous allons aller de l'avant et la trancher en fonction de la taille de la grille. Voyons quelle est la taille de cette grille. Nous avons donc 1, 2, 3. Bon, donc je vais chercher ma calculatrice pratique. Et la façon dont je vais trancher ça, c'est parce que nous avons cette 960. Vous pouvez le voir ici en bas à droite, 960 à l'horizontale et 576 à la verticale. Donc 576 divisés par, parce qu'il y a trois lignes, je crois que c'est 192. Donc, sur l'axe Y, c'est 192. Et ici, nous avons 12345, donc 960 divisés par 5 aussi 192. Super, j'aurais dû voir ça venir. Nous avons donc tranché des carrés. Très joli. Appliquez les modifications. On y va. Maintenant, nous avons tous ces éléments. Je vais créer un nouvel objet de jeu ici, et ce sera l'impact de la balle. Donc, l'impact de la balle sur le mur. Et on y va. Le voilà. Je vais y ajouter un moteur de rendu sprite. Alors, sprite renderer, et je vais juste lui donner cet effet ici. Où est-il ? Ajoutons cet impact des faits ici. Est-ce qu'on peut le voir ? Est-il visible ? C'est derrière. Devrions-nous créer une couche de tri ? Bien sûr. Pourquoi pas ? Allons de l'avant et créons ou nous pouvons créer une couche de tri des puces de calque profonde. Les balles. Bien sûr, gardons ça parce qu'il fait évidemment partie des puces, il est
donc logique de le faire sur la couche de puces qui va le placer ici. Est-ce que c'est assez grand ? Peut-être voulons-nous l'agrandir. Allons de l'avant et faisons-leur penser que 50, c'est beaucoup. Faisons 75 ans et voyons à quel point c'est gros. Ok, on peut peut-être ajouter, faire 50,
appliquer ça , et peut-être supprimer le point, rendre bilinéaire pour qu'il soit un peu plus lisse. Oui, ça me plait davantage. Alors, tu y vas. Ce sera notre impact. Je vais ajouter un composant animateur ici. Et choisissons celui-ci. Des animations en fait. Bien sûr, allons-y et créons. Ce sera dans les animations des ressources. Et cela s'appellera le mur Bullet Impact. Et j'appelle ça la balle percutante. Eh bien, parce que plus tard, nous aurons différents types d'impacts. Donc, ici, nous allons avoir la balle. Mur frappant la balle. Gardez ça. On y va. Vous pouvez donc voir immédiatement parce que nous avions déjà le composant animateur, le contrôleur est envoyé ici qui a déplacé l'animation un peu plus haut afin que nous puissions toutes les obtenir , les
configurer ici et maintenant remettre l'animation. Maintenant, jouons à ça. Très bien, très sympa. Je pense que c'est un peu rapide. Ou peut-être que c'est parfait. Voyons voir. Je vais juste le rendre un peu plus large. Ok, super. Je pense que c'est suffisant. Mais je pense toujours que 50, c'est un peu trop. Peut-être que nous allons faire en sorte que 18 ne soient pas, sauf ça. Et des animations. Jouons à ça. Ok, je pense que c'est assez bien. Je vais donc sauver ça. Je vais aller dans les actifs, aller dans les préfabriqués, et je vais en faire un préfixe ou l'impact de la balle est maintenant préfabriqué. C'est en visite, les sprites sont sur la couche de balle et nous avons tout mis en place. J'espère que vous avez fait de votre mieux et que vous avez créé ceci ou si vous ne l'avez pas fait, j'espère que vous avez suivi et je n'ai pas été trop rapide pour vous. Alors maintenant, que va-t-on faire ? Nous devons maintenant instancier cet effet chaque fois qu'une balle frappe un mur. Pour ce faire, nous vous lançons un défi. Votre défi consiste donc à instancier l'effet. Trouvez donc votre propre effet d'impact si vous en avez besoin. Vous pouvez donc passer par le jeu ouvert, notre site Web, via HIO ou simplement en effectuant une recherche sur Google. Peut-être que si vous êtes un bon artiste, vous pouvez créer le vôtre et obtenir une référence à l'impact sur le script du contrôleur de puces. Et assurez-vous d'instancier l'effet avant que la balle ne soit tracée. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Donc, dans notre balle de joueur ici, je vais créer une référence au champ sérialisé à la balle. Ou il va s'agir d'un objet de jeu, l'effet Bullet Impact. Gardez ça. Et ce que nous allons faire, c'est avant détruire ou d'être détruit ou avant que la balle ne soit détruite, nous allons instancier l'effet Impact de la balle. Et ce sera où, où devrait-il être ? Il s'agira de la position de transformation, la pointe de la balle et de la rotation de la transformation de cette balle. Je vais donc sauver tout ça. Je vais retourner dans Unity. Je vais choisir la balle du joueur. Nous avons maintenant un fait d'impact. Nous pouvons l'ajouter ici. Nous pouvons sauver cela. Nous allons juste vérifier l'ennemi à 1 seconde. Que se passe-t-il ici ? Pourquoi sommes-nous si confiants et créons-nous cela ? Et pourquoi il y a un petit problème. Cependant, ce qui se passe, c'est que dès que nous avons instancié, vous voyez que la couche par défaut ici est la balle qui frappe le mur. Dès l'entrée, nous avons commencé à frapper les murs par balle, en fait. Voyons donc comment cela fonctionne. Permettez-moi de retirer ça d'ici. Oui, je pense que je peux l'enlever. Et une autre chose que je voulais faire, j'ai remarqué que ces Z étaient sur 0, que je viens de réinitialiser tous ces éléments, sauf ça, de lancer le jeu. Maintenant, je devrais tirer sur un mur et, à l'impact, vous pouvez voir qu'il y a une explosion, mais pour une raison quelconque, vous pouvez voir qu'elle continue. Donc, si j'ai beaucoup de balles, vous remarquerez que nous avons beaucoup de faits et qu'aucun d'entre eux ne s'en va. Vous pouvez le voir ici même sur l'impact des balles sur le mur. Donc, ce que nous allons faire, et c'est à cause de la nature de l'animation que nous venons de créer. Si je vais dans les animations, si j'entre dans la balle, vous pouvez voir ici que nous avons la manette et que nous avons l'animation. Et je vous ai déjà dit
il y a quelques vidéos , lorsque nous faisions des animations du lecteur, qu'il y a ce temps de boucle ici. Donc je vais juste le supprimer, enregistrer, lancer le jeu. La balle devrait-elle ? Vous y allez, il explose sur le mur. Vous y allez. Vous pouvez voir maintenant que l'impact n'est joué qu'une seule fois, mais il y a un léger problème, c'est-à-dire que les impacts des balles sur le mur sont toujours présents et qu'ils ne sont pas détruits. Alors, comment allons-nous y remédier ? Et il existe une façon très simple de le faire. Et tout en vous enseignant comment faire cela, je vais vous montrer un outil extrêmement efficace à l'intérieur de l'animation. Donc, ce que nous allons faire, c'est que nous allons aller dans les actifs. Nous allons aller voir des préfabriqués. Nous allons rajouter la balle Impact. Et ici. Et ce que nous allons faire, c'est que nous allons revenir en arrière des ressources, des scripts et créer ici un nouveau script C-sharp qui sera, voyons, impact, effet, destroyer. Et il va s'agir d'un scénario extrêmement simple. Allons appuyer sur Entrée. Et plus tard, on me rappellera de mettre chaque script et un dossier car au fur et à mesure, nous aurons beaucoup plus de scripts. Je vais ajouter le destructeur d'effet d'impact. Je vais ouvrir ça. Je vais supprimer le démarrage et la mise à jour et je vais faire une seule méthode. Et cela va être un vide public. Détruire. Et ce que nous allons faire, non, pas surDétruire, juste détruire. Et ce que nous allons faire ici, c'est que nous allons simplement détruire l'objet du jeu. Super, comment allons-nous appeler ça ? Maintenant, nous pourrions appeler cette méthode à partir d'ici, mais ce n'est pas très efficace. Pourquoi ? Parce que lorsque nous instancions le bulletin ici , d'
accord, passons par la logique. Nous instancions la balle lors de l'impact, puis nous détruisons l'objet du jeu, qui est la balle, car le contrôleur de balle du joueur est sur la balle. Donc, les plaques d'impact. Donc, après avoir détruit cet objet de jeu, nous n'avons plus le contrôleur de balle du joueur. Il n'est pas disponible et nous pouvons le démontrer. Je vais donc créer cet impact. Je viens donc de mettre la balle créée ici. Et après avoir détruit l'objet du jeu, j'essaierai d'obtenir le composant d'effet d'impact et je vais accéder au destructeur d'impact. Et à partir de là, je vais accéder à la destruction. C'est donc la méthode. Et maintenant, si je joue à mon jeu, vous remarquerez que nous aurons une erreur. Je vais donc déplacer cela et m'assurer que vous appliquez les modifications. Donc, tous les impacts de balle sur le mur ont cette méthode et regardez ce qui se passe lorsque nous tirons dans la console. On y va. Que se passe-t-il ? Nous ne voyons même pas l'impact. Pourquoi est-ce que c'est ? Parce que nous avons été détruits. Et si nous essayons de le faire avant de détruire l'objet du jeu, regardons cela. Lancez le jeu. On y va. Il n'y a donc aucun effet. Il est détruit avant même de le voir. Je vais donc commenter cela et nous pouvons le garder tel quel. Ce n'est pas un problème. Mais je pense que je vais supprimer ça. Et ce sera pour les tests, peut-être que plus tard, vous vous
souviendrez de la façon dont nous avons essayé mais que nous n'avons pas fonctionné. Maintenant, nous avons ici la méthode de destruction qui détruit l'objet du jeu. Et comment allons-nous appeler cela une fois notre animation terminée, c'est la partie délicate. Donc maintenant, si je vais à l'animation tout en ayant l'effet d'impact des balles, je peux la jouer et je vois qu'à la fin, vous remarquerez que lorsque toute la fumée aura disparu,
nous n' avons plus rien à faire. Ce que nous pouvons faire, c'est ici que nous avons cette petite clé et ici et j'ai, accord, alors ajoutez un événement. Nous pouvons ajouter un événement à un moment donné de l'animation, ce qui sera crucial plus tard au cours du cours. Je ne m'attendais pas à faire le solo tôt, mais ça ne m'inquiète pas. Nous pouvons ajouter un événement. Et lorsque nous ajoutons un événement, nous voyons ici que nous avons des animations, des événements et des fonctions parmi lesquels nous pouvons choisir. Et si nous cliquons ici, nous voyons que nous avons la paille. Pourquoi n'avons-nous qu'à détruire ? C'est la destruction, qui est ici. Donc, que se passe-t-il lorsque nous ajoutons un événement, l'animation que nous avons sur un objet donné, nous pouvons accéder à toutes les méthodes présentes dans les méthodes publiques ici. Et ne vous inquiétez pas si vous avez été un peu surpris de la façon dont nous avons créé cela plus tard dans le cours, je vais passer par chaque étape de la création de méthodes. Mais pour l'instant, sachez simplement que nous pouvons accéder à
toutes les méthodes publiques disponibles sur l'objet. Que va-t-il se passer maintenant ? En jouant nos animations, nous verrons l'explosion, la bouffée de fumée. Et lorsque nous arriverons à la dernière trame, cet événement se déclenchera, c'
est-à-dire le destroyer. Et qu'est-ce que cela détruit ? Il entre ici et détruit l'objet du jeu, qui retient le destructeur d'effet d'impact, qui est l'impact de la balle sur le mur. Assurez-vous donc d'appliquer toutes les modifications et le remplacement. Je vais diriger la balle Impact. Je vais diriger le jeu. Et quand je tire sur un mur, nous devrions voir l'effet, mais ce n'est pas le cas. Pourquoi est-ce que c'est ? Revenons ici. Avons-nous sauvegardé ces changements ? Essayons encore une fois. Je pense que c'est parce que nous n'avons pas sauvegardé le script. Nous gérons le jeu. Nous voyons la bouffée de fumée. Et voilà. Vous pouvez voir qu'il a disparu de la hiérarchie. Alors maintenant, testons un peu mieux ça. Là, vous pouvez voir l'effet d'impact qui se produit autour de nous. Et puis tout l'effet disparaît. Et c'est beaucoup plus efficace. C'est mieux que d'avoir beaucoup d'objets de jeu dans notre hiérarchie, prendre de l'espace, de prendre de la RAM cruciale et de boucher le système. J'espère donc que vous avez apprécié, j'espère que vous faites de votre mieux dans chaque défi. J'espère que vous apprécierez les nouvelles choses que nous ajoutons à chaque fois. Je vais mettre en scène toutes ces choses. Je vais dire que la balle a ajouté le
fait Impact et l'a détruite, détruite par la suite. L'utilisation d'événements avec un point d'exclamation, car c'est à dire que les événements sont un outil incroyable que vous ne verrez pas très souvent utiliser. J'espère que cela vous plaira et je vous verrai dans la prochaine vidéo où nous
ajouterons les effets de piste à nos balles, rendant
ainsi l'organe beaucoup plus frais.
22. Ajouter un traîneur aux balayages: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons ajouté un moteur de rendu Trail à notre balle. Je vais le rendre un peu exagéré pour que vous puissiez voir clairement ce qui se passe lorsque nous lançons notre jeu. Quand on tire notre balle. Vous y allez. Vous pouvez voir qu'il a une sorte de traînée derrière elle. Je vais l'agrandir un peu. Vous voyez donc clairement ce qui se passe. Je tire une balle. Eh bien, tu y vas. Vous pouvez voir notre sentier cool, les sentiers derrière la balle. En fait, ce n'est pas parfait. Ce n'est pas si joli. Mais je vous ai laissé la partie créativité parce que même si je me connais moi-même, je ne suis pas si créatif avec cela, ne
perdons plus de temps. Nous avons résolu un petit problème que nous avions, mais nous ne l'avons pas vu avant peut-être que vous l'ayez remarqué et pensé à la lune, Michael a oublié quelque chose. Qu'est-ce que E un tel fardeau vous structure. Non, non, je plaisante. Cela ne perd plus de temps et commençons. Ok, donc nous voulons ajouter un petit sentier derrière notre balle pendant qu'elle vole dans l'espace. Comment allons-nous faire cela ? En fait, c'est très simple. Nous allons simplement entrer dans la balle du joueur. Et ici, nous pouvons ajouter un composant qui est le moteur de rendu Trail. Ainsi, lorsque nous cliquons dessus, vous pouvez voir que nous pouvons ajouter une piste. Comment allons-nous tester cette piste ? Alors que nous allons double-cliquer sur le préfabriqué, ouvrez-le ici et voyez ce que nous pouvons faire. Tout d'abord, je ne connais pas tous les éléments ici. Vous pouvez jouer autour de tout. Vous pouvez voir que l'une des choses que nous avons comme couche de tri. Nous pouvons donc choisir si c'est une balle, s'il s'agit d'un joueur avec ce que vous voulez, je vais choisir les deux. Alors, comment voyons-nous le sentier ? Nous prenons simplement notre balle et nous commençons à la déplacer. instant, c'est la piste que nous avons. Oui. Je sais que ce n'est pas si bon. Que va-t-on faire ? La première chose que je veux faire, c'est de changer le matériel. Donc, chaque fois que dans l'unité, vous avez cette chose rose derrière vous, cela signifie
qu'il y a quelque chose qui ne va pas dans le matériel. Je vais donc faire défiler vers le bas, trouver où nous avons du matériel si je l'enlève complètement, vous verrez que nous n'avons plus aucune trace. Vous pouvez ajouter plusieurs types de matériaux ici. Au fait, il y en a beaucoup et il y a des choses que vous pouvez importer dans Unity comme le rock, comme, je ne sais pas, foudre ou tout ce que vous voulez. Par exemple, nous pouvons ajouter cette matière sombre. Je ne sais pas ce que c'est. C'est l'un des matériaux par défaut dont nous disposons. Je vais simplement utiliser, nous pouvons utiliser, par
exemple, le système de particules par défaut. On dirait donc qu'il y a une piste de fumée derrière elle, ce qui n'est pas mal. Je pourrais le garder. Et au fait, je ne fais que m'amuser. Je ne suis pas sûr de ce que nous allons faire. Et voyons ce que nous pouvons faire ? Et vous pouvez voir que cette piste est plutôt bizarre. De toute façon. La prochaine chose que je veux faire est de modifier la largeur de ce sentier pour que
vous puissiez l'augmenter ou la diminuer au fur et à mesure que nous nous déplaçons dans l'espace. Et nous pouvons également ajouter un autre point ici. Ainsi, par exemple, vous pouvez commencer par être épais, puis avoir ce petit sentier à la fin, sorte qu'il devient plus petit au fur et à mesure que nous avançons. Et voyons ce que nous avons d'autre dans cette particule ? Nous pouvons ajouter ce type de particules, ce type de matériaux en fait. Bon, c'est bien, pas mal. Vous pouvez ajouter ceci, un sprite normal. Et ce que cela fait, c'est que nous pouvons réellement changer la couleur. Et ici, vous pouvez même avoir des couleurs mélangées ou fixes. Donc 11, une seule couleur ou un mélange de couleurs. Ainsi, vous pouvez choisir, par exemple, ici, la première couleur devrait être, faisons-la presque autour du rouge. Et la couleur finale devrait être blanche. Ok, donc maintenant vous remarquerez qu'au fur et à mesure que
nous avançons, nous avons lu au début, puis ici, à la fin, nous avons une couleur blanche. Vous pouvez modifier la largeur. Par exemple, vous pouvez voir ici que c'est un peu gros pour la balle et c'est ainsi que le bateau va se déplacer parce qu'il ne se déplace que dans la bonne direction. Faisons donc un peu plus petit, plus fin. On y va. Nous avons donc maintenant cette petite piste alors que nous nous déplaçons dans l'espace. Voyons à quoi cela ressemblera. OK ? Et un autre problème, c'est le moment. Donc, si on le survole, combien de temps la queue B va-t-elle ? C'est donc cinq secondes. Je ne pense pas que cinq soient quelque chose que nous voulons. Je pense que nous en ferons assez, peut-être même moins. Alors, tu y vas. C'est la piste. Je pense que même 0,5 suffira. Alors, tu y vas. Donne-moi la balle. Retirer. Ce sera notre piste derrière la balle. En fait blanc et pas si bon que ça. Je vais juste choisir une sorte d'orange, de jaune, quelque chose comme ça. Voyons voir. On y va. Je pense donc que c'est assez beau. J'aimerais peut-être le rendre un peu plus mince. Un peu plus mince. Et essayons un autre matériau juste pour s'amuser. Voyez à quoi ça ressemble. Joli. Pas mal, je pense. Non, non, en fait, non, je n'aime pas ça. Je devrais peut-être le rendre un peu plus épais. On peut augmenter l'épaisseur à la fin. C'est pourquoi c'est le début, comme vous pouvez le voir, puis c'est très petit. Vous pouvez jouer autour de la quantité que vous voulez ajouter, épaisseur que vous pouvez même changer ici, vous pouvez voir qu'elle commence à basse hausse. Vous pouvez ajouter un autre point d'inflexion ici. Par exemple, comme ça. Rappelez-vous quand nous faisions les animations. Alors, tu y vas. Ce genre de queue de renard derrière. Regardez à quel point c'est cool. Vous pouvez créer beaucoup d'effets agréables à l'aide trail si vous avez le temps de tester tout cela, tout simplement pour supprimer cela. Et rendons ça normal à nouveau. Alors, tu y vas. C'est notre piste. En fait, la dernière était bien meilleure honnêteté, mais pas de soucis à ce sujet pour l'instant, voyons quoi. Vous pouvez également modifier les ombres. Vous pouvez avoir une destruction automatique. Il y a
beaucoup de choses avec lesquelles vous pouvez jouer. Vous pouvez accéder à la documentation d'Unity et tout vérifier, voir les autres options dont vous disposez. Par exemple, les sondes, mouvement de la
caméra, quelque chose comme ça. Je n'en suis pas sûr. Bien sûr. Je vais donc sauver ça. Je vais revenir dans notre jeu et voyons si nous avons une bonne piste. Donc, quand je tire sur la balle, on voit que j'ai une petite piste derrière elle. Ce n'est pas si bon que ça. Ce n'est pas comme ça que j'aimerais que ce soit. Mais vous pouvez voir que c'est juste un petit sentier derrière. Attendez donc que les balles soient détruites. Essayez encore une fois. Et si vous avez remarqué qu'il n'y a pas une seule balle, il y a deux balles ici. Et pourquoi est-ce que c'est ? Que pensez-vous que le problème n'est pas là ? Et la raison pour laquelle nous avons deux puces est
que si nous revenons dans notre script ici, vous remarquerez que si nous appuyons sur le bouton de la souris pendant une image ou si nous continuons à appuyer dessus, nous instancions une balle. Pour résoudre ce problème, nous allons donner au joueur la possibilité de choisir s'il s'
agit d'une arme automatique ou non automatique. Maintenant, je vais vous rappeler que cela sera déplacé vers un autre script parce que nous ne voulons pas gérer cela dans le script du lecteur. Nous allons approfondir pourquoi. Car permettez-moi de vous le dire à partir de maintenant, car avoir une arme automatique n'est pas le travail de manette du joueur. Il devrait être sur un scénario différent. Mais pour l'instant, nous allons juste résoudre ce problème. Je vais créer un champ sérialisé qui sera de type booléen. Et je vais appeler ça la magie automatique des armes. Donc, si l'arme est automatique, nous allons changer les conditions. Donc, si l'arme n'est pas automatique et que nous appuyons sur le bouton le plus bas, nous allons immédiatement instancier. Donc, tout comme nous avions le ou quel script, je ne suis pas sûr, était-ce le scénario ? Quel script ajoutons-nous ou ? Ou nous n'avons pas tous, d'accord, donc nous avons la fin. Que signifie ce symbole ? Laissez-moi juste finir. L'arme est-elle automatique ? Et comme nous l'avons déjà dit, lorsque nous avons un point d'exclamation, cela signifie que si celle-ci, si l'arme est automatique, toute
cette condition sera fausse. Donc, si c'est automatique est vrai, ce point d'exclamation derrière cela le rend faux. Mais cela signifie que les deux conditions doivent être vraies pour instancier. Alors, qu'avons-nous ici ? Si l'arme n'est pas automatique avec le point d'exclamation, si l'arme n'est pas automatiquement, cette condition devient vraie. Pourquoi est-ce que c'est ? Parce que si l'arme n'est pas automatique, est automatique en elle-même sans que le point d'exclamation soit faux. Avec le point d'exclamation, cela devient vrai. Et si nous appuyons sur le bouton, nous instancions immédiatement la balle. Et si nous maintenons le bouton enfoncé et que l'arme est automatique
, nous aurons notre compteur de tir. Laissez-moi refaire ça. Et laissez-moi aller de l'avant et imprimer ici dans le journal des points de débogage. Si le point d'exclamation est automatique. Vous pouvez donc voir par vous-même, sauf cela. Encore une fois, que se passe-t-il ici ? Nous pouvons dès maintenant choisir si une arme est automatique ou non. En quoi cela nous aide-t-il si l'arme est automatique ? Et ces deux symboles ici, et nous maintenons le bouton de la souris enfoncé. Nous aurons le compteur de tir et nous
tirons constamment en fonction du temps écoulé entre les tirs. Mais si l'arme ou l'arme n'est pas automatique, cela signifie
que l'arme automatique est fausse. Ce qui signifie que lorsque nous ajoutons un point d'exclamation derrière elle, cela le rend vrai. Donc, toute cette condition ici est vraie et nous appuyons sur le bouton de la souris une fois que nous instancions immédiatement sans délai entre eux. Et nous avons également ceci à afficher pour vous assurer que vous comprenez comment fonctionne le point d'exclamation. Vous pouvez voir ici le point d'exclamation automatique. De retour dans notre jeu. Nous gérons notre jeu. Vous remarquerez la console, nous y allons. Il s'agit d'une petite erreur. Ne vous inquiétez pas à ce sujet. Je vais clarifier cela et vous pouvez voir que c'est faux. Faux, faux wild est automatique, c'est vrai. Quand je l'éteins, on voit que ça devient vrai. Vous pouvez voir les messages envoyés ici même s'effondrer les uns sur les autres. Donc maintenant, si je n'ai pas d'arme automatique comme fausse, si je maintiens le bouton de la souris enfoncé, vous pouvez voir que je ne tire qu'une seule fois. Si je l'ai en mode automatique, je maintiens le bouton de la souris enfoncé. J'ai beaucoup de photos. Et ce qui est génial, c'est juste attendre que toutes les balles soient détruites. Maintenant, quand j'appuie sur le bouton, une fois là, on n'a qu'une seule balle. Nous avons donc résolu le problème d'avoir une balle magique pour éviter que si vous le souhaitez, nous pouvons ajuster la piste. Je l'ai juste fait un peu vite. Prenez votre temps, amusez-vous,
prenez plaisir à créer des sentiers bizarres avec beaucoup de couleurs et ainsi de suite. Et je pense que c'est la dernière vidéo de cette section,
et dans la prochaine section, nous allons mettre en place les ennemis que nous voulons tuer. Parce qu'à quoi bon avoir des balles si on n'a personne pour les tuer ? Assurez-vous donc de toujours valider vos modifications. Et je vous verrai dans la prochaine vidéo.
23. Section 4 : Créer des ennemis - Créer un ennemis: Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo extrêmement longue. Je sais que vous en avez marre. Mais comme toujours, cela en vaut vraiment la peine car nous apprenons beaucoup. Tout d'abord, nous créons un ennemi. Nous y ajoutons une gamme. Nous ajoutons un moyen de dessiner cette plage. Et nous gérons également le jeu. Nous pouvons tirer sur l'ennemi. Évidemment, il ne meurt pas pour l'instant, mais on peut entrer dans le champ de tir. Vous pouvez voir ici que le joueur est dans la gamme Chase. Il est envoyé à chaque fois. Si nous sortons de cette petite bulle, voilà, vous voyez que le joueur est hors de portée. Ne perdons donc plus de temps. Commençons par cette longue vidéo. Oh, il est donc temps pour certains ennemis. Commençons. La première chose que nous allons faire, c'est que nous allons cliquer avec le bouton droit
de la souris pour créer un objet de jeu vide. Assurez-vous que sa position est réinitialisée. Et la rotation, l'échelle et ainsi de suite. Et nous allons simplement appeler cela l'ennemi pour l'instant jusqu'à ce que nous décidions quel ennemi voudra utiliser. La prochaine chose que nous devrons faire, c'est d'aller dans les sprites. Nous allons cliquer avec le bouton droit de la souris pour créer un dossier ici pour les ennemis. Et l'intérieur des ennemis ira dans les ressources et nous allons traîner dans le monstre et les créatures. Et mettons-le ici. Nous attendrons donc que tout soit importé. Nous allons ouvrir ça. Et comme vous pouvez le constater, nous avons quatre types d'ennemis que j'ai téléchargés depuis les arts du jeu ouvert. Bien sûr, comme toujours, vous pouvez trouver vos propres ennemis. Ce sont ceux que j'ai utilisés et ils seront dans le lien, dans les ressources. Et que dois-je choisir ? Je pense que je vais en choisir quatre maintenant, le, voyons lequel. Je n'y ai vraiment pas pensé. Les ennemis. Il suffit de choisir le squelette et d'être très générique. Comme vous pouvez le constater, nous avons attaqué trois morts, soit cetera, et cetera. Donc, je vais juste aller au ralenti. Je vais faire en sorte que plusieurs Sprite Editor s'appliquent. Et allons-y en tranchant,
non pas automatiquement, mais en fonction d'une taille de grille. Et si vous étiez un peu confus par ce que j'ai fait la dernière fois, je vérifie la longueur du sprite entier. Il est donc 600 et je le divise par le nombre de squelettes que nous avons. Nous avons donc quatre ou une seule rangée, divisée par quatre. Cela signifie que c'est 150 sur 150, comme toujours. Pour une raison quelconque, je suis surpris. Nous allons donc dans l'épissure, trancher. Splice, pense que c'est une épissure de film, bien sûr, tranche. On y va. Appliquer. Maintenant, nous avons nos petits squelettes ici. Je vais le faire glisser. Et la scène,
c'est un énorme squelette, n'est-ce pas ? C'est de l'ironie. Si vous ne l'avez pas récupéré. Quoi qu'il en soit, on aura 50 ans. On y va. On ne peut toujours pas le voir parce qu'on a besoin d'avoir et de postuler. Allons de l'avant et créons ici une couche qui sera l'ennemi ou les ennemis. Et je vais mettre les balles à rendre devant l' ennemi et aussi
le joueur pour rendre un complot de l'ennemi. Allons de l'avant et placons l'ennemi juste ici. Alors, tu y vas. C'est toujours un très petit ennemi. Sauvons ça. Faisons-le un peu plus grand. Donc, un ralenti 50, faisons-les 32. Appliquez cela. Peut-être même plus gros. Faisons de lui 16 ans. Donc 16. Oui. On y va. OK. C'est trop gros. Quand D peut-être 20. Oui, je pense que 20 ça suffit. Cela a changé ces deux points. Voyez si cela aide. Oui, on y va. Il a l'air beaucoup mieux, encore un peu granuleux, mais pas de soucis à ce sujet. Nous l'avons gratuitement. De toute façon. Voyons voir, c'est le corps. Ce serait le corps. Et je vais l'enfouir sur l'objet de jeu ennemi. Maintenant, nous avons l'ennemi ici et le corps. Mettons-le juste à 00. La position est relative, bien sûr aux objets
du jeu ennemi ou maintenant nous nous déplacons l'aide de l'ennemi et vous pouvez voir qu'il est rendu
derrière le joueur, derrière le canon et qu'il devrait également être rendu derrière les balles. Vas-y à droite. Maintenant que nous avons cela, prochaine chose que nous devons faire est évidemment un comportement ou d'un moyen de contrôler le comportement de notre ennemi. Nous allons donc entrer dans les ressources, les scripts, nous allons cliquer ici avec le bouton droit de la souris, créer un nouveau dossier, et appelons cela les ennemis. Entrez. Peut-être en créez-en un ici pour le joueur, qui sera la manette du joueur. Et voyons voir, nous allons également en créer un pour les puces et le temps maintenant. Créez donc un nouveau dossier pour les puces. Et nous allons les placer dans la balle. Pourquoi ? Parce que nous avons la balle, la manette de balle du joueur et l'effet d'impact. Ainsi et à l'intérieur des ennemis, cliquez avec le bouton droit de la souris, créez un nouveau script C Sharp, et nous l'appellerons le contrôleur And EMI sur Entrée. Attendez que cela soit compilé. Ok, super. Et maintenant, dans l'ennemi, nous pouvons aller de l'avant et ajouter un composant qui est le contrôleur ennemi. Et nous allons ouvrir le script. OK ? Donc, quelque chose que vous avez peut-être remarqué que tous les onglets ont disparu. Ce n'est pas parce que je les ai fermés, c'est parce que nous en avons changé le répertoire. Nous avons donc déplacé, par exemple, le contrôleur du lecteur des scripts de dossier vers les scripts du lecteur de dossiers. C'est pourquoi nous ne l'avons pas, mais ne vous inquiétez pas, c'est quand même, si nous double-cliquons, nous pouvons facilement l'ouvrir. Continuons. De quoi avons-nous besoin ici à l'intérieur du contrôleur NMI ? Bien que nous ayons besoin d'abord d' une variable qui contrôlera la vitesse de l'ennemi. Et nous aurons besoin d'une variable qui représentera le corps rigide de l'ennemi. C'est ce que je vais faire. Ce sont des choses très simples. Pas besoin de beaucoup d'explications. Il s'agit d'un champ sérialisé, d'un flotteur et de la vitesse ennemie. Et une autre variable qui sera un corps rigide privé 2D. Et je viens de me souvenir. Et EMI, corps rigide. Le corps n'a pas besoin d'être capital. Gardez ça. Et je me souviens juste que nous avons évidemment oublié d'
ajouter quelques choses à l'ennemi, qui est ici. Nous allons ajouter un composant qui sera un collisionneur de boîtes. Et allons y aller de l'avant et y arriver. Donc, sans le bouclier, il est
généralement préférable de garder les collisionneurs un peu plus petits que le corps réel. Cela rendra le joueur de votre jeu désiré devenir plus précis. Et nous pouvons aussi ajouter l'ombre, en passant, sous l'ennemi, ce qui est une bonne idée. Je vais ajouter un autre composant, qui sera le corps rigide 2D. De toute évidence, nous allons faire l'échelle de gravité 0. Gardez cela, et nous fermerons les deux, les deux vers le bas. Déplacez le script sous les deux composants, ou nous pouvons simplement le laisser là. Quelle est la vitesse de l'ennemi ? Quelle est la vitesse du joueur en premier, OK,
c'est alors, faisons en sorte que la vitesse ennemie soit de 5,5 de cela. Gardez ça. Ok, super. Maintenant, nous avons l'ennemi. Nous avons un corps rigide et un collisionneur sur lui pour pouvoir le tirer dessus et interagir avec lui physiquement. Maintenant, ce que vous voulez faire, c'est que nous voulons commencer à déplacer l'ennemi vers le joueur, mais pas tout le temps, seulement lorsque le joueur se rapproche suffisamment. Nous avons donc besoin d'une variable pour la plage à laquelle le joueur sera dans un ordre pour que l'ennemi cesse de le poursuivre. Et nous avons également besoin de la direction dans laquelle l'ennemi va se déplacer. Tout d'abord, nous allons créer un champ sérialisé, qui sera un flotteur avec le joueur ou la plage de poursuite du joueur, appelons cela la portée des chaînes de joueurs. Donc la portée que le joueur devrait être pour commencer à le poursuivre. Et nous allons créer un facteur trois privé. Et ce sera la direction pour aller dans la direction de se déplacer et de sauver cela. Ok, super. Revenons ici. Et quelle est la gamme Chase ? Et tu sais quoi ? Gardons ça pour plus tard. Et je vais vous montrer une façon très astucieuse de dessiner. Alors, comment allons-nous savoir quelle est la portée de la chasse ? Je peux donc, par exemple, commencer à faire la plage de changement de cinq ou dix, ou 21. Mais qu'est-ce que cela signifie ? Qu'est-ce que cela signifie la portée de chasse ici ? Nous devons donc chaque fois calculer ces petites cases ici pour déterminer la distance ou la proximité de la déclaration. Bien sûr que non. Ce que nous allons faire, c'est que nous allons dessiner un cercle ici qui n'apparaîtra qu'en mode scène, mais pas dans le mode de jeu. Comment allons-nous faire cela ? Si nous y retournons et que nous avons quelque chose qui s'appelle les gadgets de tirage. Et vous pouvez le trouver dans la documentation Unity. Et là,
vous pouvez voir que nous avons quelque chose sous le comportement mono, qui est OnDraw gizmo select. Et vous pouvez voir ici l'implémentation OnDraw est sélectionné pour
dessiner l'objet gizmo est sélectionné. Remarquez ce que nous avons dit, si l'objet est sélectionné et que vous pouvez le voir ici, nous avons le test de gizmos et comment l'utiliser. Nous créons donc un gadget OnDraw vide. Et ici, nous pouvons créer la couleur gizmo afin de sélectionner la couleur que nous voulons dessiner. Et que voulons-nous dessiner, c'est la sphère. Nous pouvons donc cliquer sur la troposphère et la voir ici, c' est-à-dire que le public attire la peur, dessine une sphère solide avec un centre et un rayon. Nous allons donc mettre en œuvre cela. Et utilisez-le pour dessiner notre propre cercle ou sphère autour de l'ennemi et connaître sa portée. Et si nous regardons attentivement la méthode et que nous voyons ici que cela attire la peur, nous avons besoin d'un centre et d'un rayon. Quel devrait être le rayon ? Pensez-y pendant que nous créons cette méthode. Donc ici, nous allons dire sur les gadgets de tirage sélectionnés. Et nous allons d'abord choisir une couleur. Donc ce sera la couleur des points gizmos et elle sera égale à la couleur, disons le rouge. Gardez ça. Ensuite, nous allons accéder au gizmos dot Draw wire, sphère. Alors pourquoi une sphère dessine-t-elle une sphère filaire avec un centre et un rayon ? C'est donc un peu différent de la sphère, mais parce que nous jouons en 2D, nous n'avons pas besoin de dessiner toute la sphère, nous avons juste besoin du fil autour de celle-ci. Et voyons ce qui devrait être le centre. Le centre doit évidemment être la position du point de transformation ou transport est le transport de l'objet qui possède le contrôleur ennemi. Je sais que je l'ai dit un million de fois, mais pour ceux d'entre vous qui sont encore confus, je sais que j'étais un peu confus quand j'ai commencé à le
faire il y a quelques années, il y a bien des années. Et je me souviens, alors d'où est-ce que ça vient ? Eh bien, c'est la transformation de l'objet qui a le contrôleur ennemi dessus, qui signifie que c'est celui-ci, l'ennemi V. C'est le transformateur dont on parle ici. Quel est le rayon ? Eh bien, y avez-vous pensé ? Quel devrait être le rayon ? De toute évidence, c'est le champ de chasse du joueur. Nous allons sauver cela. Nous allons revenir dans Unity. Et bien, alors que le cercle que vous demandez peut-être, eh bien, si vous vous souvenez de quelques vidéos il y a quelques vidéos, nous avons désactivé les gadgets. Peut-être que vous l'avez déjà vu, vous ne l'avez pas remarqué, mais si nous cliquons dessus, nous y allons. Et pourquoi l'avons-nous éteint ? Parce que nous avions cet appareil photo et une icône ennuyeuse de la caméra. Ce que nous pouvons faire, c'est que nous pouvons ouvrir les gadgets. Vous pouvez voir que nous pouvons désélectionner beaucoup de choses ici, mais l'une des plus importantes est que nous pouvons rendre ces icônes un peu plus petites. Alors, tu y vas. Nous ne voyons plus la caméra gênante partir, n'est-ce pas ? Regardez donc ce grand cercle énorme. Allons le rendre un peu plus petit. Et vous pouvez voir qu'il change immédiatement. Je vais le rendre grand. Je vais mettre le joueur là. Et la prochaine chose que nous devons faire est de calculer la distance
entre le joueur et l'ennemi et de voir si elle est inférieure à la portée. Si c'est moins élevé, on peut commencer à courir après le joueur. Si ce n'est pas inférieur à, nous ne pourchassons pas le joueur. Quelle est donc la première étape à faire ? Eh bien, nous avons la portée, nous avons la position de transformation de l'ennemi. La prochaine chose dont nous avons besoin est une référence au joueur. Comment allons-nous obtenir la référence du joueur ? Eh bien, nous devons tout d'abord comprendre une méthode que je vais vous montrer, c'
est-à-dire l'objet point trouver des objets de type. Et ce que cela fait, l'objet t signifie qu'il dépend de l'objet que vous recherchez. Ainsi, lorsque vous trouvez l'objet, d devient ce type d'objet. Ainsi, l'objet, le premier acte d'objet chargé qui correspond au type spécifique. Il renvoie donc le premier objet chargé des types de type ou vous pouvez lui donner votre type. Et si nous regardons ici, nous pouvons en voir quelques exemples. Disons donc que nous voulons trouver le moteur de rendu Canvas. Si vous ne savez pas ce qu'est le moteur de rendu Canvas, ne vous inquiétez pas, nous y examinerons plus tard. Mais pour l'instant, regardez le moteur de rendu Canvas. Nous créons une variable de tuyau de rendu de canevas avec le nom Canvas, et nous utilisons un objet fini de type et nous obtenons le rendu du canevas. Nous avons donc maintenant une référence à ce sujet. Et parce que nous n'avons qu'un seul joueur, nous pouvons l'utiliser. Si nous avions plusieurs joueurs, nous ne pourrions pas l'avoir parce que, bien sûr, nous ne trouvons évidemment que le premier acte d'un. Alors regardez cette méthode, trouvez-la, étudiez-la, comprenez-la. Ensuite, vous devrez relever ce défi. Vous devez trouver l'objet joueur. Créez donc une variable de type transformée pour représenter le joueur que nous voulons
chasser et commencer à utiliser trouver des objets de type 2, trouver le joueur. Le type doit être la manette du lecteur. Pourquoi ? Parce que nous devons trouver un type spécifique de joueur. Alors, comment identifier le joueur ? Il est comme tous les autres objets. Qu'est-ce qui le rend unique ? Il ne s'agit pas seulement du nom que vous pouvez trouver à travers le nom, le corps ou l'on. Nous devons utiliser quelque chose de spécifique. Et c'est quelque chose de spécifique, c'est le script de la manette du joueur. C'est pourquoi le type d'objet que vous souhaitez trouver est la manette du lecteur. Et enfin, utilisez la transformation par points sur l'objet que vous trouvez et affectez-le à la variable que nous avons créée, la transformation par points. Vous devez le savoir car le type que nous allons créer est la transformation. Pourquoi se transforme-t-il ? Eh bien, parce que nous voulons prendre la distance. Comment pouvons-nous obtenir la distance ? Bien sûr, parce que c'est une transformation. Mettez la vidéo en pause dès maintenant. Allez relever le défi. D'abord,
nous allons commencer par créer une transformation privée et le joueur à chasser. À l'intérieur du début, nous allons dire que le joueur à chasser est égal à trouver des objets de type. Et le type que nous recherchons est la manette du joueur. Et quand on le trouve parce qu'on a déclaré deux Chase comme une transformation, on va juste accéder à la transformation immédiatement de ma part. J'espère donc que vous avez relevé le défi. J'espère que ce n'était pas trop dur. Je sais qu'il y a eu quelques astuces ici, même si c'est la première fois que vous utilisez l'objet de type find, je suis sûr que vous étiez au moins capable de faire cette partie si vous n'aviez pas pu comprendre cela, ne vous inquiétez pas à propos de cela était le temps venu, je comprendrai tout. Mais maintenant, la prochaine étape consiste à aller de l'avant et à calculer la distance. Je vais donc tout d'abord créer une déclaration if. Et puis je vais écrire le vecteur 3 points. Et vous pouvez voir que nous avons ici une méthode qui correspond à la distance et renvoie la distance entre a et B. Nous allons
donc ouvrir cela. Qu'est-ce que le A ? Ce sera la position du point de transformation. Et qu'est-ce que le B ? Ce sera le joueur qui va chasser la position des points. Vous y allez. Et quelle est la condition si la distance entre la position transformée, qui est l'ennemi et le joueur à chasser, c'
est-à-dire le joueur et sa portée de poursuite inférieure à V joueur. Ensuite, nous allons déplacer notre ennemi. Mais c'est pour une autre vidéo. Pour l'instant, je vais simplement utiliser le journal des points de débogage. Et je vais dire que le joueur est dans le champ Chase. Et une autre déclaration que nous dirons que dupliquer cette ligne, la déplacer vers le bas. Et ça va dire que le joueur hors de Chase est hors de portée. Sauvegarde ça dans notre jeu. Voyons ce que je veux juste faire quelque chose. Je vais rendre cela public juste pour l'instant, juste pour que nous puissions voir ce qui se passe. Vous remarquerez donc que sur l'ennemi en ce
moment , nous avons un joueur à chasser, mais il n'y a rien. Nous n'allons rien ajouter. On va juste diriger le jeu. Vous y allez. Vous pouvez voir que maintenant le joueur de la mort, si je clique dessus, il y a la référence et maintenant le squelette, notre ennemi a une référence au joueur. Je peux même lui tirer dessus. Je vais donc aller dans la console. Qu'est-ce que c'est faux ? Double-cliquez. Ok, donc celui-ci et le joueur sont hors de portée. Permettez-moi de placer la fenêtre
du jeu à côté de la scène lorsque celles-ci nous permettent de voir clairement le cercle ici. Donc si je m'approche assez près, on
y va, vous pouvez voir que maintenant le joueur est dans le champ Chase. Si je sors, le joueur est hors de portée. Si je vais jouer comme NJ étrange, voilà, tout fonctionne parfaitement bien. J'espère que ça vous plaira. Et la prochaine vidéo va réellement déplacer notre ennemi, pas seulement imprimer quelque chose dans le débogage, vers le journal. Permettez-moi de supprimer ce journal de points de débogage. Gardez ça. Permettez-moi de le rendre privé à nouveau parce que nous n'avons pas besoin de le voir. Je voulais juste faire une démonstration. N'oubliez pas de mettre en scène tous vos fichiers. Et avant de partir, qu'est-ce que je voulais aussi vous dire tous. J'espère que ça vous plaira. voit la prochaine fois.
24. Passer à le joueur: Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo. Et comme vous pouvez le constater, nous avons maintenant un cercle jaune. Que fait ce cercle jaune lorsque nous lançons notre jeu ? Vous pouvez voir que si je passe à l'intérieur du cercle jaune, rien ne se passe et que la vitesse de l'ennemi est un peu moindre. Si je vais dans le cercle rouge comme d'habitude, il commence à nous poursuivre. J'ai essayé de m'enfuir. Je suis dans le cercle jaune, mais il nous poursuit toujours. Que se passe-t-il ? Le seul moyen de gagner est de sortir du cercle jaune. Aussi, c'est ainsi que vous vous éloignez de l'ennemi parce qu'il a commencé maintenant il ne veut plus vous poursuivre. Ne perdons donc plus de temps. Commençons. Et j'ai oublié de vous dire que vous devez valider vos modifications à la fin. N'oubliez pas de le faire. Commençons donc k. Donc maintenant nous avons l'ennemi sachant où le joueur est basé sur une certaine distance qu'il se trouve de lui. Lorsque le joueur atteint une certaine distance, une certaine portée de chasse, l'ennemi le saura et il commencera à courir après le joueur. Eh bien, il ne fait pas ça physiquement, mais on peut voir d'après la logique et le code qu'il connaît, comment allons-nous faire ça ? Tout d'abord, nous allons déterminer la direction dans laquelle cet ennemi va se diriger. Donc, si la distance est inférieure à la portée de poursuite du joueur, je vais arrêter le débogage et je vais sauvegarder que la direction à suivre, elle sera égale à la portée de poursuite du joueur ou à la non-alignement Eclair pour chasser le calque à chasser position du point moins la position de transformation. C'est donc comme la formule que nous utilisons. Le 2 le canon et la bonne direction, nous choisissons la position, nous supprimons la position du joueur à chasser. Nous soustrayons la position de l'ennemi
du joueur pour chasser la position et nous obtenons ainsi la direction. C'est donc semblable à la façon dont nous montrons notre disparition, vous pouvez revenir en arrière et voir comment cela fonctionne. Maintenant, ce que nous allons faire une fois que nous connaîtrons la direction dans laquelle
nous nous dirigeons, nous allons normaliser cette direction. Parce que nous ne voulons pas que l'ennemi soit plus rapide lorsqu'il se déplace en diagonale. Nous normalisons donc. Ensuite, nous allons accéder au corps rigide. Ainsi, le corps rigide ennemi obtient la vitesse et il va être égal
à la direction pour déplacer n fois l'ennemi. Parlez. Gardez ça. Revenons maintenant à notre jeu. Voyons comment cela fonctionne. Je vais définir la vue du jeu à côté de la vue de scène afin que nous puissions voir comment fonctionne la plage. Quand nous serons à portée de
main, je vais lancer le jeu. Alors maintenant que je m'approche de l'ennemi, oui, on y va, rien ne se passe. Pourquoi est-ce que c'est ? Eh bien, parce que nous avons la petite erreur ici et que l'objet, nous n'avons pas de référence à la largeur. Pourquoi est-ce que c'est ? Parce que nous essayons d'accéder au corps rigide ennemi, mais nous ne l'avons pas défini. Ainsi, le corps rigide NMI, le point est égal à la composante de la dette, le corps rigide 2D. On y va. Bon, maintenant, tout devrait bien fonctionner. Arrêtons le jeu, relançons. Et maintenant, on se rapproche. Et voilà. Vous pouvez voir que l'ennemi est en train de nous poursuivre. Et de toute évidence, nous devons régler quelques problèmes, mais cela fonctionne. Que se passe-t-il si nous sommes hors de portée ? J'essaie de sortir de portée. OK. Cela ne fonctionne donc pas. Laissez-moi tout d'abord, au moins ça marche. Ce n'est pas parfait, mais ça marche. Laissez-moi régler celle-ci. Permettez-moi de réduire un peu la gamme parce que je veux démontrer quelque chose. Et faisons aussi la vitesse pour que nous puissions nous échapper. Je vais diriger le jeu. Je vais m'approcher de l'ennemi, puis je vais m'arrêter, je suis en piste. Comme vous pouvez le voir, l'ennemi marche toujours et finalement il frappe un mur. Alors, quel est le problème ici ? Le problème, c'est que l'ennemi aura toujours l'élan avec eux. Alors je m'approche, je m'éloigne. Et même si je ne le suis pas et que le champ de tir marche toujours sans esprit, maintenant, ce ne serait pas très mal s'il était un zombie, mais apparemment c'est un squelette, donc il devrait arrêter. Ok, je devrais arrêter de plaisanter. Et voyons ce que nous pouvons faire. Donc ici, ce que nous devrions faire, c'est que lorsque nous sommes à portée de main, nous pourchassons l'ennemi. Si nous sommes hors de portée, la direction à suivre sera égale au vecteur 3, 0. On y va. C'était la direction à suivre et le vecteur trois, accord, oui, c'était le cas. Alors, sauvegardez ça. Maintenant, lorsque nous sommes hors de portée, nous devrions cesser de courir après le joueur. Alors, laissez-moi savoir quoi. Utilisons une vue différente, une mise en page différente. Nous pouvons utiliser les deux par trois. Vous y allez. C'est également une bonne façon de voir le moteur Unity. Vous pouvez donc voir maintenant changer cela de trois aspects à 19 d'ici 1920 à 1080. Maintenant, nous pouvons voir clairement la vue de la scène et la vue du jeu clairement. Nous gérons le jeu et nous nous rapprochons du champ de chasse. On y va. Vous pouvez voir qu'il continue de nous poursuivre quand je suis hors de portée. Vous pouvez voir qu'il s'arrête immédiatement. Vous y allez. Vous pouvez voir dès que je suis là, il s'arrête. Quand je suis dehors, il arrête de courir après. Ok, super. Alors, qu'est-ce que cela a fait ? J'espère que ça vous plaira. Maintenant, nous pouvons agrandir le champ de chasse, car nous savons si nous nous éloignons suffisamment de l'ennemi. Vous y allez. Vous pouvez voir qu'il arrête de courir après les filles. Vous pouvez désormais ajouter une couche d'intelligence supplémentaire à l'ennemi si vous le souhaitez, vous pouvez créer une plage d'arrêt. Par exemple, supposons que nous ayons cette gamme, que
nous avons une autre gamme. Et si le joueur, si nous pouvons sortir de cette portée, le second, alors l'ennemi cessera de nous poursuivre. Et ce sera vraiment un défi pour vous. Alors, comment aimez-vous les transitions vers le défi maintenant, il y en a mieux, n'est-ce pas ? Je vous ai dépourvu là-bas, n'est-ce pas ? J'espère donc créer une variable de plage de poursuite continue. Vous devrez dessiner cette plage à l'aide des gadgets. Vous devez créer un booléen est à la poursuite. C'est vrai lors de la poursuite et faux lorsque nous sommes en dehors de la plage donnée. Enfin, vous devrez créer une déclaration else if qui vérifie si
nous poursuivons et que nous sommes à l'intérieur de la plage de poursuite continue. J'espère donc que vous avez compris le défi. C'est un peu dur. Il faudra un peu de configuration, mais je suis sûr que vous êtes à la hauteur du défi. Mettez la vidéo en pause maintenant et passez à l'affaire Shalon. La première chose que nous allons faire, c'est que nous allons créer une nouvelle variable ici, qui sera la poursuite continue. Et nous appellerons que le joueur garde la portée de Chase. Ensuite, nous créons un booléen. Et ici que nous allons appeler, je vais le rendre privé ou savoir quoi, allons le rendre public afin que nous puissions le voir et ensuite nous le rendrons privé. Et le booléen public est à la poursuite. Alors, la prochaine étape, quelle était la prochaine étape et le défi que nous voyons, dessiner ,
ok, donc nous allons dessiner le cercle ici. Je vais juste prendre ça et le dupliquer. Donc, Contrôlez D comme toujours, rendons-le jaune. Et ce sera la portée des pourchases. Gardez ça. Et maintenant, que devons-nous faire ensuite ? Nous devons créer un booléen comme traçage avec cela. Et d'accord, alors quand est-ce vrai ? C'est vrai ici lorsque nous sommes à l'intérieur du champ de tir et que nous commençons à attaquer le joueur. La poursuite est donc égale à vraie. Alors, que se passe-t-il si nous sortons de cette fourchette ? La poursuite devient fausse. Mais entre les deux, nous voulons créer un si autre ou sinon, si. Sinon, si le vecteur ou la distance entre le joueur et l'ennemi est toujours inférieur à v0, conservez la portée de Chase. Et donc c'est pour, c'est courir après. Ce que nous allons faire, c'est que nous allons garder la direction telle qu'elle est. Vous y allez. Sauvons ça. Regardons encore une fois ce code et voyons si tout fonctionne. Nous avons donc créé la gamme, nous l'avons rendue jaune. Ce qui se passe ici, c'est que lorsque le joueur entre dans la plage de chasse, la direction deviendra le joueur à chasser. Et ensuite, nous allons mettre la poursuite à vrai. Ensuite, nous allons vérifier si le joueur peut
sortir ou s'il se trouve toujours à l'intérieur de la plage Keep Chase. Et nous poursuivons, alors nous aurons la direction de bouger et toujours dans le joueur. Sinon. Si nous sommes à l'extérieur, les deux joueurs poursuivent la portée et ils gardent la portée de Chase, alors la poursuite est fausse. Et ce qui est génial, c'est que si nous entrons à l'intérieur du joueur, gardez
la portée de Chase, l'ennemi ne nous suivra pas car il est fausse. Voyons donc si cela fonctionne réellement. Et je vais augmenter la portée de Keep Chase. Allons-y. Oui, on y va. Je pense que c'est assez bien. Je vais diriger le jeu. Et maintenant, voyons si je marche à l'intérieur de la gamme Keep Chase. Rien ne se passe. Si je marche à l'intérieur du champ de chasse, l'ennemi commence à courir après. Si c'est le cas, je peux vraiment le pousser. Si je suis en dehors du champ de chasse, il me suit toujours. Que se passe-t-il si je vais en dehors des deux gammes ? Il arrête de suivre. Et vous pouvez voir ici que la poursuite est fausse. Donc, il ne me poursuit pas. Quand la poursuite est-elle vraie ? Il continue à courir jusqu'à ce que je sorte du cercle jaune. J'espère donc que vous allez relever le défi. J'espère que ce n'était pas trop dur. Je sais que lorsque j'ai fait ce défi, j'ai senti que c'était peut-être un peu trop difficile, un peu trop déroutant. Mais j'espère que vous avez compris l'intérêt du booléen. J'espère que vous avez compris comment l'autre si les déclarations ici fonctionnaient. Si vous n'avez pas reregardé la vidéo, je pense que je l'ai assez bien expliqué, alors j'espère que cela vous plaira et je vous verrai dans la prochaine vidéo où nous allons réellement animer notre ennemi. Parce que, comme vous pouvez le constater, il est très ennuyeux actuellement. ici là, passez une belle journée et je vous verrai alors.
25. Animer des Enemy: Bienvenue à mes collègues développeurs de jeux une toute nouvelle vidéo où nous ajouterons des animations à notre ennemi. Écoutez, il est au ralenti. Je suis au ralenti. Si je m'approche assez près et que je remarque qu'il regarde mon chemin. Si je m'approche assez près, vous y allez. Vous pouvez voir qu'il commence à marcher, commence à essayer de me tuer. Je peux encore le repousser. Je me suis enfui. Il se tient là. Je me suis enfui. Il s'arrête. Il commence à ouvrir les yeux. Je m'approche. Il a commencé à enseigner. Je peux lui tirer dessus. Il ne ressent rien. Ok, alors arrêtons de perdre du temps et commençons à animer nos ennemis. 0 cas. Nous allons donc animer notre ennemi. Donc, si nous allons dans les sprites et les ennemis,
le monstre, les monstres, et que vous avez le squelette et que vous avez tous ces différents sprites. Donc, ce que je vais faire, c'est que je vais aller de l'avant et disséquer tous ces éléments. Et je vais juste vous montrer comment je vais faire cette animation différemment. Ensuite, vous allez faire tout le reste car vous savez déjà comment créer des animations. Maintenant, la seule différence cette fois, car je vais aller de l'avant et faire les animations immédiatement sur le corps. Et je vais ensuite accéder à l'animateur à partir de l'écriture du script ennemi. Nous allons accéder à l'animateur sur le corps. Pourquoi ? Honnêtement, il est toujours préférable d'utiliser les animations et de les créer comme nous l'avons fait avec le doom player. Mais d'une part, je pense qu'un changement dans la façon dont nous créons les choses
vous donnera une meilleure perspective et une meilleure compréhension du fonctionnement des choses. De plus, nous avons la chance d'utiliser une nouvelle méthode, qui consiste à obtenir le composant et l'enfant, que je voudrais vous montrer toutes les méthodes possibles et exactement comme cela. Nous allons donc ajouter un composant et ensuite vous pouvez choisir le meilleur moyen pour vous. Alors que la fenêtre d'animation, d'accord, passons à Windows. Donc, lorsque nous changeons la mise en page, l'animation a peut-être disparu. Je vais définir l'animation ici. Je vais créer une animation sur le corps de l'ennemi. Ainsi, créez et les ennemis actifs des animations, cliquez avec le bouton droit de la souris, créez le squelette et les animations. Ce sera le squelette. squelette au ralenti. Gardez ça. Je vais choisir le ralenti. Où est-il ? Je vais tous les choisir, les
traîner ici. Alors maintenant, quand on court, on voit qu'il tourne au ralenti très vite. Il est extrêmement excité à l'idée d'être au ralenti. Je vais les déplacer. Voyons à quoi ça ressemble. Et pour une raison quelconque. Je pense donc que le premier et deuxième sont les mêmes. Et pourquoi est-ce que c'est ? C'est ça. Alors, courons. Non, attends. Oh, d'accord, donc le premier, deuxième 1 pour une raison quelconque que je n'ai pas choisi le cygne. Ne vous inquiétez pas. Allons-y et faisons-le. Ok, super. Vous pouvez donc voir que le dernier est déjà similaire au premier. Ou non. Copions ça. Définissez-le comme le dernier. Voyez à quoi ça ressemble. Oui, on y va. Cela semble beaucoup mieux. Devrions-nous accélérer les choses ? Je ne sais pas. Mais nous allons sauver ça. Et celui-ci est l'entrée. Je voulais juste vous montrer comment nous faisons cela. Nous allons continuer et j'ai mal écrit le squelette, pas de soucis à ce sujet. Et nous allons continuer ainsi sur le corps. Et puis je vais utiliser la magie de l'édition pour faire tout cela en quelques secondes. Mais vous prenez votre temps, créez la tranche d'animation des sprites. Et j'allais vous montrer un défi qui consiste à choisir l'un des ennemis. Ce n'est pas forcément le squelette. Créez donc l'attaque marchande de la CIM-10. Vous avez l'attaque de lancer une âme et vous avez l'animation de lancer l'épée. Je crois donc qu'il y a une animation de lancer d'épée. Mettez la vidéo en pause dès maintenant. Slimace les sprites, crée les animations. Je vous verrai juste un peu. Hé, comment as-tu réussi avec ça ? J'ai donc découpé des sprites. J'ai créé des animations. Laissez-moi vous montrer ce que j'ai fait. Si je clique sur l'ennemi, sur le corps,
vous pouvez voir que je suis au ralenti, attaquant, en marche et en lançant le genre. Je lance donc l'épée, juste comme ça. J'attaque ce type. Courir et marcher assez facilement. C'est ainsi que j'ai tout fait. J'espère que ce n'était pas trop dur pour vous. J'espère que vous vous êtes assuré qu'ils étaient tous 150 sur 150. Vous pouvez donc voir que toutes les tranches doivent être exactement les mêmes, comme je vous l'ai dit quand nous étions en train de couper le jeu. Ok, et laissez-moi vous montrer l'animateur pour que vous puissiez voir que j'ai tous ces quatre maintenant, nous ne ferons rien. On ne va pas nous jeter le sel, sinon l'attaque du squelette gardera cela pour. Plus tard, nous allons marcher. Je vais donc créer une transition entre le squelette marchant et le squelette au ralenti. Je vais choisir les deux en maintenant le contrôle, en choisissant les deux. Supprimez à l'heure de sortie des deux, supprimez la durée de transition sur les deux. Je vais créer ici un paramètre qui va être appelé marche. C'est donc la même chose. Oh, non, attends, j'ai créé le mauvais paramètre. J'ai créé un calque. Je vais créer un paramètre booléen ici. Tu y vas, et je vais rester. Ok, donc je suis dans cette transition, je vais ajouter les paramètres ici. Donc si je marche est vrai, nous commençons à marcher et à marcher, faux, j'arrête de marcher. Dis tout ça. Revenons maintenant à notre scène et ouvrons nos scénarios ici. Alors, que devrions-nous faire ? La première chose dont nous avons besoin, c'est une référence à l'animateur. Donc, dans le contrôleur ennemi ici, je vais créer un privé et ce sera l'ennemi. Et il a fait vers ça, oups, c'est de type animateur. Et il peut, pour sauver ça. Je vais chercher le composant. Mais comme vous l'avez vu, l'animateur n'est pas vraiment sur l'ennemi, donc je ne peux pas y accéder. Lorsque je, comme nous l'avons dit, Obtenir
le composant, les composants doivent être sur le même objet que le script. Donc, pour résoudre ce problème, je vais devoir accéder à l'animateur sur le corps. Pour ce faire. Je vais simplement dire que l'animateur, je veux dire l'animateur ennemi, est égal à obtenir une composante chez les enfants. Et vous pouvez voir maintenant, laissez-moi finir ça. Passons le survol. Ok, donc il n'y a pas d'explication,
mais je pense que c'est assez explicite comme celui-ci,
mais chez les enfants, nous trouvons donc l'animateur chez les enfants, et parce que nous n'avons qu'un seul animateur, ce n'est pas un problème. Mais nous l'utilisons avec précaution. La prochaine chose que nous allons faire, nous allons vérifier quand nous ajouterons une vélocité. Donc ici, nous allons vérifier si la direction à déplacer est différente du vecteur 0 ou du vecteur 3, excusez-moi, car celui-ci, je me souviens que c'était un facteur trois. Oh, tu y vas. Comment cela a-t-il été complété automatiquement ? Je ne sais même pas. Je vais accéder au jeu de points animateur ennemi Bool. C'est donc extrêmement facile. Je crois que nous sommes tous prêts à le faire. Vous avez donc juste un petit pic dans les coulisses. Copiez ceci, collez-le ici, et nous allons le définir sur vrai. Ensuite, déclaration d'autre. Nous allons dupliquer cette ligne
ici et la définir sur false et supprimer l'espace blanc supplémentaire. Que se passe-t-il ici ? Dès que nous avons la direction à suivre, c'est différent du vecteur 3 0. L'animation marche est vraie et nous passons à l'animation. Si nous ne marchons pas, c'est faux. Ok, super. Essayons cela dans notre jeu. Mettons l'animateur. Où devrions-nous tous les mettre ? Gardons-le ici. Game, lancez le jeu. Voyons voir. Bon, donc l'ennemi est au ralenti. Si je m'approche de lui, il commencera à marcher. Et voilà. Vous pouvez voir qu'il marche, mais il y a un léger problème. J'ai l'impression qu'il y a quelque chose. D'accord. Il est donc un peu plané. Pourquoi est-il toujours en train de planer, n'est-ce pas d'accord ? Il est donc évident que nous n'avons pas supprimé le temps de transition de celui-ci. Lancez à nouveau le match, il devrait commencer à marcher immédiatement dès qu'il commence à bouger. Vous y allez. Il marche vers nous. Excellent. Maintenant, une autre chose que nous devons prendre une flèche et c'est la direction que l'ennemi regarde. Je vais donc faire une chose similaire, comme ici. Si la position de la souris n'agit pas de la même manière que nous avons retourné notre joueur, nous allons retourner notre ennemi. Mais au lieu de regarder le point à l'écran, nous allons comparer la direction ou le x du joueur aux actes de l'ennemi. Donc, si la couche à chasser le point, le joueur à chasser la position du
point, le point x est inférieur à la position xtransform.py. Ce que nous allons faire, c'est que nous allons accéder à l'échelle locale de transformation. Et ça va être égal à un nouveau vecteur 3 et moins 1 f. Qu'est-ce que c'est ? Moins 1 f. Et nous garderons la même chose. Et les Z, Z, Z, Z, comme vous voulez l'appeler, la même chose. Sinon, si le joueur est de l'autre côté, l'échelle locale de transformation est égale à un nouveau vecteur, trois points un. Si je ne me trompe pas, numéro 1 ,
quel est le problème ? Vecteur 3. D'accord. Donc, je ne devrais pas mettre, laissez-moi voir. Bon, donc pas de nouveau, excusez-moi. Donc, chaque fois que nous ne créons pas de nouveau vecteur 1, nous avons juste un vecteur que nous définissons l'échelle locale pour le sauvegarder dans notre jeu. Voyons cela en action. Lancez le jeu. Et voilà. Vous pouvez voir qu'il regarde dans la bonne direction. Dès que nous nous approchons, il commence à marcher vers nous. Ok, super. J'ai essayé de m'enfuir. Il nous regarde et il continue de courir après. Maintenant, le seul problème que j'ai remarqué est que l'ennemi frappe les murs ou tout comme nous l'avons déjà rencontré. Rappelez-vous quand nous voulions avoir les ennemis. Ainsi, à cause du collisionneur sur l'ennemi, il ne peut pas passer devant ce mur ici, vous pouvez voir ce sont ses limites. Si vous souhaitez rendre votre jeu plus détaillé, je vous recommande d'ajouter deux collisionneurs, comme nous l'avons fait sur le Doom Player. L'un d'eux sera juste pour se faire entendre. Le second sera juste là où nous marchons. Où est notre limite ? N'hésitez pas à le faire. Je vous encourage à le faire. C'est votre jeu. Vous pouvez le rendre aussi parfait que vous le souhaitez. Cela étant fait, nous allons évidemment tout mettre en place ici. Vous pouvez voir combien d'animations j'ai créées. J'espère que ça vous plaira. Je vais mettre en scène tout cela et je vous verrai dans la prochaine vidéo où nous allons réellement endommager notre ennemi. On peut actuellement le tirer dessus, mais il ne ressent rien. C'est ce que nous allons régler à l'avenir. Et je vous recommande de créer également l'animation pour le ticket et l'animation pour les sourds, ce qui sera très amusant de faire la prochaine vidéo. Je vous verrai alors.
26. Enemy de nuit (méthodes): 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.
27. Splatter de sang: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, comme promis, nous avons ajouté un peu de brutalité à la façon dont notre ennemi meurt. Alors maintenant, quand je lui tire dessus avec des balles DO, regardez ce qui se passe. 1, 2, et vous pouvez voir le sang éclabousser de lui. Maintenant, même s'il est un squelette,
techniquement, il n'a pas de sang. Mais utilisons notre imagination et trouvons quelque chose. Quoi qu'il en soit, ne perdons plus de temps. Le défi de cette vidéo sera comme, disons moi contre vous qui pouvez relever le défi plus rapidement. J'ai donc besoin de toute votre attention et de votre concentration. Ne perdons plus de temps. Commençons. Ce qui est un nouveau type de défi. Et qui peut en faire plus rapidement ? Pourquoi ? Parce que vous avez tous les outils nécessaires. Nous faisons quelque chose que nous avons fait plusieurs fois auparavant. Mon objectif en ce moment est donc de voir qui peut le faire plus rapidement. Pouvez-vous le faire plus vite que moi ? Et nous allons avoir une petite pétition de tasses avant de commencer à créer des sprites éclaboussures. L'animation crée donc un champ sérialisé de l'éclaboussure de mort, où devrait-elle être ? Et enfin, avant de détruire l'ennemi, nous allons instancier cette éclaboussure de mort. J'espère donc que vous serez à la hauteur du défi. Ne perdons plus de temps et commençons. Ne mettez pas la vidéo en pause. Allons-y. Allons-y. D'abord, pas pression, pas de pression. Ce n'est pas comme si vous alliez contre l'instructeur. Quoi qu'il en soit, des éclaboussures de sang, nous sommes à l'intérieur de ce Bright. Je vais aller ici et nous avons déjà tout tranché. Je vais ajouter ce fichier s'ouvrir. On y va. Vous pouvez le voir ici. Allons de l'avant et cliquez avec le bouton droit de la souris pour créer un objet de jeu vide. Je vais réinitialiser sa position ici. Je vais aller de l'avant dans les animations, super animation. Cela figurera dans les ressources et les animations. Cliquez avec le bouton droit. là que tu y vas. Côté V, cliquez avec le bouton droit. Oh, non, tellement d'éclaboussures. Après. Ennemi. Un nom très long pour une animation. Maintenant, je vais choisir tous les sprites, allez-y et ajoutez-les ici. Lançons ça et voyons à quoi ça ressemble. Bon, c'est beaucoup. Je vais donc choisir tout cela et peut-être rendre les pixels par unité un peu plus, peut-être 120 ou 150. Appliquez cela. Essayons à nouveau cette animation. livre. Oh, d'accord. Il est un peu plus petit. Allons-y dix secondes. D'accord. Peut-être que je vais même le garder pendant 20 ans. Voyons voir. Bon, donc je pense que 20 c'est assez bien. Allons-y, allons-y, allons-y. La prochaine chose que nous allons faire, c'est que nous allons entrer dans le contrôleur NMI ici. Nous aurons une référence à l'éclaboussure de sang. Je vais aller de l'avant et après les dégâts. Donc le champ sérialisé, qui va être le mûr, appelle ça un objet de jeu comme l'éclaboussure de mort. Pourquoi le beurre ? Je n'en suis même pas sûr. Je vais juste le garder à la fin parce que tous les effets, il est toujours préférable d'ajouter les effets à la fin. Gardez ça. Que devrions-nous faire d'autre lorsque nous sommes détruits ici ? Ou, oh, j'ai une énorme erreur de ma part, pas dans la manette du joueur ici et l'ennemi, sauf ça. Oh, d'accord, donc vous avez maintenant une longueur d'avance sur moi à cause de mes erreurs stupides. Pas de soucis, nous sauvegardons ce défilement jusqu'à l'ennemi. Où est-il mort avant qu'il ne soit détruit, je vais instancier l'éclaboussure sourde à la position du point de transformation. J'espère donc que vous êtes bien sur votre route parce que j'ai presque fini de transformer la rotation des points et peut-être que vous m'attendez en riant. Donc, sauf que tout va bien. Retournez ici, l'objet du jeu, c'est les éclaboussures de charge. Gardez ça. Et l'ennemi aussi, nous allons préférer cela, donc nous allons passer aux remboursements. On y va. Du sang s'est éclaboussé, ajouté et voilà à l'ennemi. Il se fait retirer les éclaboussures de mort de la hiérarchie, sauf ça, exécuter le jeu. L'ennemi doit-il deux fois ? Il le fait. Et je peux voir les éclaboussures de sang, mais oh, je pense que nous avons oublié de nous assurer que le moteur de rendu de sprite est sur où devrais-je l'ajouter ? Lequel, ou je peux ajouter un calque de tri. Voyons voir, réfléchissons à cela une seconde. Je peux ajouter 0, donc les ennemis, d'accord, super. Donc, pour l'ennemi, sauve ça. Et maintenant, lorsque nous tirons deux fois sur l'ennemi, nous devrions voir le sang. Ok, super. Donc, mais comme vous pouvez le voir, nous l'avons en boucle. Je vais donc aller dans les animations, faire du sang et retirer le temps de la boucle, sauver ça, relancer le jeu. Et nous devrions avoir une
très belle touche de sang. Et voilà, disparaît. Nous devons nous assurer qu'il y a quelques inconvénients. Donc, à la fin, nous voudrions peut-être aller de l'avant et détruire cela. Pour ce faire, passons à nos scripts ici. Et nous avons déjà créé une sorte de script qui était le destructeur d'effet d'impact. Au fait, on peut aller de l'avant et aller dans les Prefabs, choisir les éclaboussures de sang. Nous avons ce petit verrou ici, donc cela ne fait plus partie du défi. C'est quelque chose de plus qui va s'ajouter. J'ai même oublié la destruction de cela. Et nous pouvons aller de l'avant et ajouter l'effet d'impact, destroyer, destroyer. Maintenant, je peux y accéder ici et je peux lui dire que lorsque nous arriverons à la dernière image et que
nous pourrons peut-être même la garder quelques millisecondes ici, donc le sang est sur le sol. Une fois terminé, nous ajoutons ce petit fait, supprimons le verrou et l'événement d'animation. Quel est le problème ici ? Une sorte de clé, elle est ouverte. Ok, donc nous avons détruit le sang, mais pour une raison quelconque, le sang éclaboussant après l'ennemi. Salut, bon retour. Il y a donc eu un petit problème quand j'ai ajouté l'événement, j'ai eu quelque chose de différent. Le problème était que si vous n'avez pas d'éclaboussures de sang, par
exemple, dans la hiérarchie, lorsque vous ajoutez un événement, cela semble un peu bizarre. Laissez-moi vous montrer encore une fois. J'ai donc choisi les éclaboussures de sang et l'animation a choisi les éclaboussures de sang. Vous pouvez donc voir qu'il n'y a pas d'animation. Nous devons d'abord l'ajouter ici dans la hiérarchie et dans notre scène. Ensuite, nous pourrons aller de
l'avant et ajouter le petit événement que je fais encore une fois. Alors, tu y vas. Et environ 50 ans, je vais ajouter cette fonction ici. Je vais accéder à la destruction, sauver ça, lancer le jeu. Maintenant, je tue l'ennemi avec deux balles. L'éclaboussure se produit livre, puis il est enlevé tout seul. Nous ne l'avons plus dans notre hiérarchie. J'espère que ça vous plaira. J'espère que vous avez relevé le défi. Vous ne l'avez peut-être pas fait aussi vite que moi. Vous mettez en pause la vidéo, vous avez essayé plusieurs choses vous-même. C'est un peu avancé. Tout ce que nous avons utilisé, nous connaissons déjà l'instanciation. Quel est l'effet que nous avons créé, l'animation, la position transformée, tout ce que nous avons fait, peut-être le seul défi, peut-être que vous ne saviez pas où vous auriez dû l'ajouter. Peut-être avez-vous ajouté après la destruction. Je ne pense pas que cela fonctionne si vous l'avez ajouté après avoir détruit si bien fait, assurez-vous de commettre vos changements, j'espère que vous avez apprécié. Et dans la vidéo suivante, nous allons ajouter de la brutalité à la façon dont nous blessons notre ennemi. Donc, actuellement, quand on lui tire dessus, il ne ressent rien, mais on va s'assurer qu'il le fait. Et au fait,
nous avons aussi l'animation de la mort que vous pouvez créer pour l'ennemi et qui lui a été ajoutée quand il meurt, une sorte de déclencheur. Peut-être que nous le ferons plus tard. Si vous ne voulez pas trop tard pour mon paresseux derrière, vous pouvez aller de l'avant et le faire maintenant entre deux vidéos. Je vous verrai donc dans le prochain.
28. Effet de sang de Enemy Enemy: Bienvenue à mes développeurs de jeux préférés dans une toute nouvelle vidéo très longue. Et celle-ci, nous avons créé des animations pour le sang. Nous avons appris à connaître les tableaux. Et maintenant, vous pouvez voir dans la hiérarchie lorsque nous tirons sur notre ennemi, vous pouvez voir que différents types de sang sont instanciés. Donc, par exemple, maintenant le sang pour lequel nous avons le sang, puis nous avons les trois. Alors, que se passe-t-il ? Nous avons beaucoup de Bloods et ils
instancient au hasard parce que nous utilisons un tableau. Donc, ne perdons plus de temps et commençons. Il est donc temps d'ajouter un peu d'effet de troupeau à nos ennemis. Allons de l'avant et tout d'abord, créons tous ces effets. Je vais donc aller dans les sprites, nous avons les éclaboussures de sang. Je vais créer un dossier pour les éclaboussures d'impact sanguin. Nous aurions peut-être dû appeler cela la mort, mais pas de soucis, nous appellerons cela les éclaboussures d'impact. Nous savons donc que la France et moi allons aller dans les ressources et vous pouvez voir que je vous ai fourni plus de sang. Vous pouvez soit les utiliser et les découper, soit vous pouvez utiliser ces cinq ici. Alors choisissons-les tous et faites-les glisser vers le bas dans le dossier ici. Pourquoi les utilisons-nous tous ? Parce que nous voulons avoir un peu de diversification entre les 1D 2D, 3D et cetera. Vous pouvez donc voir que chacun d'entre eux est juste un peu différent des autres. Je vais donc sauvegarder ça et je vais créer les animations. Et c'est assez facile, je pense. Je vais donc faire avec et utiliser la magie de l'édition pour le faire en 1 seconde. Alors, ok, bienvenue. Alors, comment avez-vous eu tout ça ? Laissez-moi vous montrer ce que j'ai fait. Tout d'abord, j'ai créé cinq sang pour les
55 de l' impact sanguin que nous avons maintenant, ils ne sont pas très différents les uns des autres, mais il y a une légère différence. Donc, lorsque nous exécutons cela, vous pouvez voir que c'est le premier. C'est le deuxième qui est un peu différent. Le premier est un peu plus éclaboussant. Le troisième, voyons voir. Vous pouvez voir qu'il tombe plus que le second. Vous pouvez donc voir que c'est les deux. Celui-ci est trois. C'est un peu plus en train de tomber. Je ne sais pas comment l'appeler. La quatrième, on peut voir qu'elle est très petite et très concentrée. Et le cinquième que vous pouvez voir est très GUI. Alors, qu'allons-nous faire ? Nous allons sauver tout ça. Je vais aller dans les Prefabs ici et je vais créer un dossier pour
les éclaboussures de cils adossés et je vais faire glisser le sang 1, 2, 3, 4 et 5. Je vais sauver tout ça. Je vais les supprimer de la hiérarchie. Et maintenant, nous avons le sang ici. Maintenant, je pense que nous devrons probablement les détruire et juste un peu, mais pour l'instant, pas de soucis à ce sujet. Nous réglerons ce problème lorsque le problème se posera. Alors, qu'allons-nous faire ? Nous voulons instancier ces sang chaque fois que l'ennemi est blessé ? Et la façon dont nous y parvenons, c'est d'abord en obtenant évidemment une référence à cela, comme nous l'avons fait avec les éclaboussures de mort. Cela s'appellera donc l'effet de dégâts. Pour les dégâts. L'effet de dégâts. Gardons ça ou tu peux appeler les éclaboussures de sang comme tu veux. Et maintenant, ce que nous allons faire, c'est que nous allons simplement l' instancier chaque fois que nous sommes blessés. Donc, ici, nous allons dupliquer cela. Déplacez-le un peu vers le haut. Et si vous vous rappelez comment nous dupliquons Control D, comment avons-nous très bien déplacé cela en maintenant la touche Alt enfoncée et en utilisant les touches fléchées. Alors maintenant, nous instancions v. Que devrions-nous instancier l'effet du dommage ? Et c'est sur la position de transformation du. Je vais donc sauver tout ça. Je vais retourner dans notre jeu. Je vais choisir l'ennemi ici, nous avons l'effet néfaste, et choisissons un ennemi bleu. Gardez ça. Et maintenant, nous allons lancer le jeu. Et maintenant, je vais tirer sur notre ennemi. On y va. Vous pouvez voir le sang. Il est évident que c'est répété. Bon, maintenant, nous devons commencer à instancier ces effets chaque fois que l'ennemi est blessé. Alors, où instancions-nous l'effet ou les effets d'impact des puces ? Eh bien, nous les instancions dans le contrôleur de puces de couche. Vous pouvez donc voir que c'est là que nous les instancions. Maintenant que voulons-nous faire chaque fois que nous heurtons un mur, nous avons cet effet d'impact de balle. Mais chaque fois que nous frappons un ennemi, nous voulons avoir une sorte d'effet de charge. Je vais donc dupliquer cette ligne ici. Et je vais appeler ça le mûr. J'appelle ça le fait des dommages. Parce que cela signifie qu'il y aura une sorte de dégâts
lorsque nous aurons des dommages , ce qui signifie qu'il y a du sang, ce qui signifie qu'il y a quelque chose de différent. Et ce que nous allons faire ici, c'est que chaque fois que nous touchons un ennemi, je vais ouvrir les crochets. Et je vais ajouter ici que nous instancions et instancions effet de dégâts sur
la position de la transformation et la rotation de la transformation. Mais ce que nous ne voulons pas avoir, c'est lorsque nous
frappons l'ennemi et que nous continuons d'instancier un effet de balle. Ce que je vais faire, c'est que je vais faire une autre déclaration ici. Et je vais faire passer toute cette ligne dans cette autre déclaration. Comment est-ce que je fais ça ? En maintenant la touche Alt enfoncée et en utilisant les touches fléchées sur l'une des lignes que je veux déplacer. Alors, que se passe-t-il lorsque la balle a une collision ou une collision et que cette collision porte l'étiquette d'un ennemi, alors nous aurons cette éclaboussure de sang et nous aurons accès au contrôleur animal et infligerons des dégâts. Si ce n'est pas le cas, si ce n'est pas l'ennemi, ce qui signifie que nous frappons, je ne sais pas ce que c'est. Nous allons avoir l'effet balle et le dos. Je vais donc sauver ça. Je vais y retourner. Et ici, je vais chercher ma balle dans les préfabriqués, la balle
préfabriquée V bilayer ici,
nous devrions avoir le joueur, nous devrions avoir le joueur, mais je devrais avoir l'effet de dégâts. Je vais verrouiller ça dans l'inspecteur que vous ayez cette petite connexion ici, vous pouvez cliquer dessus. Maintenant, peu importe ce que vous appuyez, vous ne changez pas par rapport à l'inspecteur du livre de lecture. Et c'est utile. Pourquoi ? Parce que nous pouvons maintenant ouvrir ce fichier, choisir celui de sang, et l'ajouter ici dans les dégâts des faits, sauvegarder tout cela, lancer le jeu. Et maintenant, nous devrions voir que lorsque nous tirons sur le mur, nous avons cet impact. Quand on tire sur un ennemi. On y va. Nous avons le sang qui se répète, ce qui signifie que nous devrons changer les animations. Et je ne vous ai pas dit que j'ai créé des animations. Je peux simplement supprimer ça. Laissez-moi supprimer ce dossier. Je l'ai eu par erreur. Alors, en éclaboussez un, retirez-le. Splash pour enlever cela de la boucle du,
oups, je l'ai allumé par erreur. Éteignez-le. Éteignez. Alors, tu y vas. Nous avons toutes les animations qui ne sont pas en boucle, d'accord, sauf ça, lancez le jeu maintenant quand nous devrions l'ennemi, nous devrions voir les éclaboussures de sang. Ok, donc c'est très bien et dandy et tout va bien. Mais nous avons cinq faits pour une raison. Comment allons-nous nous assurer que l'un d'entre eux est rendu ? Et non seulement cela, comment allons-nous nous assurer qu' un nombre aléatoire de ces données soit rendu ? Nous avons donc besoin de plusieurs objets de sang ici. Maintenant, ce que nous pouvons faire, c'est que nous pouvons simplement aller de l'avant et dupliquer cela cinq fois. Dégâts 123, etc. Nous avons
donc cinq dégâts que nous pouvons appeler aléatoirement. C'est une solution, mais ce n'est pas la solution optimale, car par exemple, supposons que nous voulions peut-être avoir 17 effets de dégâts. Devons-nous aller de l'avant et créer 17 variables ? Eh bien, vous pouvez, mais tout d'abord, c'est très encombrant. Deuxièmement, ce n'est pas une bonne façon d'utiliser les ressources. Quelle est la bonne façon d'utiliser les ressources comme création d'un tableau ? Qu'est-ce qu'un tableau ? Un tableau vous permet de stocker plusieurs objets du même type dans une seule variable. Nous pouvons donc aller de l'avant et créer un int. Par exemple, un tableau d'entiers, par
exemple, qui correspond au nombre d'ennemis. Je peux donc stocker, par exemple, 4, 6, 11 et 71. Et chacune de ces petites données se trouve dans le tableau. Vous pouvez voir que nous avons tout d'abord le type comme une variable,
mais la seule différence, c'est que nous ajoutons ces deux crochets. Nous avons le nom et nous avons les valeurs. Et chacune de ces valeurs est ou possède un index à l'intérieur. Par exemple, les quatre sont indexés à 0. Et rappelez-vous que nous commençons toujours l'indexation à 0, pas à 10. Les six sont à l'index un, le 11 est à l'index deux et les trois sont à l'indice. Je veux dire, 71 est à l'indice 3 et nous pouvons en avoir autant que nous le souhaiterions. Maintenant que vous comprenez un peu ce que sont les tableaux, et encore une chose, nous pouvons déterminer la longueur d'un tableau. Par exemple, la longueur de ce tableau est de quatre, car nous avons quatre valeurs. Donc, hors du chemin, cette petite explication, essayons de l'implémenter un peu et vous pouvez voir comment cela fonctionne. Je vais donc revenir en arrière et l'unité ou en fait pas ici. Et comment convertir cet effet de dommage en tableau ? Nous ajoutons simplement ces deux crochets. Et maintenant, je pense qu'il est approprié de nommer cet effet non pas un effet de dommage, mais des effets de dégâts avec un S à la fin, car c'est au pluriel maintenant. Nous utiliserons donc notre outil pratique de contrôle ou, ou, et nous ajouterons simplement un S à la fin, appuyez sur Entrée. Maintenant, l'effet de dégâts est différent ici, mais vous pouvez voir que l'instanciation est désormais fausse. Pourquoi ? Parce que nous essayons d'instancier un tableau d'effets qui ne fonctionne pas bien, mais nous allons corriger cela, ou en fait, vous allez le corriger plus tard dans le défi. Tout d'abord, ajoutons tous les dégâts et voyons à quoi cela ressemble chez l'inspecteur. Donc, si je vais à ma balle, dans la balle du joueur des préfabriques, vous pouvez voir ici, où est-ce ? Donc, quelque chose ne va pas. Quel est le problème ? Et la console ? Double-cliquez et voyons. Oh, laissez-moi juste commenter ça. Enregistrez que parfois, lorsque vous rencontrez une erreur, le script ne s'assemble pas correctement. Maintenant que nous résolvons ce problème, et nous pouvons voir ici que nous avons des effets de dégâts, pas un seul élément, mais nous pouvons l'ouvrir et avoir une liste d'éléments. Ce que nous pouvons faire, c'est que nous pouvons dire que la taille de la baie est de deux. Appuyez sur Entrée. Maintenant, nous avons deux éléments, ou nous pouvons le faire à l'ancienne et toucher le plus ici et ajouter un objet. Mais je vais vous montrer un truc encore plus astucieux. Je vais enfermer l'inspecteur ici. Je vais aller voir mes préfabriqués. Je vais cliquer sur le premier, maintenir enfoncé, décaler, cliquer sur le dernier. Je les ai tous sélectionnés et je vais les faire glisser jusqu'à l'effet dommageable. Et voilà, maintenant, pourquoi ai-je utilisé de l'eau ? Maintenant, nous avons les 50 sang et vous pouvez voir les éléments numérotés de 0, 1, 2, 3 et 4. La prochaine étape consiste à instancier l'un d'entre eux de manière aléatoire. Et je peux tout d'
abord vous montrer que ce sera un défi. Je ne suis pas sûr de ce que je devrais vous montrer en premier. Laissez-moi d'abord vous montrer ceci. Nous avons donc quelque chose appelé plage aléatoire, qui renvoie un nombre aléatoire. Allez-y, regardez en haut. Il est maintenant temps de relever votre défi. Et votre défi consiste à créer un effet aléatoire. Ainsi, numéro un, créez un splash aléatoire à partir de 0 comme valeur minimale et la longueur du tableau comme valeur maximale. Maintenant, vous êtes un peu confus. De quoi parle Michael ? Encore une fois, nous y revenons. Le minimum, le maximum. Vous y allez. Utilisez-le, cherchez-le. De retour ici. Attribuez cette valeur à une variable entière que vous allez créer localement. Créez donc un entier aléatoire, attribuez-lui un nombre aléatoire. Recherchez des latrines aléatoires 0. D'accord, donc j'ai ajouté ça. Et enfin, je vais vous donner un indice. Si vous ne voulez pas l'indice, il s'agit de savoir comment obtenir la longueur du tableau. Je vais vous donner l'indice. Si ce n'est pas le cas, mettez la vidéo en pause, relancez le défi. Vous voulez avoir l'indice, utilisez la longueur du point pour obtenir la longueur du tableau. Vous pouvez même chercher quelques exemples sont non, c'est un défi un peu difficile. J'ajouterais sur une échelle de 1 à 10 en tant que débutant, c'est un 10 parce que tout d'abord, vous venez d'apprendre des tableaux. Deuxièmement, vous utilisez le hasard. Je sais que c'est dur. Prenez votre temps, mettez la vidéo en pause, utilisez vos compétences en résolution de problèmes, tout ce que vous avez acquis, et ne vous inquiétez pas lorsque vous avez terminé le défi. Si vous ne savez pas comment le faire, je le ferai devant vous, mais essayez. Plus important encore, donnez-vous au moins cinq minutes pour essayer. Alors mettez la vidéo en pause maintenant et faites de votre mieux et faites de votre mieux et du Chaldéen. Bon, bon retour. Donc, chaque fois
que nous touchons un ennemi, nous allons créer une variable aléatoire et localement,
donc localement signifie à l'intérieur d'ici, chaque fois que nous touchons un ennemi, je vais dire que nous avons un entier. variable, qui sera l'éclaboussure sélectionnée. Et cela va être égal à une plage aléatoire. Ainsi, comme nous l'avons fait dans les exemples, et la documentation d'Unity va se situer entre 0 et l'éclaboussure de mort ou non, ce que nous appelons cela, semble que les dégâts affectent. Les dégâts affectent la longueur du point. Gardez ça. Maintenant, ce qui se passe ici, nous avons cet entier. Il est égal à une plage aléatoire. Et vous pouvez voir ici que nous avons le minimum. Alors, pourquoi est-ce 0 ? Parce que nous voulons choisir un nombre aléatoire dans le tableau que nous avons ici. Et le premier indice est 0, et le dernier indice sera la longueur des dégâts. Mais il y a quelque chose de très important que je tiens à vous signaler. Et si nous examinons ici l'explication, vous pouvez constater que le minimum est inclusif alors que le maximum est exclusif. Qu'est-ce que cela signifie ? Inclusif ? Cela signifie que nous pouvons choisir un aléatoire de 0 au maximum. Donc, 0 est à l'intérieur. 0 peut être l'un de ces nombres aléatoires. Mais le maximum, c'est-à-dire la longueur, ne peut pas. Et c'est important car l'indexation dans un tableau, si nous choisissons la longueur, la longueur est toujours plus grande que le dernier index. Parce que si je reviens en arrière et l'exemple ici, laissez-moi vous montrer. Disons donc quelle est la longueur de ce tableau entier ? C'est quatre parce que nous avons quatre points. Mais si j'essaie d'accéder au quatrième numéro de ce tableau, j'obtiendrai une erreur car nous avons l'index 0, 1, 2, 3 si j'essaie d'accéder au quatrième, donc car il n'y a rien, je reçois une erreur et je commence à pleurer. Pas forcément, mais j'espère que vous comprendrez le point. La prochaine chose que nous allons faire est de vouloir instancier. Maintenant que nous avons notre nombre aléatoire, ce que nous pouvons faire entre les effets, je peux ouvrir les crochets et je peux utiliser le splatter aléatoire sélectionné. J'ai donc maintenant un nombre aléatoire compris entre 0 et la longueur moins un, évidemment parce qu'il est exclusif. Et maintenant, je peux instancier les effets de dégâts ou l'un des effets de dégâts au hasard en utilisant ce numéro. J'aurais donc pu dire le 0 V1, mais j'ai sélectionné l'éclaboussure aléatoire. Alors, gardons ça. J'espère que vous comprenez tout. Si ce n'est pas le cas, jetez-y un autre coup d'œil, peut-être rejouez la vidéo, comprenez tout. J'ai essayé d'être aussi détaillé que possible tout en étant ennuyeux. Je pense que c'est l'une des vidéos les plus longues, mais pas de soucis. Je vais entrer dans mon jeu. Nous allons enlever ça ici, c'est comme l'ennemi. Et au fait, je me suis aussi assuré que tout le sang que vous pouvez voir ici, la couche de tri comme l'ennemi. Vous pouvez donc le voir. Et où est l'ennemi ? Je vais lui donner mille ou 10 000 santé juste pour qu'on puisse voir correctement tous les éclaboussures de sang. Je vais y arriver, mais je vais tirer sur 12345. Alors, tu y vas. Vous pouvez voir que quelque chose n'est pas tout à fait correct, alors je vais tirer. Et quel est le problème avec ce cas 1, 0 ? Je viens de trouver le problème et le sang 5 que j'ai ajouté ici, le sang. Regardez lorsque vous jouez l'animation, la dernière est un point rouge. Donc, ce que je vais faire, je vais supprimer le dernier. Et voilà. Maintenant, nous n'avons cela que lorsque le sang finit sur les lances. Sauvez tout ça. Et laissez-moi juste choisir la lune. Le sang 5 et un vivant change. Supprimez-le à nouveau dans la puce. Laissez-moi voir. Peut-être parce qu'on a changé quelque chose, peut-être une balle préfabriquée. OK. Je travaille toujours, sauve ça, retourne dans notre jeu. De toute évidence, nous devrons enlever tout ça, donc une chaussure, l'ennemi, voyons voir. Nous avons des sang différents. Non, il est toujours là pour une raison quelconque. Pourquoi est-ce que c'est ? C'est très agaçant. OK. J'ai donc découvert que le sang a
aussi son dernier cadre comme ces points rouges agaçants. Je vais donc le supprimer et l'enregistrer. Je le supprime immédiatement à l'intérieur du préfabriqué. Je vais donc simplement au préfabriqué, double-cliquez sur les trois. Voyons si celui-ci a aussi le petit point rouge ennuyeux que vous montez. Bon, donc tu y vas. Il a aussi sauvegardé cela et le sang pour zoomer et voir l'animation. Ok, un autre travail sanglant. Cette vidéo est en train de devenir incontrôlable. Nous y allons donc, le dernier, nous supprimons également cela. Et une chose que j'ai remarquée, je veux choisir tous les préfabriqués et m'assurer que toutes leurs positions sont à 0 pour qu'elles ne soient pas instanciées. Et un endroit bizarre. Quoi qu'il en soit, revenons à notre jeu. J'espère que cette fois, tout devrait fonctionner parfaitement. Je vais donc lancer le jeu et je vais tirer sur l'ennemi. Vous y allez. C'est le sang épais. Sucrez-les encore. Encore une fois, c'est un autre type de sang. Vous pouvez voir qu'il est bloqué. Trois. Sang for Blood One. Vous y allez. Vous pouvez le simplifier à nouveau, sang un. Comme vous pouvez le constater, chaque fois que nous
tirons sur l'ennemi, différents types de sang sont instanciés. Vous pouvez donc voir que c'est un nombre aléatoire qui se fait tirer dessus. J'espère que vous avez apprécié. Évidemment, il y a quelques choses que nous devrons réparer avec notre sang qui n'est pas détruit à la fin, nous pourrions trouver un autre moyen de le réparer une fois que nous aurons appris quelques outils supplémentaires, ou peut-être que nous pourrions simplement les enlever en utilisant le événements et animations, ce qui est également très utile. J'espère que vous avez apprécié, j'espère que vous apprécierez ce cours. J'espère que vous n'êtes pas un peu démotivé par la longueur de certaines vidéos parce que j'entre dans quelques détails. J'espère que vous aimerez le fait que je commette des erreurs et que je les garde ici pour que nous puissions les
réparer ensemble et me laisser un avis si vous aimez. Je sais que je l'ai déjà dit. Je le dirai peut-être quelques fois,
alors assurez-vous de faire la critique pour ne plus avoir à l'entendre. Et assurez-vous bien sûr de faire les commits. Je vous verrai dans la prochaine vidéo où nous donnerons à l'ennemi la capacité de nous tirer dessus. Il est donc actuellement très faible. Nous voulons lui donner un moyen de se défendre. Alors, à ce moment-là.
29. Attack des ennemis (coroutines): Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo. Et dans celui-ci, nous avons rendu nos ennemis légèrement stupides. Donc, même s'il peut tirer, mais seul le léger problème est qu'il se tire dessus,
ce qui est parfois bon, ce qui est parfois bon, surtout s'il s'agit d'un ennemi très dur. Mais dans notre cas, nous allons y remédier plus tard. Mais pour l'instant, tout ce que vous devez savoir, c'est que nous pouvons changer le temps entre les prises de vue, par exemple, trois. Et vous pouvez voir qu'il faut trois secondes pour tirer, mais nous ne faisons pas cela à l'aide d'un compteur. Nous le faisons en utilisant ce qu'on appelle une co-routine, ce qui est un outil très dur, mais qui est un outil crédiblement puissant pour apprendre dans Unity. J'ai donc besoin de votre concentration et de toute votre attention. Ne perdons plus de temps et commençons. Bon, il est donc temps de donner à notre ennemi la capacité de tirer sur le joueur, ou au moins d'attaquer le joueur. Nous avons deux types d'attaques différents que nous allons implémenter dans notre jeu. L'un d'entre eux sera le Malais, l'
un d'entre eux se contentera de tirer de loin ou jeter l'épée et l'exemple des squelettes. Mais pour l'instant, nous allons nous concentrer davantage sur le
tir à distance et les attaquer au corps à corps plus tard. Peut-être dans une autre section, peut-être dans la section Boss où nous avons le squelette géant. Ok, avec ça hors du chemin, allons commencer. La première chose que nous allons faire est de
créer quelques variables et le boîtier du contrôleur ennemi 0. Nous allons donc entrer dans le contrôleur ennemi. Et ici, nous allons créer quelques variables. Donc, avant l'éclaboussure de mort ici, nous allons ajouter une attaque, juste une attaque commune pour que nous sachions ce que tout est et qu'il s'agira d'un champ sérialisé de type booléen et ce sera une attaque de mêlée. Donc, s'il s'agit d'un attaquant de mêlée, nous allons le vérifier auprès de l'inspecteur et il va attaquer en mêlée. Ensuite, nous allons créer un champ sérialisé, qui sera un objet de jeu et ce sera le projectile ennemi. C'est donc ce que l'ennemi jettera de sa main s'il tire. Enfin, nous allons créer un point de transformation. Oh, désolé, position de feu. Bon, maintenant, nous avons le projectile. Nous allons créer un poste de dossier. Et nous voulons également avoir un temps entre les tirs de l'ennemi. C'est donc similaire à la façon dont nous avons manipulé notre arme. Donc, flottez le temps entre les tirs. Et enfin, nous allons créer un livre privé prêt à tourner. Que se passe-t-il ici ? Lorsque nous sommes prêts à tirer, l'ennemi tire, et chaque fois qu'il tire et entre les temps, les tirs vont calculer. Nous avons donc fait cela en utilisant, je crois le compteur. Nous avons créé un compteur où nous comptons le temps jusqu'à ce que
nous finissions un certain temps entre les tirs quand il est terminé, puis nous pouvons le montrer à nouveau. C'était une ancienne façon. Nous allons maintenant utiliser ce qu'on appelle la co-routine. Avant de faire cela et de vous présenter les coroutines, permettez-moi tout d'abord de mettre en valeur le film prêt à tourner ici. Ainsi, chaque fois que l'ennemi commence, il est prêt à tirer et à faire une mise à jour. Nous allons aller de l'avant et créer ici quelque chose qui est une condition. Et si l'attaquant malais, ou si nous ne sommes pas simplement un attaquant, nous ne le sommes pas. Lorsque nous remettons le point d'exclamation et que nous sommes prêts à tirer. Ensuite, ce que nous allons faire, c'est que nous allons aller de l'avant et dire que c'est prêt à tirer comme faux. Et puis, ici, nous allons commencer un revêtement. Qu'est-ce qu'une co-routine ? Pourquoi en avons-nous besoin ici ? Voyons un peu une explication. Qu'est-ce qu'un coltan ? Une co-routine est une méthode qui peut suspendre l'exécution d' instructions jusqu'à ce qu'une certaine condition ou certaines conditions soient remplies. Ces suspensions sont dites « rendement ». Et dans notre exemple, allons suspendre le temps jusqu'à ce que notre ennemi soit prêt à tirer à nouveau. Revenons donc à notre code et voyons ce que cela signifie. Donc, ce que nous avons actuellement, nous vérifions la mise à jour qui s'appelle chaque image. Nous vérifions si nous ne visons pas l'attaquant et que nous sommes prêts à tirer, puis prêts à tirer, mis à faux. Et par exemple, ici, nous allons tirer la balle. Mais ce que nous voulons, tout comme nous l'avions dans le comptoir, nous voulons pouvoir tirer après un certain temps. Encore une fois, nous avons la valeur fausse parce que nous ne voulons pas tirer sur chaque image d'une balle et avoir des gazillions de balles. La façon de résoudre ce problème est donc d'utiliser une co-routine. Laissez-moi donc aller de l'avant et créer une coroutine
ici va être de type recenseur oculaire. Vous n'avez pas à vous soucier de ce qu'est notre recenseur, sachez
simplement que c'est le type de revêtements. Nous allons créer le nom de la coroutine en tant qu'ennemi du feu, projectile. Je vais ouvrir les crochets et nous allons suspendre le temps. Je vais donc dire ce rendement. Okay, Focus, rendez. Cela signifie que nous sommes en train de suspendre. Retour. Nouveau. Attendez quatre secondes. Je vais ouvrir les crochets. Et combien de secondes voulons-nous peser le temps entre les tirs ? Et après cela, nous pouvons aller de l'avant et instancier la balle ou instancier le projectile, qui est le projectile, projectile
ennemi où il est instancié à cinq positions, cette position et la position sauf la station rho. Et puis, ce que nous pouvons faire, c'est de mettre le point sur la réalité. Et maintenant, nous pouvons le montrer à nouveau. Compliqué, n'est-ce pas ? Je sais moins expliquer. Oh, et avant que j'oublie, et ici après le tournage, nous commençons la co-routine, qui est le projectile ennemi lointain. Maintenant, vous êtes encore plus confus. Essayons à nouveau et mettons à jour. Qu'est-ce que nous avons chaque mise à jour de trame comme étant froide, nous avons toutes ces déclarations ici que nous
allons convertir en méthodes dans un peu. Mais ce sur quoi nous nous concentrons, c'est ici, si nous ne sommes pas un attaquant de mêlée et que nous sommes prêts à tirer, alors prêts à tirer, à fausse, et nous commençons un Colton. Alors, que se passe-t-il ici, prêt à tourner un set à faux ? Cela signifie que cette méthode ou cette condition ici est fausse. Nous ne reprenons donc pas chaque image. C'est pourquoi nous l'avons défini sur faux. Mais comment allons-nous le remettre à la réalité ? Nous avions l'habitude de le faire à l'aide du comptoir. Maintenant, nous utilisons quelque chose d'un revêtement. Et comme je l'ai dit, co-routine s'appelle Utiliser la coroutine de départ. Vous avez mis le nom ici et vous l'appelez I recenseur. Ne vous inquiétez pas. Ne vous inquiétez pas à ce sujet. Pour l'instant. Vous voulez approfondir cela ? Soyez mon invité. Vous n'avez pas besoin de savoir exactement ce que cela signifie. Nous avons le projectile ennemi lointain, puis nous avons cette expansion, c'est-à-dire le rendement. Ensuite, nous avons le nouveau retour, attendez quatre secondes. Donc, comme nous avons un numérateur d'ions, nous devons renvoyer un nouveau poids quatre secondes. Qu'est-ce que cela fait ? Comme il est dit, il attend un certain nombre de secondes, c'
est-à-dire le temps entre les prises de vue. Et après avoir attendu cela, nous instancions le projectile ennemi. L'ennemi tire, et il est prêt à tirer encore, encore et encore. Que se passe-t-il ici ? Tout d'abord, nous commençons, nous avons le prêt à tourner à vrai. Nous devrions le faire. C'est faux, on ne tire plus. Et quand le temps entre deux prises de vue prend fin, nous lançons le projectile et nous sommes prêts à tirer à nouveau. Essayons cela et voyons comment cela fonctionne. Je vais retourner dans Unity. Je vais voir où avons-nous réellement notre couteau 0. Nous n'avons donc pas de couteau. Ce que nous allons faire, c'est que nous utiliserons simplement la balle que nous avons déjà. Donc, dans les préfabriqués, nous avons les livrets de joueurs. Utilisez-le pour l'instant, la position de feu, permettez-moi d'ajouter un clic droit, créer un objet de jeu vide. Et je vais le mettre ici, ils sont presque juste ici. Ce sera donc la position de tir sur l'ennemi. Nous lui fournissons la position FAR définie entre les tirs serait de 1 seconde. Nous allons sauver cela. Et maintenant, nous allons nous assurer qu'il n'est pas un attaquant. Lançons le jeu et voyons ce qui se passe. Alors, maintenant, tu y vas. Vous pouvez voir qu'il instancie la balle, mais Il se tire sur lui-même et sur le visage. Donc, si je fais une pause pendant une seconde, vous pouvez voir que la position cinq, c'est comme ça
qu'elle est dirigée. Et nous savons que la balle des joueurs n'a voyagé que dans la bonne direction. Je sais que c'est plutôt drôle. Essayons cela différemment. Mais en tout cas, inquiétons pas trop pour l'instant, car dans la vidéo suivante, nous allons créer des balles ennemies appropriées qui seront en réalité loin vers le joueur ou non. Même les balles créeront le projectile, qui est le neuvième de l'ennemi. Il le lancera en tant que joueur et ne se tirera pas dessus. Mais vous pouvez voir maintenant que cela fonctionne avec le Colton. Si je clique sur l'ennemi ici, vous pouvez voir que je peux augmenter le temps entre les tirs à 2. Donc, toutes les deux secondes, nous avons cette attaque. J'espère que la vidéo vous a plu. Je sais que le mécanicien de tir n'est pas parfait, mais comme je l'ai dit dans la prochaine vidéo, nous allons créer de meilleures balles. J'espère que vous commettez tous vos changements. Et dans la prochaine vidéo, nous fabriquerons des balles ennemies, Gentils, ou tout ce que vous voulez appeler. Je vous verrai alors.
30. Créer des balayages de bien enemis: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons ajouter des puces. Nous les appelons balles, mais ce sont des épées à notre squelette. Donc, lorsque nous lançons notre jeu, regardez ce qui se passe. Vous pouvez voir que le squelette est en train de lancer des sortes. Et non seulement cela, si nous nous promenons, les épées commencent à nous suivre. Et si vous remarquez, si nous changeons la source qui vole déjà, continuez à voler dans la direction car il y a quelque chose de très récent qui s'est produit. Ils ont découvert que les sortes ne changent pas de direction en plein air. Une découverte incroyable. Ne perdons plus de temps avec nos, les
qualifions pas de blagues stupides. Et commençons. Oh, d'accord, il est donc temps de créer des balles ennemies appropriées. La première chose que nous allons faire, c'est que nous allons aller de l'avant et obtenir les sprites de notre épée ou du genre d'ennemi. Donc, si je vais dans les sprites, si je vais dans l'ennemi, les ennemis musulmans, le squelette. Et ici, j'ai le sprite pour où est-il ? Où sont les pensées volantes ? Alors, tu y vas. C'est le vol trié. Nous créons n'importe quoi pour cela. Je pense que ce n'est pas le cas. Je vais donc créer un objet de jeu vide, réinitialiser sa position. Et je vais lui donner l'un des, où est-il, le genre ? Alors donnons lui juste celui-là. J'en ajouterai quatre. Je peux simplement ajouter l'épée ici. Il suffit de retirer cet objet de jeu et j'appellerai ça l'épée du squelette volant. Vous y allez. Et je vais créer une animation. Je vais donc aller dans les Actifs et les animations, et je vais à l'animation squelette. Et appelons juste ça la soucoupe volante. Cliquez sur Enregistrer. On y va. Maintenant, nous avons l'animateur et laissez-moi choisir toutes les sortes de sprites. Et allons-y et faisons-les traîner ici. Donc maintenant, si nous lançons l'animation, nous y allons, vous pouvez voir que nous avons une épée extrêmement rapide qui la bouge. Ok, donc c'est presque correct. Alors, tu y vas. Vous pouvez voir que c'est ainsi que notre genre fonctionne. Et il explose avant d'atteindre l'ennemi. Il y a donc environ 40 images de temps de vol. Et c'est bien. Nous voulons que l'épée puisse au moins détruire à une certaine portée. Nous ne voulons pas que le sel vole tout le temps maintenant, si vous voulez faire voler votre sel tout le temps, vous devrez ajouter quelques choses. Par exemple, vous pouvez simplement le mettre en boucle et le sel continuera de voler et de voler sans jamais être détruit jusqu'à ce qu'il atteigne le joueur. Et enfin, la juste peut être détruite avec certaines conditions. Mais ne nous inquiétons pas trop à ce sujet en ce moment. Ce que nous allons faire, c'est que nous allons ouvrir les scripts ici. Nous allons entrer dans les balles et nous allons cliquer avec le bouton droit de la souris et créer un nouveau script C-sharp, qui sera le contrôleur de balle ennemi. Et appelons simplement ça « balle » ou « projectile », mais pour l'instant, nous appellerons ça « balle ». Je vais donc sauver ça. Et je vais double-cliquer et ouvrir ça. La première chose dont nous aurons besoin est donc d'un champ sérialisé, qui est un flotteur pour la vitesse de la balle. Et je vais utiliser la balle et en quelque sorte projetée au fur et à mesure. Et nous allons avoir besoin d'une référence à la direction des joueurs. Je vais donc créer un vecteur privé 3 et ce sera la direction du joueur. Alors, comment la balle ennemie va-t-elle réellement fonctionner ? Ce que nous allons faire, c'est commencer, nous allons déterminer la direction des joueurs. Il va donc être égal pour trouver des objets de type. Et ce sera le contrôleur de couche. Et à partir de là, nous allons aller de l'avant et utiliser la position du point de transformation du lecteur que nous trouvons moins la position transform.py point o. C'est tout. Non, pas normalisé, non, pas pour le moment. Alors pourquoi faisons-nous cela installé et non pas une mise à jour ? Parce que nous ne voulons pas que la balle continue de suivre le joueur. Nous voulons avoir la direction du joueur uniquement dès que la balle est tirée. Donc, lorsque la balle est tirée, nous instancions cette balle. Et cette balle. Dès qu'il se réveille. Commencez. Nous allons commencer. Il trouvera l'objet joueur, obtiendra la direction du joueur. Ensuite, nous allons nous assurer que la direction du joueur se normalise. On y va. Ainsi, ce n'est pas plus rapide s'il se déplace en diagonale. Ok, super. La prochaine chose que nous voulons faire, c'est que nous voulons nous assurer que cette balle soit détruite chaque fois qu'elle heurte un obstacle. Mais pas seulement ça, on veut aussi réduire la santé du joueur plus tard quand ça le frappe. C'est donc l'une des choses que nous devrons faire. Le problème est-il un défi ? Que diriez-vous de cette transition ? La paille, la balle, et vérifiez le joueur. Vous devrez donc créer, devrait
s'agir de M sur Trigger Enter to D pour la puce. Vous devez vérifier si ce que nous avons touché était le joueur par son tag, devra détruire la balle quand elle frappe quelque chose. Et je vais vous donner un petit indice, vous devrez utiliser la paille. Eh bien, ce n'est pas vraiment, c'était assez facile, mais j'ai pensé que peut-être parce que c'est la première fois que vous utilisez détruit, peut-être que vous en auriez besoin. N'oubliez donc pas que vous devrez également ajouter un déclencheur à cela. Mettez la vidéo en pause maintenant et allez faire le Shalon k. Il y a
donc quelque chose que j'ai quitté du défi. J'en ai parlé un peu et j'espère que cette chaussure que c'est toute seule je vais devoir ajouter un collisionneur. Donc un collisionneur circulaire 2D, c'est assez gros. Je vais mettre le rayon au-dessus, prendre de gros. Je vais le faire, d'accord, donc je pense que ce rayon est assez bon. Voyons comment ça va voler. C'est donc le cercle complet. Je vais donc le déplacer un peu vers le bas, un peu comme ça ou bien, super. Maintenant que nous avons le collisionneur, nous nous assurons d'en faire un déclencheur. Je vais sauver ça et je vais aller de l'avant dans le o et ajouter également les scripts du contrôleur de balle ennemi. On y va. La vitesse du bateau sera, passons à 34. Maintenant, double-cliquez dessus, ouvrez-le. Et maintenant, ce que nous allons faire, c'est créer une entrée sur le sucre,
donc sur Trigger Enter to D. Et ici, nous allons vérifier si la balise collision.com. Et si c'est le joueur, nous devrons
évidemment créer la pile dans un peu. Si c'est le cas, le joueur utilisera simplement le journal des points de débogage. La couche a été touchée. Et puis nous allons simplement pailler ceci, quelle que soit la cible, objet de jeu détruisant l'
âme. Gardez ça. La dernière étape est que nous voulons déplacer notre balle. Et comment allons-nous déplacer notre balle ? Eh bien, évidemment, nous pouvons à nouveau utiliser un corps rigide, comme nous l'avons fait avec la balle du joueur. Mais je pense que
c'est le cas, il vaut mieux utiliser l'ancienne façon qui a déplacé la transformation du livre. Tout d'abord, il y a de nombreuses raisons. Tout d'abord, nous pouvons le faire assez facilement et c'est très efficace. Et la deuxième raison est que nous ne voulons pas avoir beaucoup de corps rigides et de notre jeu, car chaque fois que vous avez un corps rigide, cela signifie
que le moteur physique fonctionne. Et quand un moteur physique fonctionne, cela signifie
qu'il y a plus de puissance de calcul. Donc la dernière fois, nous utilisons le beurre que notre jeu fonctionne. Donc, une mise à jour, je vais accéder à la transformation. Je vais le faire, je veux dire la position sur la transformation. Et je vais continuer à l'augmenter. En allant dans la direction du joueur, chronomètre la vitesse de la balle. Donc cette vitesse, et je vais bien sûr utiliser le temps, le temps delta. Dès que la balle est instanciée, la direction du joueur est trouvée. Et chaque image de la transformation est déplacée vers ce joueur. Et dès qu'il frappe le joueur
, l'objet du jeu est détruit. Et si nous avions un calque profond ou tout autre objet détruit, mais si nous avions le joueur spécifiquement
, le joueur a été touché sera mis ou imprimé sur la console. Je vais donc sauver ça. Je vais revenir dans le mien. Et voyons voir, nous allons en faire un préfabriqué. Préfabriqué. Je vais cliquer avec le bouton droit de la souris et ici et créer un dossier de 40 puces. Et la balle du joueur ici. Double-cliquez ici, définissez le tri du squelette volant ici. Je vais le supprimer. Sauvons ça. Allons de l'avant et lançons le jeu et voyons ce qui se passe. Donc, d'accord, on n'a pas changé le tas. Nous n'avons pas changé les balles réelles du joueur. On y va donc. Ajoutons ce squelette volant, trions le jeu. Et comme vous pouvez le constater, rien ne se passe car la balle se trouve sur les mauvaises couches de tri. Donc, à la couche de tri ennemie, nous devrions
maintenant sauver cela. Maintenant, quand nous courons, nous devrions le faire. Oui, on y va. Vous pouvez voir que ce genre de choses s'envolent vers le joueur. Et quand nous avons eu le lecteur, nous n'avons rien imprimé sur la console. Pourquoi est-ce que c'est ? Eh bien, voyons, je vais sauver ça. J'ai donc oublié l'étape la plus importante et ce que vous auriez dû faire dans le défi, je suppose que vous sauriez quoi faire et le défi, parce que nous vérifions l'étiquette du joueur, mais apparemment en mémoire, n'est-ce pas génial ? Le problème ici, c'est que nous n'avons pas non plus marqué le joueur, le joueur. Comme vous pouvez le constater, nous avons déjà le tag ici. Tellement grosse erreur, pas de soucis à ce sujet. Nous vivons, nous avons appris, nous appliquons nos changements. Nous sauvegardons tout cela, nous gérons le jeu. Et maintenant, ce que nous devrions voir, c'est que vous y allez. Dès que le joueur a trié, nous l'avons fait, le joueur a été touché et vous pouvez le voir plusieurs fois et ici 4, 5, etc. Maintenant, ce que je voulais vous montrer, c'est si je bouge
le joueur, les épées qui vont déjà dans la direction du le joueur ne changera pas. Alors, tu y vas. Vous pouvez voir que maintenant trier suivre le joueur au fur et à mesure qu'il bouge et pouvons-nous les détruire ? Oui, on peut le faire. Si vous le souhaitez, vous pouvez ajouter une autre couche, qui est la couche de balle ennemie, et vous assurer que les balles du joueur n'interagissent pas avec l'ennemi de balle. C'est votre choix. Quelles sont les mécaniques de jeu que vous avez dans votre jeu ? Faites-le, appliquez-le ? J'aimerais bien le voir si vous me montrez. Et n'est-ce pas, j'espère que ça vous plaira. J'espère que vous commettez vos changements à chaque vidéo. Et dans le prochain, nous allons ajouter une portée au
tir ennemi afin de ne pas laisser notre ME sûr de n'importe où sur la carte,
nous voulons avoir une portée dans laquelle l'ennemi peut nous tirer dessus. Je vous verrai alors.
31. Portée de séance de photos de Enemy: Bienvenue, mes collègues développeurs de
jeux. Dans cette vidéo, nous avons ajouté un stand de tir.
C'est assez simple. Nous l'avons déjà fait. Vous pouvez voir maintenant que
l'ennemi ne nous
tire plus sur nous à moins que nous ne nous
arrêtions dans ce cercle rouge. Quand on fait des trucs, il commence à lancer
ses sortes de flèches. Si on est dehors, il
ne les jette pas. Maintenant, ne
perdons plus de temps. Cette vidéo ne
concerne pas seulement la création de la gamme. Nous avons également eu une leçon supplémentaire, appelons-le une leçon. Et ici, un
point supplémentaire à créer. Nous utilisons la connaissance
de nos méthodes. Ne perdons donc plus de temps parler et commençons. Oh, d'accord, il est donc temps d'ajouter un
champ de tir à notre ennemi. Mais avant de le faire, il y a une chose
dont nous devons nous occuper, c'est que l'épée n'était pas détruite lorsqu'elle a touché
une sorte de déclenchement. Et vous pensez peut-être, eh bien, pourquoi cela se produit-il ? Même si nous avons
la balle ennemie sur la gâchette, tout
fonctionne. Il y a un petit détail que j'aurais dû vous dire que
j'ai commis l'erreur. Nous avons besoin d'un
corps 2D rigide ici, mais nous devons le
rendre cinématique. Alors maintenant que le sel volant a un corps rigide jusqu'à
la fin Is cinématique, il sera détruit
lorsqu'il frappe un mur avec cela hors du chemin. Excusez-moi de ne pas avoir
dit ça avant que je vous dise que vous ne devriez pas
avoir de corps rigide. Nous devrions, mais cela
devrait être cinématique. Continuons donc. De quoi avons-nous besoin ? Nous devons avoir la
capacité de montrer le joueur uniquement à
une certaine portée. Comment faisons-nous cela ? En vous lançant un défi ? Et votre défi consiste à créer un champ de tir avec des couleurs. Créez donc une variable de flotteur
pour le champ de tir. Avant de pouvoir tirer, assurez-vous d'être dans le champ de
tir en vérifiant la distance entre
l'ennemi et le joueur et tracez un jaune. Je ne sais pas pourquoi j'ai dit le jaune parce que nous avons
déjà du jaune. Choisissez la couleur que
vous voulez et assurez-vous
qu'il s' agit du champ de tir. S'assure que l'
ennemi ne tire pas à moins que le joueur se trouve dans
ce champ de tir. Mettez la vidéo en pause dès maintenant
et relancez le défi. Bon, bon retour. Je vais donc entrer dans
le contrôleur ennemi. Et où
tournons-nous ? On y va. C'est le moment entre deux tirs. Et allons-y et ajoutons. Je pense que c'est un
bon endroit pour l'ajouter. Je vais donc créer
un champ sérialisé, qui sera un flotteur, et ce sera
le champ de tir. Gardez ça. Et puis je vais
faire défiler vers le bas ici. Je vais vérifier si nous ne sommes pas un attaquant masculin et que nous
sommes prêts à tirer, puis je vais aller de l'avant et là juste avant de
vérifier la condition, créer une variable qui
sera le flotteur. Ou sachez quoi, ne
créons pas de variable supplémentaire. Mettons-le ici. Nous allons ajouter une autre condition. Et cette condition
sera qu'un vecteur trois
calcule la distance entre
la couche à chasser. Là, nous allons le joueur pour chasser position du
point de transformation des points. Et nous allons vérifier la
position
du point de transformation de l'ennemi. Et si c'est moins que
le champ de tir
, nous allons
commencer la condition. Maintenant, vous avez remarqué que
cette ligne est un peu longue. Donc, ce que nous pouvons faire,
c'est simplement aller ceci, appuyez sur Entrée, entrez
ici, appuyez sur Entrée. Maintenant, ils sont sur des lignes
distinctes. Nous pouvons les voir plus clairement. Si vous le souhaitez, vous pouvez
les garder sur la même ligne. Et c'est une meilleure façon de
voir les conditions. Nous pouvons également ajouter cela
ici pour que nous sachions tout. fois cela fait, nous
allons économiser oh, et nous devons tirer
le plus longtemps. Je vais donc
reproduire ces deux lignes. Et je vais rendre
la couleur non jaune. Faisons le bleu. Et ce
sera le stand de tir. Sauvegarde ça dans notre jeu. Voyons l'ennemi. Maintenant, que voulez-vous que le
stand de tir soit ? Bien sûr, cela
dépendra de la façon dont sera le jeu. Par exemple, vous pouvez agrandir le champ de tir, mais peut-être
voudriez-vous que le joueur
poursuive comme ça. L'ennemi peut donc avoir besoin de
poursuivre un peu le joueur. Et quand il est dans le
champ de tir, il a commencé à tirer, ou on peut faire ce que tu veux. Cela dépend de votre jeu. Il suffit d'ajouter la diapositive ici, encerclée plus grande, de
sauvegarder cela, de lancer le jeu. Et maintenant, nous devrions voir
que l'ennemi ne
tire pas avant d'avoir une portée. On y va donc. Il commence
à tirer sur le joueur. Si nous sortons,
continue-t-il à tirer ? Pas de salaire, non. Il s'arrête. Nous sommes dans ses fruits. Nous sommes sortis. Il arrête de
tirer. Ok, super. Pour ce faire, je pense que nous avons encore
un peu de temps et que
nous utiliserons ce temps pour organiser tout ce
que nous avons ici. Quel est donc le problème ? Vous pouvez voir que tout
fonctionne. Nous n'avons pas d'erreurs. Mais le code est très API. Vous pouvez voir
ici que nous avons cette mise à jour et que cette
mise à jour fait beaucoup, et ce n'est pas quelque chose
que nous voulons un pair. Et le joueur, vous pouvez
voir la manette du joueur. Nous avons beaucoup de lignes de
code et elles sont désordonnées. Que se passe-t-il ici ? Que faisons-nous ? Doit-on faire un geste pour rejouer ce
qui se passe ici. Nous allons donc, bien
sûr, résoudre ce problème
en créant ou utilisant nos nouvelles connaissances en matière
de création de méthodes. Ce que nous pouvons faire, c'est , par
exemple, disons où
le joueur marche ? C'est donc le mouvement que nous
normalisons, nous donnons de la vélocité. Donc, de la première
ligne à cette ligne, nous déplaçons le joueur. Allons de l'avant et
sélectionnons tous ces éléments. Je vais sélectionner ces lignes. Je vais cliquer avec le bouton droit de la souris. Et vous pouvez voir
ici que nous avons les actions rapides
et le refactoring. Ainsi, lorsque je clique dessus, vous pouvez voir que cela nous donne la possibilité d'extraire une méthode. Je vais cliquer
sur Extract Method et maintenant vous avez une nouvelle méthode. Comment voulez-vous l'appeler ? Appelons ça le joueur en mouvement. Appuyez sur Entrée. Maintenant, vous pouvez voir que toutes
les lignes ont disparu, mais elles sont stockées
dans cette méthode peu astucieuse et
très pratique ici. Nous savons maintenant que nous
commençons par déplacer le joueur, puis
nous avons tout cela. Donc, que se passe-t-il ici, la position de la souris
et le point d'écran, nous calculons le décalage, nous obtenons l'angle, nous faisons pivoter le bras,
puis nous vérifions si nous
devons aller d'une
direction à le suivant. Qu'avons-nous d'autre ici ? Séparons tout
d'abord la fusillade. Nous allons donc
séparer la fusillade. Et comment avons-nous appelé
cela le joueur en mouvement ? Et appelons cela la prise de vue de
calque entre. C'est ce qu'on appelle ça
au lieu de bouger un joueur. C'est ce qu'on appelle ça, le joueur se déplaçant et contrôle
RR, bien sûr. Et comment voulons-nous nous séparer ? Nous pouvons appeler cela animer
le joueur si nous le voulons. Et nous pouvons appeler cela en mettant le joueur
dans la bonne direction. Et celui-ci le sera. Mais par exemple, comment
devrions-nous appeler cela ? Honnêtement, tout cela est
basé sur vos préférences. Comment voulez-vous y arriver ? Je vais donc appeler
cela le clic droit. Et c'est ce qu'on appelle le pointage. En pointant dans notre cas. Donc, évidemment, vous pouvez voir
ici ce qui s'est passé. Nous avons cette position hors pair
et ce point de cri. Cela signifie que nous
retournons ces valeurs. Pourquoi les rendons-nous ? Pendant que ? Parce que nous utilisons le point Screen
ailleurs dans notre code. Cela dit, appliquez pour l'instant, double-cliquez sur le
point de flux et voilà. Vous pouvez voir que nous
utilisons la position de la souris et le point d'écran
dans cette condition si. Mais nous sommes en train de le calculer à l'intérieur du point de pointage. Je n'ai pas changé le nom. Vous pouvez donc voir que c'est là que nous avons calculé et c'
est là que nous en avons besoin. Nous créons donc cela, mais je ne veux pas cela. Je pense que c'est un peu mauvais. Oups. Trop. Contrôle Z, couche. Entrée en mouvement. Nous sauvegardons cela. Maintenant, allons continuer et utiliser
tous ces éléments sur lesquels nous cliquons avec le bouton droit de la souris. Et comment allons-nous appeler
cette méthode énorme ? Nous allons l'appeler, que
faisons-nous ici ? Pointez un pistolet sur
la souris, sur Entrée. Vous avez donc besoin du
nom de la méthode pour décrire ce qui se passe. Et enfin, on peut
dire que cela
anime le lecteur
Extract Method. Animer V player
a frappé Enter et whoa, quelle énorme différence qui vient de
regarder sérieusement la mise à jour, à quel point elle est propre maintenant, nous savons que le
joueur bouge. Il pointe le
pistolet sur la souris. Nous animons le joueur
et le joueur tire. Et peut-être pourriez-vous même extraire une méthode supplémentaire à l'intérieur des pistolets de pointage pour
la
rendre encore plus propre. Parce que, par exemple, ce que
nous faisons ici, c'est que nous sommes susceptibles de tourner ou pointer le joueur dans
la bonne direction. Vous pouvez même extraire
ces deux méthodes, même les rendre plus propres. Donc son temps de défi, je vais
vous donner la liberté d' extraire les méthodes
dans le contrôleur NMI. Et je vous verrai dans la prochaine vidéo où je l'
ai déjà fait. Je vais peut-être vous montrer
ce que vous voulez. Faites-le vous-même, amusez-vous bien. n'y a pas de pression ici. Ayez simplement cette pratique consistant à
faire les choses par vous-même. Bien sûr, je vais
vous montrer les résultats plus tard, mais j'espère que cela vous plaira et je vous verrai
dans la prochaine vidéo. N'oubliez jamais de valider
vos modifications. Mon corps.
32. Conception de jeux: Bienvenue, mes collègues futurs développeurs de jeux. Pourquoi ai-je dit l'avenir cette fois pas comme les mots habituels que je dis ? Eh bien, parce que c'est la vidéo où vous décidez si vous voulez devenir un vrai développeur de jeux ou si vous voulez simplement suivre les étapes que je fais. Parce que cette vidéo, tout ce que nous faisons, extrêmement simple. est déjà ce que nous avons fait. Nous avons déjà tout fait. n'y a rien de nouveau à apprendre. Cette vidéo consiste à utiliser votre imagination et à entraîner les muscles des développeurs de jeux que vous avez. Je vous ai dit tout le temps qu'il fallait ajouter votre propre créativité et au jeu. À ce stade, vous avez toujours suivi ce que j'ai fait à 100%. C'est le moment de penser à différentes façons d' utiliser ou à différentes conceptions de jeux que vous pouvez utiliser dans votre jeu. Donc sans plus tarder, ne
perdons plus de temps et commençons. Salut, bon retour. Cette vidéo est donc consacrée à la conception de gangs. Ce ne sera pas très long. Ce sera juste un exemple de la façon dont vous aimeriez concevoir votre gain. Donc évidemment, en ce moment, vous savez déjà que lorsque l'ennemi nous tire dessus, à mesure que vous
vous approchez, vous pouvez voir que nous pouvons tirer sur ses balles à chaque fois que le tir vers nous. Ok, super. Maintenant, c'est assez bien. Mais que se passe-t-il si le temps entre deux tirs est, disons à nouveau 0,1 du jeu. Vous pouvez donc voir maintenant que les balles de l'ennemi se détruisent elles-mêmes. Pourquoi ? Parce que c'est ainsi que nous avons configuré les couches. Et une autre chose aussi, si nous allons de l'avant et essayons de le revendre à un, accord, donc l'ennemi tire des flèches. Voyons ce qui se passe. 0 fois 0, 0 sait, ici nous choisissons l'ennemi. Si nous les mettons, vous pouvez voir tout de suite que l'ennemi commence à se tirer dessus. Vous y allez. Vous pouvez voir que la balle de l'ennemi le tue. Alors, quel est l'intérêt de cette vidéo ? C'est pour vous lancer ce défi. Et votre défi sera de créer une couche de balles ennemie. Créez donc une couche de balle ennemie, affectez-la aux balles ennemies ou aux balles,
évidemment, quelle qu'elle soit, l'épée ou peut-être que vous avez créé la vôtre, je ne sais pas. Ensuite, décidez si vous voulez que les balles
ennemies interagissent avec les balles des joueurs en fonction de votre jeu. Si vous voulez que les balles ennemies tuent l'ennemi. Si vous voulez que les autres balles ennemies interagissent avec les balles ennemies. C'est ainsi que c'est le moment où vous décidez de l'apparence de votre jeu. Peut-être que l'ennemi se tuer s'il
est stupide, est une bonne idée pour améliorer
le réalisme ou la sensation du jeu que de faire traverser l'ennemi. Vous ne voulez peut-être pas que vos balles détruisent les balles ennemies. Cela ajoutera donc un gameplay plus stimulant à votre jeu. Prenez le temps de réfléchir à toutes les façons dont le jeu Sure peut se dérouler. Cela étant dit, mettez en pause la vidéo dès maintenant, relancez le défi. Bon, bon retour. Je vais donc aller de l'avant et ajouter une couche ici qui sera les balles ennemies qui entrent. Va sur le flanc, le squelette ressemble aux balles ennemies. Passons à l'édition. Nous allons vérifier les paramètres du projet. Les balles ennemies ne doivent pas interagir avec les balles ennemies, et les balles ennemies ne doivent pas interagir avec l'ennemi, mais nous n'avons pas de couche ennemie. Allons de l'avant et ajoutons que
si je vérifie l'ennemi, ça devrait être l'ennemi squelette. Entrez. Allons-y et le préfabriqué lui. Créons un nouveau dossier pour les préfabriqués ennemis. Parce que peut-être voulez-vous simplement en créer un autre plus tard. Vous y allez. Définissons son calque comme le, ok, nous n'avons pas créé le calque. L'ennemi a frappé Enter. Sélectionnez le mec. Et faisons-le oui, changeons les enfants sauf ça, lançons le jeu. Donc maintenant, si notre ennemi squelette a un temps entre les tirs de 0,1 et voyons à quoi cela ressemble. Vous y allez. Il tire beaucoup de balles et elles ne se détruisent pas elles-mêmes. Ils sont moches, mais ils ne se détruisent pas eux-mêmes. Autrement dit, arrêtons ça une seconde. Gardez ça à un seul moment. Augmentez peut-être la portée du feu. Alors leur champ de tir, où se trouve le stand de tir ? On y va. Augmentez-le un peu. Je ne déplacerais pas le joueur dans le champ de tir. Et je vais choisir le, où est-il l'ennemi ? Je vais le déplacer devant les balles. Il se détruit avec les balles z. Ok, donc il l'est toujours. Nous devons donc ajouter des paramètres de projet. Et l'ennemi n'interagit pas avec les balles ennemies, ou peut-être que l'ennemi n'interagit même pas avec l'ennemi. Donc, c'est pour vous, quelle est votre préférence ? Je vous ai dit que vous alliez ajouter votre propre créativité et au jeu. C'est le moment où vous n'avez toujours rien fait, faites quelque chose de différent de moi. Essayez de relever les défis tout le temps. Assurez-vous de faire de votre mieux chaque fois
que vous trouvez un code meilleur que le mien. Je reçois parfois des
suggestions, des suggestions d'étudiants incroyables et des choses que je n'ai même pas remarquées. Je vous recommande donc toujours d'aller faire de votre mieux avec cela. J'espère que vous apprécierez. Si vous n'avez pas encore laissé d'avis, faites-moi la faveur, faites la critique, assurez-vous de toujours valider vos modifications. Cela m'aide beaucoup lorsque vous laissez
un commentaire à faire savoir à tout le monde que c'est un bon cours. Cela vaut la peine d'être regardé. J'espère que vous appréciez et je vous verrai dans la section suivante, peut-être là où nous commencerons à mettre en place le système de santé si je ne me trompe pas. Cela dit, je vous verrai dans la vidéo et la section suivantes.
33. Section 5 : Créer des pièces - Introduction à Tilemap In Unity: Bienvenue à mes collègues développeurs de jeux. Et comme vous pouvez le constater pour la première fois, au lieu d'aller de l'avant, nous avons reculé et nous n'avons plus d'antécédents. Nous avons juste ce monde bizarre devant nous. Ne vous inquiétez pas à ce sujet. Nous disposons des bons outils pour résoudre ce problème. Ainsi, comme vous pouvez le constater en ce moment, nous avons non seulement un arrière-plan, mais nous pouvons également dessiner notre propre arrière-plan. Je peux ajouter ce que je veux. Je veux ajouter celui-ci et notre monde. Pas de façon. Je vais ajouter celui-ci et ce n'est pas parfait pour le moment, mais ça marche. Je vais donc, par exemple, à cette occasion et passons par terre. Vous y allez, avec un peu d'espace bleu derrière,
mais pas de soucis, nous allons le réparer plus tard. Mais pour l'instant, comprenons comment nous convertissons les sprites et les carrelages en palettes biliaires, en les dessinant à l'écran, comme vous pouvez le voir, de manière extrêmement professionnelle. Ne perdons donc plus de temps. Et commençons. Oh, d'accord, donc maintenant nous avons un joueur solide, nous avons un ennemi solide. Nous avons des balles, des calques, des effets, des animations, nous avons tout. Ce que nous n'avons pas, c'est le contrôle de la créativité de notre jeu. Donc, à l'heure actuelle, tout ce que nous avons créé se trouve dans ce contexte. C'est assez bien. Nous avons les planeurs, nous avons toutes les limites,
mais ce n'est pas suffisant. Que se passe-t-il si nous voulons créer notre propre niveau ? De toute évidence, nous ne pouvons pas simplement chercher des horizons différents. C'est ce que nous allons faire dans cette vidéo et dans toute cette section. Maintenant, cliquons sur le jeu de tuiles. J'ai créé un dossier à l'intérieur des sprites appelé jeu de piles. Je vais aller dans les ressources et je vais utiliser les catacombes. Évidemment, si vous souhaitez utiliser un jeu de tuiles différent, je vous recommande de faire des recherches sur l'art de jeu ouvert et d'ajouter le vôtre. On y va donc. Nous avons maintenant ajouté le dossier. Si je l'ouvre ou peut-être devrais-je l'ouvrir à partir d'ici et vous montrer quelques choses. Vous pouvez donc voir que nous avons ces bougies, nous avons un sprite. Vous y voilà. Vous pouvez voir que c'est le sprite. C'est exactement celui qui est utilisé en arrière-plan. Et en fait, j'en ai créé une, puis j'ai utilisé une capture d'écran et j'en ai fait un arrière-plan. Mais maintenant, nous allons apprendre comment utiliser ces carrés pour créer une carte. Nous avons également les décorations, et je vous ai
laissé, disons des captures d'écran ou des images et les ressources que vous pouvez consulter et voir comment le monde est créé. Alors, sans plus rien faire, comment allons-nous faire cela ? La première chose, c'est que nous allons passer par la fenêtre. Nous allons passer en 2D. Et vous pouvez voir ici que nous avons quelque chose qui s'appelle la palette de tuiles. Je vais donc cliquer dessus et je vais l'ajouter ici. Et qu'est-ce que la palette de carreaux ? Eh bien, c'est l'outil que possède Unity qui nous permettra de dessiner différents types de
sprites, par exemple ces sprites, les tuiles ou les éléments de tuiles. Et peut-être êtes-vous confus. Que va-t-on faire ? Comment allons-nous convertir cette image ici et deux tuiles et commencer à rejoindre ? Laissez-moi vous expliquer en utilisant mon joli laser. Donc, d'abord, nous avons la feuille de sprite. Vous l'avez vu, vous l'avez remarqué pendant que je vous montrais que nous avons la feuille de sprite. Ce que nous allons faire, c'est que nous allons couper la feuille de calcul. Et nous allons avoir des tranches de cette feuille de sprite. Une fois que nous aurons les tranches, ce que nous ferons, c'est que nous allons les convertir en ressources de tuiles. Et après les avoir convertis en ressources de tuiles, nous les aurons dans notre palette de tuiles. Donc, vous venez de résoudre la palette de tuiles que j'ai ajoutée tout à l'heure. Vous le verrez également en un instant lorsque nous convertissons notre sprite et celui-ci. Et enfin, nous allons les dessiner et ajouter l'ennemi et créer toutes sortes de choses sympas. Avant de continuer, je veux juste vous montrer le défi dès maintenant. Je ne devrais pas, mais je le ferai parce qu'il y a la première étape ici qui est importante ce que les autres sprites et tuiles que vous choisissez d'utiliser pour votre gain. Donc, si vous n'aimez pas les catacombes, ce n'est
peut-être pas votre style, cela ne fait pas partie de votre jeu. Peut-être que vous avez des joueurs différents, l'ennemi est que vous avez besoin d'un environnement différent. Je recommande que c'est vrai. Va chercher des sprites 2D. ai peut-être, je ne sais pas, une ville de science-fiction futuriste. Peut-être que vous pouvez créer le vôtre si vous êtes si bon, alors vous devez les dimensionner. Et enfin ajouté à la palette de tuiles et créez votre nouveau set. Je ne vais pas dire mettre en pause la vidéo parce que c'est parti. C'est assez simple. Voici les instructions du défi. Je vais le faire devant vous. Tout d'abord, nous devons découper cette carte de tuiles. Et c'est un peu délicat à faire, car parfois vous n'obtenez pas la meilleure qualité et vous devrez déterminer la quantité ou la taille de ces tranches. Donc, si j'essaie de faire automatiquement, voilà, vous pouvez voir qu'il est en quelque sorte tranché, mais je ne peux pas ajouter, par exemple, une partie de ceci ou un petit carré de ces pièces. Donc, ce que je vais devoir faire, c'est que je vais
devoir choisir une grille automatique par taille de cellule. Et je vais utiliser, essayons tout d'abord 64 par 64. Quand j'ai tranché ça, tu y vas. Vous pouvez voir maintenant que nous avons des tranches adéquates, mais elles ne sont pas assez bonnes car disons que je veux dessiner ceci, je dois choisir ces quatre tranches et vous voyez que celle-ci n'est pas seule. Je vais devoir choisir ces deux-là. Nous devons donc le rendre encore plus petit. Et je connais la taille. Il devrait être, je crois, 16 par 16. Et si je le tranche, c'est parti. Vous pouvez voir que j'ai beaucoup plus de contrôle sur le fonctionnement de tout cela. Et vous pouvez voir comment celui-ci est tranché, comment tous ces éléments sont tranchés. Ils sont assez bons, pas parfaits, mais ils sont assez bons, je crois que si vous en avez les compétences, vous pouvez aller de l'avant et les ajouter vous-même. Voyez ce qui fonctionne, voyez ce qui ne fonctionne pas. Mais je vous recommande de les garder tous 16 par 16 et vous comprendrez pourquoi dans un peu. Je vais donc appliquer cela. Et évidemment, si vous avez téléchargé vos propres sprites, vous
devrez, bien sûr, trouver votre propre taille de tranchage. Et pour une raison quelconque aujourd'hui, l'unité est extrêmement lente. J'ai donc appliqué les modifications, j'ai tout coupé. Alors maintenant, quand je sors du Sprite Editor, c'est parti. Vous pouvez voir toutes les tuiles. Quelle est la prochaine étape ? L'étape suivante consiste à aller de l'avant et à les ajouter à la palette de tuiles. Maintenant, nous avons tout tranché. L'étape suivante consiste à créer les ressources de tuiles et à les intégrer dans la palette de tuiles. Donc ce que je vais faire, c'est que je vais ramasser ces Sprite tranchés et je vais le faire glisser dans le rien. Nous devons tout d'abord créer une palette. Quel sera donc le nom de la palette ? Appelons simplement ça les principales catacombes. catacombes, c'est ainsi que nous écrivons les catacombes. Où devrions-nous créer cela ? Eh bien, vous pouvez l'ajouter soit dans les sprites soit vous pouvez créer une nouvelle ressource ici, qui sera le jeu de fichiers ou la palette de tuiles ou tout ce que vous voulez appeler, entrez, sélectionnez le dossier, et voilà. Vous pouvez maintenant faire glisser ça. Vous pouvez donc faire glisser l'image entière, alors faites-la glisser dans la palette de tuiles ici. Où voulez-vous le sauvegarder ? Bien sûr, c'est aussi votre choix, mais je vais le faire si j'irai dans le jeu de tuiles ici, et j'appellerai cela le dossier File Assets. Et gardons ça dans les sprites parce que nous l'avons déjà ignoré. Et je pense qu'il vaut mieux ignorer les jeux de tuiles car ils dépendent déjà des sprites. Cela dépend donc de vous. Peut-être que si vous voulez les conserver, si vous souhaitez allouer un peu plus de ressources dans vos commits, je vous recommande de le faire. Si ce n'est pas le cas, je vais sélectionner ce dossier. Et maintenant, vous pouvez voir que les sprites sont convertis en ressources de tuiles. J'utiliserai donc le pouvoir de l'édition et je le ferai dans une seconde. Oh, d'accord, bon retour. Maintenant, nous avons tout mis en place. Si je rends cette palette de tuiles un peu plus grande, voilà, vous pouvez voir tous les sprites qui étaient au départ ici sont en ce moment. Ici. Maintenant, vous avez peut-être rencontré beaucoup de problèmes ici, surtout si vous essayez de faire quelque chose de différent de 16 par 16, vous remarquerez qu'ils sont tous au-dessus de l'autre. C'est un peu délicat de s'accrocher. Ce que je recommande, c'est que tous les sprites soient
tranchés de la même taille afin de ne pas avoir de confusion et de faire glisser l'image entière, pas tous les 11 par un. Maintenant, nous avons ceci. Comment commencer à dessiner ? Eh bien, vous pouvez voir que nous avons une palette, nous avons les ressources, mais le mappage de fichiers actif n'est rien. Ce que nous allons faire, c'est que je vais cliquer avec le bouton droit ici et je vais entrer dans l'objet 2D. J'ai donc choisi la hiérarchie des objets, et vous pouvez voir que j'ai la possibilité de créer une carte de tuiles. Et j'ai beaucoup d'options. Je peux créer un x isométrique, rectangulaire, ordinal et cetera. Mais je vais créer une carte de pile de forme rectangulaire. Et vous pouvez voir immédiatement que j'ai une carte de tuiles active ici. Et ce que je peux faire, c'est que je peux dupliquer cela et avoir une deuxième carte de tuiles. Et je peux appeler ça, par exemple, le sol. Et je peux appeler ça les murs. Et maintenant, je peux choisir entre les murs et le sol. Et pourquoi est-ce important ? Parce que plus tard, nous aurons besoin de différents niveaux pour notre jeu. Vous le verrez dans la vidéo suivante lorsque nous commencerons à ajouter des collisionneurs, etc. Mais pour l'instant, ce que nous allons faire, nous allons sauvegarder la scène des échantillons. Et je vais aller dans le dossier scènes. Et vous pouvez voir qu'il s'agit de l'exemple de scène. Je vais appeler cela le test peut-être un ou quelque chose ou vous pouvez l'appeler niveau un, comme vous voulez. Je vais appeler ça le meilleur. Il nous demandera de recharger. Rechargez. Je vais le faire, je n'en suis pas sûr. Gardons la grille ici. Et je vais dupliquer celui-là. Nous avons donc maintenant cet outil. Allons au test 2. Vous pouvez voir que le nom du changement de scène apparaît, il s'agissait
donc du premier test. Maintenant, c'est deux. Je vais supprimer l'arrière-plan. Maintenant, le joueur et le squelette flottent en plein air. Et maintenant, ce que nous allons faire, c'est que je vais sélectionner la grille, je vais choisir le terrain pour l'instant. Gardons tout au sol et je vais commencer à dessiner. Alors, que devrions-nous utiliser comme terrain ? Vous pouvez voir que c'est le, et je vous recommande de parcourir les images. Je vous ai laissé les exemples que vous pouvez suivre. Mais pour l'instant, tout d'abord, c'est que nous allons dessiner le terrain. Nous pouvons choisir parmi ces derniers maintenant, évidemment ce n'est pas très bien. Mais pas de soucis. Parlons de quelques outils que nous avons ici. Tout d'abord, chaque fois que vous voulez choisir, assurez-vous de connaître la carte de tuiles sur laquelle vous vous trouvez. Vous saurez pourquoi dans la prochaine vidéo. Pourquoi est-ce si important ? Choisissez l'une des tuiles. Je vais donc choisir ces quatre. Et maintenant, vous pouvez voir que je peux simplement cliquer ici, mais ils sont très petits. Donc, ce que nous faisons toujours, nous allons aller au jeu de tuiles, irons à l'image que nous avons utilisée. Et nous allons mettre fin à l'inspecteur. Allons en faire 50. Appliquez les modifications. Voyons à quel point cela devient grand. Bon, donc ce n'est pas suffisant. Allons en faire 16. Appliquez les modifications et celles-ci devraient remplir le carré entier. Bon, on y va. Nous changeons donc le pixel par taille. Pixels par unité, peut-être même, nous devrions les agrandir encore parce que vous pouvez voir ici, il y a une petite ligne bleue mince que nous ne voulons pas. Faisons donc environ 15 ans. Appliquez les modifications. Et on y va. Nous n'avons donc plus aucun de ces contours. Ok, super. Assurez-vous qu'il s'agit de filtres ponctuels appliqués. Ils deviendront donc beaucoup plus croustillants. Bon, on y va. Maintenant, dans la palette de tuiles, effectuons un zoom arrière. Qu'avons-nous ici ? Nous avons le terrain, nous avons les différentes tuiles et les outils apparaissent. Donc, si vous les survolez, vous pouvez voir ce que chacun de ces outils signifie. Celui-ci pour la sélection, celui-ci peut être utilisé pour le déplacement. Mais les trois plus importants, je crois, c'est le pinceau. Alors, le pinceau, comment ça marche ? Ainsi, par exemple, ce que vous voulez ici, vous obtenez le pinceau et maintenant vous pouvez le peindre sur votre scène, juste ici, entre les carrés. Par exemple, vous pouvez également utiliser cette peinture, une boîte remplie. Donc, ce que vous pouvez faire, c'est que vous pouvez choisir l'une de ces options ou bien sûr en choisir plusieurs. Ensuite, vous pouvez créer ce genre de look, créer toute cette carte en utilisant celle-ci. C'est donc un outil très puissant pour dessiner plus rapidement. Vous y allez, vous pouvez le voir, vous pouvez créer beaucoup plus, beaucoup plus vite, mais ce n'est pas très précis. Alors, qu'avons-nous d'autre ? Nous avons le pic ou le chapiteau sélectionné. Je ne l'ai jamais utilisé honnêtement, le remplissage d'inondation ne l'a jamais utilisé. Et les tableaux, ce qui est très important. Alors, comment faites-vous cela ? Vous avez juste aimé les tableaux et si vous le souhaitez, vous pouvez choisir un grand carré, sélectionner la gomme, et là, vous pouvez tout supprimer. étant fait,
j'espère que vous avez compris ce que nous avons fait. J'espère que vous avez compris comment nous avons passé des sprites à la tranche, aux ressources de tuiles, à la palette de tuiles. Et enfin, comment nous créons la carte des tuiles. Mais pour l'instant, je vais vous laisser à votre propre créativité. Mettez la vidéo en pause dès maintenant et essayez créer une pile ou une carte de tuiles ou n'importe quelle carte de votre choix. Mais pour l'instant, ne prenez pas trop de temps, car dans la vidéo suivante, nous allons créer deux cartes de tuiles différentes. Et en utilisant ces cartes de tuiles, nous allons comprendre pourquoi nous avons besoin de différentes cartes de tuiles pour différents niveaux. Et encore une fois, pour qu'aucune. J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo.
34. Colliders de Tilemap: Bienvenue, mes collègues développeurs de jeux. Comme vous pouvez voir ce que je vous ai promis que nous allons améliorer un peu les choses. J'ai tenu ma promesse. Maintenant, lorsque nous lançons le jeu, vous remarquerez qu'il n'y a pas de points bleus, pas de lignes bleues. Et si j'ai traversé, j'ai essayé de traverser ça. C'est un mur. Si je monte, c'est un mur. De toute évidence, nous avons quelques choses que nous pouvons changer. Si vous regardez de près en mode Scène, évidemment, ce n'est pas encore parfait, mais vous pouvez voir quand je tire sur un mur, c'est un mur de l'arrière, de l'avant, et l'ennemi nous poursuit toujours. Tout va bien, tout fonctionne bien. Donc, ne perdons plus de temps et commençons. Oh, l'affaire. Maintenant que nous avons mis en place tout le temps pour l'utiliser correctement. La première chose que nous devons comprendre est donc la carte de tuiles et ce que fait l'inspecteur de cette carte de tuiles. Nous avons donc créé les murs, le sol, et vous pouvez voir qu'ils ont également, chacun d'entre eux possède un composant de carte de tuiles et un moteur de rendu de carte de tuiles. Comme le moteur de rendu de carte de tuiles fonctionne comme le moteur de rendu sprite, nous pouvons également choisir une couche. Par exemple, je peux aller au sol et choisir l'arrière-plan du calque, les murs, l'arrière-plan du calque. Et je peux, par exemple, faire les murs un et le Ground Zero. Vous pouvez jouer si vous le souhaitez. Vous pouvez même créer votre propre calque de tri en fonction nombre de choses que vous souhaitez être au premier plan ou en arrière-plan. Je vais tout d'abord tout
supprimer ou tout effacer, devrais-je dire ? J'efface donc tout et vous pouvez voir pourquoi cela ne s'efface-t-il pas. Laissez-moi simplement agrandir l'écran. Pourquoi n'est-ce pas une augmentation ? Eh bien, parce que nous utilisons où est-il ? La carte de tuiles active est le sol. Nous ne pouvons donc supprimer que les choses qui se trouvent sur le terrain. Si je choisis les murs. Vous y allez. Je peux maintenant le supprimer car lorsque j'ai créé cela, j'ai utilisé des murs. Faisons juste un petit test. Maintenant que nous avons configuré les calques de tri, je vais créer ce grand carré ici, qui est, oups, pas le sol, excusez-moi, le sol. Et maintenant, je vais créer ce petit terrain ici. Et maintenant, si je vais dans les murs et allons-y et ajoutons celui-ci. Alors, tu te rappelles pourquoi avons-nous eu les lignes bleues avant ? Parce que nous avions ces grandes lignes ici. Vous pouvez voir qu'ils sont transparents, donc ils ne reflètent que ce qui se trouvait derrière. Maintenant, parce que c'est le cas, laissez-moi cliquer sur celui-ci. Donc maintenant parce que ce sont les murs et les murs sont rendus devant l'arrière-plan. Quand je les mets ici, on y va, on voit qu'il n'y a plus lignes bleues derrière qui représentent la couleur de l'arrière-plan de la caméra. Je peux également le faire ici. Je vais donc les sélectionner. Et vous pouvez voir que ce sont des murs, je peux immédiatement dessiner dessus. Mais vous pouvez voir à l'heure actuelle une incohérence, comment, par exemple, sécheresse est d'avoir un troisième mur continu et un quatrième mur. Dans ce cas, nous devrons sélectionner quelque chose de différent, c'
est-à-dire ces lignes ici. Et maintenant, nous pouvons ajouter l'illusion ou créer l'illusion que nous avons. Permettez-moi de créer l'illusion que nous avons tous ces éléments connectés ensemble. Et si tu regardes dans le jeu, si je dirige le jeu, ça n'a pas d'importance. Laissez-moi simplement agrandir cette fenêtre de jeu. Vous y allez. Vous pouvez voir à quoi tout cela
ressemble, on dirait que tout est normalement configuré et nous pouvons simplement lancer le jeu et nous promener. Et puis vous y allez, vous pouvez voir que je peux me promener en plus de ça. Tout fonctionne parfaitement bien. Mais le problème, c'est que maintenant je peux marcher à travers les murs et ce n'est généralement pas un problème énorme, mais si votre joueur quitte éternellement
plus, de plus, lorsque nous tirons, vous pouvez voir que les balles continueront de continuer pour toujours parce qu'ils n'interagissent avec rien. Ou nous n'avons plus de murs, ils n'interagissent pas avec les murs. Alors, comment allons-nous y remédier ? Eh bien, nous pouvons aller de l'avant et commencer à ajouter des collisionneurs et toutes ces bonnes choses. Mais ce n'est évidemment pas la solution la plus efficace pour résoudre le problème. Ce que nous pouvons faire, d'autre part, ajouter quelque chose appelé collisionneur de cartes de tuiles. Donc, si je vais sur les murs, et c'est pourquoi nous avons créé des murs, pas seulement le sol. Allez voir l'inspecteur. Je peux ajouter ici un composant qui sera
le collisionneur de cartes de tuiles 2D. Et voilà. Vous pouvez voir que tout ce qui est sous les murs a le collisionneur vert sur lui. Et vous pouvez voir qu'ils se croisent. Pourquoi ? Parce qu'on les a rendus un peu plus grands que la photo ? Vous y allez. Nous les avons fait juste un peu plus de 16 ans. Nous en avons fait 15. Si je les fais 16, je pense qu'on peut commencer à voir des fissures entre chaque sprite. Maintenant, tu sais quoi ? Ça a l'air assez bien. Je pense qu'il n'y a pas de divergence entre les deux. Bon, alors gardons ça à 16 ans. J'ai donc changé les pixels par unité à 16. Et maintenant, si je choisis les murs, il y a toujours une intersection, mais c'est bon, ce n'est pas un problème énorme. Permettez-moi de démontrer que cela fonctionne. Donc maintenant, si je cours, vous pouvez voir que j'ai heurté un mur et que je ne peux plus le traverser. Excellent, tout fonctionne. Ils se trouvent sur la couche par défaut. Vous pouvez modifier la couche si vous le souhaitez également pour chaque carte de tuiles. Mais maintenant, il y a quelque chose que nous devons ajouter, ajouter ce planeur ne suffit pas. Ce que nous faisons, c'est que nous devons ajouter quelque chose appelé planeur composite. Pourquoi ? Permettez-moi de vous montrer comment cela va tout changer et vous comprendrez par vous-même. Maintenant que j'ai ajouté un Collider composite, vous remarquerez que j'ai également ajouté automatiquement un corps rigide. Un corps rigide est donc nécessaire lorsque vous avez un collisionneur composite. Et si vous regardez ici dans le collisionneur de cartes de tuiles, vous pouvez voir que nous avons quelque chose appelé utilisé par la boussole. Si j'allume ça, tu y vas. Vous voyez que nous n'avons plus beaucoup de planeurs. Cela signifie qu'il suffit de le refaire, décochez les États-Unis par composite, vous remarquerez que nous avons beaucoup de collisionneurs. Lorsque j'utilise le composite, nous n'avons qu'un seul collisionneur sur toutes les formes. C'est extrêmement utile. Je ne peux pas insister sur le fait que cela permet
d'économiser de l'énergie et de la puissance de calcul de notre calcul. Cela nous permettra de créer un seul collisionneur autour de nombreux planeurs enchevêtrés. Assurez-vous donc d'ajouter un collisionneur composite 2D avec cela. Compris. Maintenant, il est temps de relever un petit défi. Ou avant de le faire, je veux juste lancer le jeu pour peut-être vous faire comprendre quels sont les défis. Si je dirige le jeu. Et voilà, vous pouvez voir que quelque chose est vraiment sérieux de faire de cette partie de votre jeu, à certaines sortes de mécaniques du jeu. Le joueur joue donc avec le jeu et avec la carte. Alors, laissez-moi juste zoomer un peu pour que vous puissiez voir que la carte ne se comporte pas complètement comme elle devrait être. Je pense que c'est un euphémisme. Laissez-moi juste essayer de repousser ça et voilà. Maintenant, nous n'avons plus de carte et elle continue de tomber si bien qu'on l'a compris. En dehors du chemin, cette chose que nous penserions que je ne résoudrais pas le problème était la carte suivante. Si vous ne voulez pas d'indices, vous savez comment résoudre ce problème. Mettez la vidéo en pause dès maintenant, relancez le défi. Si ce n'est pas le cas, vérifiez l'inspecteur sur la carte des tuiles, vous verrez un corps rigide. Cela signifie que nous avons une gravité appliquée. Enlevez l'échelle de gravité ou mieux encore, vous pouvez rendre l'objet entier cinématique ou statique. Je recommanderais statique car statique signifie qu'il ne bougera jamais et que notre carte ne devrait évidemment pas bouger à moins que vous ne vouliez, je ne sais pas, ajouter la carte en rotation. Une chose bizarre que nous venons de vivre. Donc, une fois cela fait, mettez la vidéo en pause maintenant, allez faire le Chaldéen. Bon, bon retour. Alors, comment avez-vous fait ça ? Je vais aller de l'avant et alors que les murs rigides du corps rendent le jeu statique, lancez le jeu. Et maintenant, nous devrions voir qu'il n'y a plus rien qui tombe et que tous les collisionneurs fonctionnent parfaitement bien. Bon, c'est fait, j'espère que ça vous plaira. Et dans la vidéo suivante, assurez-vous de créer une sorte de carte. Il devrait être plus grand que la caméra car nous allons mettre en place un camp d'automne. Alors pourquoi est-ce que c'est ça ? Eh bien, si je disais ajouter un peu plus de terrain ici, assurez-vous que nous avons sélectionné le terrain. J'ajoute le sol. Voyons si je fais de ça un terrain énorme. Je dirige le jeu. Je veux pouvoir parcourir notre carte et notre piste, tout comme le jeu que nous avons vu au début. Je veux donc avoir la liberté de me promener. Mais évidemment, si je regarde dans le menu du jeu, je ne vois rien. Je peux le voir en mode scène. Je ne peux pas le voir dans notre jeu. Pourquoi ? Parce que la caméra ici, vous pouvez voir, laissez-moi juste que c'est la caméra, c'est la caméra principale, donc nous devrons la déplacer pour que nous puissions toujours suivre le lecteur. Et c'est quelque chose que nous apprendrons dans la prochaine vidéo quand il s'agit de cinéma cinéma, j'espère que vous appréciez, j'espère que vous commettez toujours vos changements. Et j'espère que vous avez laissé une critique parce que cela m'aide beaucoup. On se voit dans la vidéo suivante.
35. Créer une pièce plus grande (Cinemachine): Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, ce que nous avons fait, c'est que lorsque nous lançons notre jeu, vous remarquerez qu'au fur et à mesure que
nous nous promenons, nous pouvons traverser toute la pièce et la caméra continue de nous suivre. Et nous le faisons en utilisant quelque chose appelé la machine du Sénat, qui est un outil extrêmement puissant que nous allons mettre en œuvre dans cette vidéo. Ne perdons donc plus de temps. Et passons à la création de ces cinémas. Regardez à quel point c'est cool maintenant, notre jeu est beaucoup, beaucoup plus agréable, beaucoup plus professionnel, n'est-ce pas ? Lorsque vous avez une caméra qui suit, ne perdons plus de temps. Commençons. Bon, alors bienvenue. Comme vous pouvez le constater, j'ai créé une
sorte de carte. Je pense que ça m'agrandit. S'il vous plaît, décaposez-le. Okay, tu y vas. Ouvre ça. C'est donc le niveau que j'ai créé. Ce n'est pas grand chose, mais ça marche. Comme vous pouvez le voir, j'ai ajouté ces deux fenêtres. J'espère que vous avez pris le temps de jouer et de comprendre comment tout cela fonctionne. Il m'a fallu environ deux à trois heures de jeu, assurer de l'apparence et du fonctionnement de tout, etc. Mais c'est le résultat que nous avons obtenu. Vous pouvez voir que j'ai quelques, ok, c'est une erreur ici, par exemple, vous pouvez voir que j'ai ajouté beaucoup de noir et de fond. Vous saurez pourquoi dans un peu. J'ai fait des murs ici que nous ne pouvons pas franchir. Et j'ai fait quelques murs ici qui sont infusés quelques choses ensemble pour créer toutes ces choses. Donc quelques murs noirs, quelques causes naturelles, des
érudits, même des murs rougeâtres et ainsi de suite. Mais le problème, c'est que si je réduit cette fenêtre, mettez-la ici. Phi 12, lancez le jeu. Alors, tu y vas. Si je dirige le jeu, je peux me promener et toute cette carte, mais je ne peux pas me voir dans la vue du jeu. Alors imaginez que si nous n'avions pas la vue de la scène, comment pourrions-nous nous voir nous-mêmes ? Et en fait, vous pouvez le tester. Vous pouvez maximiser votre jeu. Donc, lorsque nous lancerons le jeu, nous aurons un écran plein écran. Bon, maintenant je veux m'éloigner, mais voilà. Vous ne pouvez rien voir. Alors que le joueur, s'il vous plaît, oh, voilà. Nous y sommes. Et maintenant, nous essayons de tirer. Il y a un peu de retard, un peu de retard, mais ça ne s'inquiète pas. Quoi qu'il en soit, comment allons-nous y remédier ? Eh bien, ce que nous pouvons faire, c'est que nous pouvons aller de
l'avant et attacher la caméra au Doom Player et en faire un enfant. Et rappelez-vous que l'appareil photo ou un enfant bouge toujours avec le joueur. Donc, si je dirige le jeu maintenant,
voilà , problème résolu maintenant, nous avons un camp d'automne. J'espère que la vidéo vous a plu et je vous verrai dans la prochaine. Je suis juste en train d'obtenir. Et ce que nous allons faire, c'est utiliser une technique beaucoup plus sophistiquée pour avoir notre follicule. Donc je vais juste retirer la caméra principale du doom player, de l' enfant ou du parent, peu importe ce que vous voulez appeler, sauvegardez ça. Ensuite, nous allons passer par la fenêtre. Le gestionnaire de paquets attend que Riunite récupère nos paquets. Et n'importe quel jour maintenant. Et ici, nous allons entrer dans le registre Unity et nous allons trouver cette machine ici. Lorsque vous trouvez des machines, cliquez
simplement sur Installer, attendez qu'elles soient installées. Et une fois l'installation terminée, vous pouvez en savoir plus sur. Vous pouvez donc voir ici qu'il s'agit d'un outil de caméra intelligent pour les créateurs passionnés. Très joli. Nous allons donc faire apparaître cet onglet supplémentaire, qui est la machine de cinéma. Et vous pouvez voir que nous pouvons créer beaucoup de choses avec la machine à cinéma. Et ce que nous voulons vraiment, c'est créer une caméra virtuelle. Alors, faisons-le. Nous allons créer une caméra virtuelle. Vous le verrez ici. Les Canvas C et V l'appellent simplement la caméra virtuelle. Appuyez sur Entrée. Je vais le placer juste ici à côté de la caméra principale. Et sur la caméra principale, je vais aller voir l'inspecteur. Et immédiatement, je peux voir ici que nous avons ajouté quelque chose qui s'appelle le cerveau de la machine de cinéma. Et si vous n'avez toujours pas ce composant sur votre caméra, assurez-vous de l'ajouter car c'est ce qui nous permettra d'utiliser la caméra virtuelle. Qu'est-ce que la caméra virtuelle ? Vous pouvez voir qu'il ne s'agit que d'une transformation avec ce composant, qui est une caméra virtuelle de machine centrale. Gardez cela à l'esprit. Je vais m'ouvrir et vous verrez que nous avons beaucoup de choses que nous pouvons ajouter, nous pouvons changer, nous pouvons jouer autour. Je ne vais pas entrer dans tous les détails ici parce qu'il y en a beaucoup. Ce que je vais faire, c'est que je vais d'abord
cliquer avec le bouton droit de la souris et la hiérarchie. Et je vais vraiment régler tout ça 200 000. Et vous pouvez voir que nous avons quelque chose qui vient de disparaître. Et quel est le problème ici, la caméra virtuelle. Donc, la caméra principale. Ok, donc si je passe en mode 3D, vous remarquerez que lorsque le z est 0 signifie qu'il est devant, donc nous ne pouvons pas, nous regardons par derrière. Ce que je dois faire, c'est simplement le déplacer légèrement. Retour pour que nous puissions voir la vue et voir la caméra en 3D ici. Ces lignes blanches représentent ce que voit la caméra. Je vais revenir en 2D, puis je vais dans la caméra virtuelle. Vous pouvez voir ici que nous avons une option pour le suivi et l' objet avec lequel la caméra veut bouger ou le corps et la cible. Quel est donc l'objet que je veux déplacer avec le doom player ? Je vais donc ajouter le doom player, et je vais sauver tout ça. Veillons également à ce que ces appareils photo soient joliment plumes. Je vais donc créer un objet de jeu vide, réinitialiser sa position sera les caméras. Et veillons simplement à ce que ces deux caméras soient l'enfant des caméras. Et maintenant, nous les avons correctement configurés. Sauve ça quand je lance le jeu, tu y vas. Vous pouvez voir que maintenant j'ai une très belle caméra de suivi qui suit le joueur partout où il va. Mais il y a beaucoup de choses que nous pouvons changer à l'aide de cet appareil photo. Je vais donc tout d'abord
sortir de la moisissure en argile, m'
assurer que nous ne maximisons pas le jeu. Et je vais aller dans la caméra virtuelle. Et que sont toutes ces choses ici ? Vous pouvez voir que nous pouvons changer cela de transposition à d'autres choses. Comme je l'ai dit, allez chercher ce que toutes ces choses. Mais l'une des choses que nous voulons surtout changer est décomposée ici. Et vous pouvez voir que le look est nécessaire. Vous pouvez choisir quelque chose de différent. Vous pouvez choisir de ne rien faire avec ce but. Ce sont toutes les options que vous pouvez utiliser. Et ici, vous pouvez voir que nous pouvons changer cela en transposition de cadrage. Changez donc le corps en transposition de cadrage. Si vous ajoutez le regard,
si j'ajoute le lecteur dôme et le regard devant, regardez ce qui change. Maintenant, quand je jouerai au jeu, vous verrez quelque chose d'un peu différent. Je pense que le savoir jusqu'à présent semble être le même. Vous pouvez garder le regard devant vous. Vous pouvez changer, jouer avec les options. Je vais juste vous montrer les principales choses ici. Donc, dans le corps, tout d'abord, vous pouvez voir les fenêtres ici, les différentes couleurs du jeu. C'est parce que le guide Windows du jeu ici même dans l'Inspecteur, je peux les activer et les désactiver. Alors, qu'avons-nous ? Tout d'abord, nous avons le regard devant
nous, nous avons le lissage du regard, nous avons l'
amortissement X, l'amortissement, etc. Je ne sais même pas ce qu'ils font exactement. Mais une très bonne astuce que vous pouvez faire est de pouvoir aller de l'avant et augmenter au maximum, puis jouer au jeu et voir ce qui se passe. Comme vous pouvez le voir, oui, nous y allons. L'appareil photo est donc plus rapide que le lecteur. Et c'est parce que le regard à venir est très fort. Donc, si je lisse le regard à venir, vous remarquerez qu'en marchant, les caméras commencent
à se déplacer devant le joueur et qu'elles sont représentées par ce petit point jaune. Et ici, vous pouvez voir que le point prédit où le joueur est sur le point d'aller et permet à la caméra de s'y rendre un peu plus vite que le joueur. Si je le mets à 0, il se déplacera simplement avec le joueur au fur et à mesure. Nous pouvons augmenter le lissage un peu plus le lissage à l'avenir. Maintenant, vous pouvez voir que c'est un peu plus lisse, un peu plus agréable. Et ça, tu y vas. Qu'avons-nous d'autre ? Nous pouvons ignorer le Y, sorte que cela changera son apparence dans la direction Y. Et voyons ce que nous avons d'autre ? Nous avons l'amortissement X, alors mettons ça à 20 et voyons ce qui se passe. Alors, tu y vas. Vous pouvez voir que lorsque le joueur touche le côté rouge de ce carré ou de ce rectangle, vous pouvez voir que la caméra commence à bouger et si ce n'est pas le cas, elle est lentement, passe lentement au x ou vous pouvez la définir sur 0. Et dans ce cas, chaque fois que nous bougeons, il suit immédiatement la couche. Ramenons-le à un. Voyons ce que nous avons d'autre. Nous avons l'amortissement Y, l'amortissement V, Z. Voyons voir, nous avons l'écran x. Voyons si nous le déplacons afin que nous puissions jouer notre jeu avec le joueur à droite. Nous pouvons le placer au milieu, ou nous pouvons définir le grand écran pour qu'il soit en bas. Alors, tu y vas. Nous avons la distance de la caméra, ce qui est une très belle touche, et elle ne fonctionne pas actuellement. C'est peut-être parce que la caméra ici devrait avoir une taille plus grande. Je ne sais pas quel est le problème ici. Et nous allons le réinitialiser. Donc, ici, réinitialisez tout. Alors, gardons ça à 10 ans. Nous avons la largeur de la zone morte. Donc, si j'augmente la largeur de la zone morte sur le y et sur le x, regardez ce qui se passe. Si je me déplace de haut en bas, de gauche et de droite, il reste en place. Et si je vais en dehors des limites, nous commençons
alors que la caméra commence à aller avec le joueur. C'est donc aussi quelque chose que vous pouvez modifier et jouer. Et en fait, j'aimerais le rendre un peu petit. Par exemple, si je me promène, rien ne se passe, puis lorsque je commence à bouger, la caméra commence à suivre le lecteur. Ok, passons autour du point zéro deux par 0,2. Et on y va. Nous pouvons donc nous déplacer un peu. Mais lorsque nous sortons des limites, les caméras commencent à nous suivre. Très bien, très bien. Qu'avons-nous d'autre ? Nous avons la profondeur de zone qui a essayé de la mettre à 100, voir ce qui se passe. Je ne sais pas exactement ce qui fait exactement. Mais gardons ça à 0. Voyez ce qui se passe maintenant ? Oui. Oh, d'accord. Ça semble beaucoup changer. Je pense que nous allons le mettre à 20. Rien, rien ne se passe. Gardons ça à 20 ans. La largeur de la zone douce, je pense que la zone sud est le carré rouge. Donc, si je le mets, disons, être petit, que se passe-t-il alors ? Je ne peux même pas sortir à cause du cœur ou de la largeur de la zone morte. Ok, pas de soucis à ce sujet. Réinitialisez la position. Voyons que nous avons le parti pris. Alors, que se passe-t-il ? Ok, donc maintenant la zone rouge est biaisée vers la zone bleue, et vous pouvez aller de l'avant et rechercher tous ces éléments vous-même. Et la seule chose ici, c'est cette caméra virtuelle dans son monde entier. Donc, si je veux entrer dans tous les détails, je pense que j'ai besoin d'une section entière en soi. Mais utiliser la machine Cinema comme un outil incroyablement puissant et l'un des outils les plus modernes dont nous disposons. Je vous recommande donc de jouer avec tous ces paramètres. Voyez ce qui fonctionne, voyez ce qui ne fonctionne pas. Mais rappelez-vous, comme vous l'avez vu en ce moment, tous les changements que nous avons apportés sont revenus ou ont été réinitialisés. Pourquoi ? Parce que toutes les modifications que nous effectuons dans
le mode de jeu sont réinitialisées lorsque nous arrêtons de jouer au jeu. Avec ces informations, je vous recommande de consulter documentation de Unity sur la machine du Sénat, voir ce qui se passe, de voir ce que vous pouvez utiliser. Par exemple, nous avons quelque chose appelé le bruit, que nous utiliserons dans quelques vidéos pour rendre
nos mécanismes de prise de vue un peu plus percutants. Et est-ce que cela a été fait avant que je parte, laissez-moi vous lancer un petit défi et laissez-moi vous lancer un petit défi et
votre défi sera de configurer votre machine. Jouez donc avec tous les paramètres que vous avez sur la même machine. La meilleure façon de savoir ce que chaque chose fait est de l' amener au maximum et de voir ce qui se passe alors. Eh bien, cette information, j'espère que ça vous plaira. Et dans la vidéo suivante, nous allons créer les portes ou quoi que vous vouliez les appeler, vous pouvez les appeler portes, ou vous pouvez les appeler les endroits où nous passons d' un niveau à l'autre jusqu'aux niveaux de sortie, Que vous vouliez les appeler. C'est tellement bien fait. J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo.
36. Créer des portes de clôture (boucle de chaque boucle): Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo. Comme vous pouvez le constater, nous avons ajouté quelques pièces à notre jeu. Nous avons ajouté quelques chemins à notre jeu maintenant notre niveau,
ou en fait, j'aurais dû dire notre niveau. Maintenant, notre niveau a l'air vraiment sympa. Vous savez que la machine Cinna a vraiment ajouté de la saveur au jeu, ce qui nous a donné la possibilité de courir et de créer des niveaux plus importants et plus intéressants. Mais ce n'est pas la seule chose qui soit très cool. Si je dirige le jeu, que je regarde la scène, vous pouvez voir que maintenant nous avons des portes qui nous empêchent de bouger. Et ce seront les portes que nous avons utilisées pour
passer au niveau suivant après avoir tué nos ennemis, évidemment nous devons tuer nos ennemis. Mais ce n'est pas notre préoccupation pour le moment. Plus tard, ce sera le cas. Mais pour l'instant, ne perdons plus de temps et commençons. Et nous apprendrons plein de trucs incroyables, incroyable cas 0. Nous allons donc aller de l'avant et créer des portes. Quelles sont les portes ? J'ai déjà créé la porte, vous pouvez les voir ici. Je vais vous fournir la porte et les ressources, mais c'est assez simple. Tout ce que j'ai fait a été recadrée où se trouve ? La photo principale ? La photo principale. Et il suffit d'utiliser la porte qui y était déjà disponible. Nous pouvons donc maintenant ajouter la porte ou l'ajouter ici. Nous avons donc la porte, on place le calque peut-être sur le joueur ou on peut régler le calque sur le, sur une porte séparée. Et ce que ces portes vont faire, c'est qu'elles vont aller de l'avant et fermer ces deux voies que j'ai également créées et je n'en ai pas parlé. Quel est l'intérêt de notre jeu ? Comment allons-nous passer d'un niveau à l'autre ? Comme on l'a vu dans le jeu Hadès. Chaque fois que nous tuons tous les ennemis, nous aurons ces deux barricades. Nous aurons cette porte et une seconde. Voici donc deux portes. Et quand nous tuons tous les ennemis, nous allons simplement désactiver les portes. Et cela permettra à notre joueur de se déplacer à travers et d'atteindre le sentier où il trouvera deux portails ici et il pourra les parcourir. Mais ne devançons pas nous-mêmes. Commençons tout d'abord par nous assurer que ces portes fonctionnent et que voulez-vous vous dire d'autre ? Oh, d'accord. Donc, si vous allez dans cette palette de tuiles ici, vous pouvez voir que nous pouvons ajouter ces deux ancres ou où que vous soyez, ces chemins ici. Mais le problème avec ces chemins, si je clique sur la grille et le mur, vous pouvez voir qu'ils empêcheront également le joueur de bouger. Qu'est-ce que je veux dire ? Je me suis assuré que c'est le sol et que ce soit le mur. Et si, par exemple, je dirige le jeu, vous verrez que je peux me promener partout. Et si je passe par ici, vous pouvez voir que je ne peux plus bouger. Et c'est parce que nous avons un collisionneur en dessous et c'est quelque chose que nous devrons réparer pour pouvoir les traverser, évidemment. Alors, comment allons-nous y remédier ? Eh bien, si nous allons dans notre ensemble de tuiles ici, les cônes, si nous faisons défiler vers le bas, nous pouvons trouver l'image ici. Allez dans l'inspecteur, sélectionnez l'éditeur Sprite. Ouvre ça. Si nous passons de l'éditeur Sprite à la forme physique personnalisée, cliquez ici. Vous pouvez voir que si nous, Où est-il, ok, donc l'ancre et ici, si nous cliquons sur l'un d'eux, nous pouvons générer. Et maintenant, nous avons les points d'ancrage de la physique. C'est ainsi que le collisionneur sera rendu sur ce sprite. Je vais donc m'assurer qu'il est très ou même pas petit. Je vais m'assurer que c'est environ 0. Donc, atout ça comme ça, comme ça, et enfin, mensonge ça. Je vais appliquer les modifications et attendre juste une seconde. Il faudra un peu de temps pour changer les collisionneurs et le jeu. De plus, nous devrons peut-être encore tirer ce prix. Ok, super, donc celui-ci est fini. Générons sur ce bloc. Également. Déplacez-le ici. Nous n'avons pas besoin de le déplacer vers le bas comme celui du milieu. Nous pouvons simplement le déplacer vers la droite. Appliquer. Maintenant, le collisionneur ne sera que de ce côté. Et enfin, trouvez n'importe quel jour. Maintenant, nous pouvons cliquer sur le dernier, générer OK. Pas le dernier. En fait, nous avons encore deux autres choses à faire. Donc. Maintenant que vous savez comment cela se fait, je vais faire celui ci-dessus et je suis blessé de m'
attendre à ce que vous fassiez cela en même temps avec moi. Ce n'est pas un défi. C'est juste que nous améliorons notre jeu. Alors générez, générez, déplacez cela vers la gauche, j'applique les modifications. Et pour une raison quelconque, c'est extrêmement lent. Je pensais que c'était peut-être un peu plus rapide. Alors allez, Générez. Déplacez ça ici. C'est comme ça, juste comme ça. Appliquer. Et je suis très enthousiaste à l'idée de vous montrer comment tout cela va fonctionner. Finale, générer à quel point est-ce ennuyeux ? Oui, c'est vrai. Je sais que c'est à cause du temps d'attente que nous devons attendre l'unité
pour générer de la physique. Je pense donc que nous aurions dû faire baisser cela aussi. Permettez-moi de voir que quelque chose aurait dû être déplacé vers le bas. Juste comme ça. Nous appliquons maintenant les modifications. Maintenant, si nous y retournons, nous devrions
peut-être les faire revenir. Peut-être que nous ne devrions pas. C'est le problème avec les limites. Si nous nous rapprochons de l'unité plutôt que de l'ouvrir, peut-être que nous ne trouverons pas ce problème. Voyons donc ce que nous avons. Alors voilà, les murs sont toujours là, mais si je choisis cette autre fois, et que je dessine ça, disons ici. Ok, donc évidemment, il y a quelque chose qui cloche ici. Oh, d'accord, donc nous avons eu un petit problème technique. Maintenant, si je clique sur les murs, je pensais que pour un secondaire ne fonctionnait pas, mais ça l'a fait. Maintenant, si vous voyez les murs, le collisionneur n'est plus là et juste sur les côtés sur lesquels il est prévu d'être. Maintenant, quand je dirige le jeu, je regarde ici. Si je monte, tu y vas. Je peux les traverser. Maintenant, il y a évidemment un problème, c'est que je me promène sur eux. Nous allons résoudre ce problème dans un petit peu, mais pour l'instant, cela fonctionne. Cela devrait peut-être être sur une couche différente. Ne vous inquiétez pas à ce sujet. Continuons. Que doit-on vraiment faire ici ? Et il faut ajouter les deux portes fermées. Nous devons obtenir une référence à eux et nous devons nous assurer que chaque fois que le joueur est dans la pièce, nous voulons les fermer. Commençons donc. La première chose que nous voulons faire, c'est que nous voulons aller de l'avant et ajouter les deux portes. Je vais donc entrer dans les portes et je vais choisir l'inspecteur ici. Et je vais juste l'ajouter dans la hiérarchie, créer l'objet d'abord Gore correspond ici. Je vais aller de l'avant et le définir comme le Charlotte l'a défini comme joueur. Ne vous inquiétez pas à ce sujet. Nous allons définir cela en tant que calque, calque. C'est donc la porte, et je vais le dupliquer. Ce sera la porte 2 et je vais la déplacer de l'autre côté. Ou vous savez quoi, ne dupliquons pas cela pour le moment. Nous devons d'abord ajouter un collisionneur de boîtes car nous ne voulons pas jouer ou passer par cette porte. Je vais donc ajouter une boîte collider 2D. Et voyons à quoi ressemble cette boîte. Ok, je pense que ça semble assez bien. Et je vais maintenant dupliquer cette porte. Ce sera la porte 2, et je vais l'emmener ici. Maintenant, ces deux voies sont fermées. Je vais diriger le jeu. Je vais essayer de franchir la porte et vous y allez. Vous pouvez voir que je ne peux pas traverser. Excellent. Quelle est la prochaine étape ? La prochaine étape est que je vais préfabriquer ça. Je vais entrer dans le préfabriqué, cliquez avec le bouton droit de la souris. Créez un dossier, une pièce ou des pièces ou mal. Ce sera pour tout ce qui concerne une pièce. Et je vais juste préfabriquer ça et j'appellerai ça simplement la porte. Vous y allez. Et maintenant, je vais l'ajouter à nouveau aux préfabriqués. Il est donc attaché au préfabriqué. Donc, si jamais nous changeons quelque
chose, ces changements se produisent pour tout. Bon, donc allons maintenant créer un objet de jeu ici, qui va s'appeler la salle. Je vais réinitialiser sa position. Et cette pièce aura un enfant qui s'appelle les portes. Et ce sera l'objet qui tiendra toutes les portes que nous avons dans la pièce. Nous allons maintenant créer un nouveau script ici. Et nous allons l'attacher à la pièce, et ce sera le responsable de la salle. Donc, les scripts, cliquez avec le bouton droit de la souris, créons un dossier pour les gestionnaires. Et ici, nous allons créer un script « C-sharp » pour la pièce. Responsable. Appuyez sur Entrée, attendez qu'il soit compilé. Non, merci. Je n'en ai pas besoin pour le moment. Et attendez qu'il soit compilé. Bon, donc, les chambres, ajoutons le script ici. Ouvrons le responsable de la salle. Et de quoi avons-nous besoin ici ? Eh bien, nous avons besoin d' un ensemble d'objets de jeu qui représenteront les portes que nous voulons fermer. Donc l'objet du jeu et le tableau, qui sont les portes à fermer. Gardez ça. Et maintenant, ce que nous voulons faire, c'est que nous voulons créer un énorme déclencheur autour de l'ensemble de la carte. Et puis vérifiez quand le joueur se trouve dans cette salle de déclenchement. Et pourquoi devons-nous être à l'intérieur de la sucrerie ? Parce que peut-être. Par exemple, vous voulez que votre jeu ait un niveau un peu plus important. Peut-être que lorsque vous franchissez une sorte de porte, les portes se ferment et que le niveau commence et jusqu'à ce que vous tuiez tous les ennemis, vous pouvez sortir de la pièce. C'est pourquoi je voulais suivre
ce processus d' arrêt consistant à fermer les portes uniquement lorsque le joueur est à l'intérieur du trône. Alors, ajoutons tout d'abord ces deux portes en arrivant à verrouiller ça aux deux portes des portes à fermer. On y va, sauve ça. Et maintenant, je vais revenir en arrière et mon scénario. Et ici, je vais créer un booléen qui sera un champ sérialisé. Et ce sera la porte la plus proche sur la couche. Entrez. Gardez ça. Et qu'allons-nous faire ici pendant que nous allons
passer en revue toutes ces questions sur le sucre. Entrez. Ok, ça aurait dû être trop profond. Et en fait, créons l'entrepreneur entrer immédiatement. Et ici, nous allons vérifier si la balise
collision.com est la couche. Maintenant, je vais tricher parce que je sais déjà comment le joueur est écrit. Et nous allons vérifier si le joueur entre à huis clos. Bon, donc maintenant, nous voulons aller de l'avant et fermer nos portes. Maintenant, nous avons ce tableau ici. Que devons-nous faire ? Devrions-nous les parcourir tous et les fermer un par un ? Je devrais donc écrire porte à fermer, par exemple, 0 point actif à vrai, puis faire porte un, porte à porte trois. Nous pourrions le faire, mais il y a un problème et nous ne savons pas combien de portes nous aurons. Ce que nous pouvons faire, c'est que nous pouvons les parcourir en boucle. Et l'une des premières boucles complètes ou premières que je veux vous enseigner est la boucle pour chaque boucle. Qu'est-ce qu'une boucle pour chaque boucle ? Voyons comment fonctionne cette structure. Il vous permet de parcourir chaque chose d' un ensemble de choses du même type dans un tableau. Qu'est-ce que je veux dire par « choses » ? Disons donc que nous avons un type qui, dans notre cas, est l'objet du jeu. Le truc, c'est la porte des portes que nous voulons fermer. Donc, ce que nous faisons, comme il est dit, pour chaque porte, qui est de type objet de jeu dans les portes à fermer, nous pouvons aller de l'avant et faire des choses avec. Par exemple, nous pouvons accéder à une méthode sur la chose. Nous pouvons utiliser la chose dans une autre méthode et nous pouvons exécuter d'autres choses. que cela expliquait ce que nous voulons faire ? Notre objectif dans cette vidéo est d'aller de l'avant et d'accéder ou de passer en boucle à l'aide du For Each, nous voulons passer en boucle toutes les portes et nous assurer que toutes les valeurs actives sont vraies. Dès que le joueur entre dans la pièce, tout sera fermé jusqu'à ce qu'il tue tous les ennemis plus tard. Cela étant expliqué, je vais vous lancer un défi pour franchir toutes les portes et les fermer. Créez donc une boucle pour chaque boucle qui traverse toutes les portes approuvées fermées. Set, chaque porte est active. Et je vais juste vous donner un indice. Utilisez l'ensemble actif sur true. Je vous ai déjà montré. J'ai essayé de vous donner autant de mains que possible. Je sais que c'est peut-être la première fois que vous voyez des boucles. C'est une excellente occasion d'essayer de voir quelque chose pour la première fois et d'essayer de le mettre en œuvre devant vous sans que je vous l'apprenne au préalable. Je sais que c'est un peu difficile. Je le boirais comme l'un des défis les plus difficiles, mais ne vous inquiétez pas. Prenez votre temps. Mettez la vidéo en pause, essayez de faire de votre mieux et je vous verrai juste un peu. K, Comment avez-vous eu tout ça ? J'espère que ce n'était pas trop dur. Ce que nous allons donc faire, c'est que nous allons créer une boucle pour chaque. Et comme je l'ai dit, nous allons passer en revue les objets du jeu. Et nous pouvons appeler cela comme nous voulons les portes, les portes que nous pouvons appeler ABC vous comme nous voulons fermer les portes. Et ce que nous allons faire ici, c'est que nous allons simplement accéder à la porte, jeu de
points actif. Vrai. Gardez ça. De retour dans Unity. Nous allons aller de l'avant et activer ces portes. Disons donc qu'ils sont ouverts. La première chose que nous entrons dans la pièce. Ok, aussi, je n'aurais pas dû cliquer ici. Je vais retourner dans la pièce. Que s'est-il passé ici ? Et c'est quelque chose que je tombe toujours parce que j'ai eu la pièce et que je l'ai fait enfermer. J'ai donc choisi les deux portes et j'ai cliqué dessus. J'ai donc éteint la pièce. En fait, vous pouvez voir ici ce que vous choisissez, c'est toujours la pièce. Donc ce que je vais déverrouiller ça montre les deux portes. Et je vais le faire. Allez-y et éteignez-les. Je vais entrer dans la pièce. Je vais ajouter un composant qui sera un énorme collisionneur de boîtes. Maintenant, le seul problème ici est que peut-être le collisionneur
vérifiera du joueur et quand il n'est pas encore entré dans la pièce. Revenons ici et voyons sur Trigger Enter. Lorsque nous entrons dans le déclencheur, c'est à ce moment que cette méthode sera appelée. Voyons donc voir. Je ne suis pas sûr, parfois c'est à cause de la façon dont le script est exécuté. Donc le script de salle FVA exécuté d'abord, puis nous aurons la salle, puis nous aurons le joueur. Ainsi, le joueur entre en réalité. Je vais donc sauver ça. Je vais le faire, d'accord, donc c'est un déclencheur lorsque j'ai une erreur. Ok, donc cette erreur n'a rien à craindre. Lancez le jeu. Ok, donc les portes ne se sont pas fermées. Choisissons de fermer les portes à l'entrée du joueur. Bon, donc on y va. Cela a fonctionné. J'espère donc que vous avez compris quelle était ma préoccupation. Parfois, c'est ce qui arrive quand j'ai créé ce jeu pour la première fois. C'est ce qui se passe. J'ai donc dû créer quelque chose de différent. Mais j'ai remarqué que parfois ça marche, parfois pas. Je voulais juste vous le faire savoir à l'avance pour que vous ne pensiez pas Oh, Michael, chaque fois une erreur. En fait, j'espère que ça vous plaira. J'espère que vous avez fait le défi pour chaque défi. Je sais que c'était compliqué, mais c'est une bonne façon de mettre en pratique vos compétences en développeur de jeux. Je vous verrai donc dans la prochaine vidéo où nous allons attraper tous les ennemis que nous avons pour pouvoir les tuer, puis ouvrir les portes quand ils mourront. Je vous verrai alors. Assurez-vous de mettre en scène tous vos fichiers. Désolé pour ça. Et assurez-vous de me laisser un avis si vous ne l'avez pas encore fait. Cela m'aide beaucoup. Merci. voit la prochaine fois. Hé, Michael vient du futur, vous pensiez que vous vous êtes débarrassé de moi, mais vous ne l'avez pas fait. Lorsque nous lançons le jeu, j'ai remarqué quelque chose que vous pouvez voir que je
me demandais pourquoi le squelette ne nous tirait pas dessus et si j'essayais de tirer, vous pouvez le voir immédiatement. J'ai l'effet Bullet Impact. Quel est le problème ici ? Eh bien, parce que nous sommes assis à l'intérieur du collisionneur de la pièce, nous tirons et il interagit immédiatement avec elle. Le problème ici, c'est évidemment que ce sont les couches. Ce que nous voulons faire, c'est que nous allons ajouter une couche. On peut appeler ça les intouchables ou ce que tu veux appeler ça. Je vais juste appeler ça la couche de pièce. Appuyez sur Entrée. Et je vais entrer dans la matrice et ici les paramètres du projet. Et je m'assurerai que la couche de pièce n'interagit pas avec les autres couches de la pièce avec les balles ennemies. Et peut-être pouvons-nous même nous assurer qu'ils n'interagissent avec rien. Honnêtement, nous n'avons pas besoin d'eux, sauf pour le joueur. Nous voulons aller de l'avant. Mais pour l'instant, veillons simplement à ce qu'ils n'interagissent pas avec la documentation sur les puces que si nous trouvons un problème, cela pourrait poser problème et savoir quoi. Juste pour cette raison, nous allons tout éteindre, sauf ça. Fermé du match. Les bonnes portes devraient se fermer. Et si nous tirons, quelque chose ne va toujours pas. Oh, évidemment, nous devons le définir comme couche de pièce oui. changé d'enfant si vous voulez lancer le jeu ou non, peut-être que les enfants n'auraient pas dû être changés. OK. La porte se ferme et on peut tirer normalement. Peut-être que les enfants n'auraient pas dû être changés parce que je ne veux pas que les portes soient affectées. Passons à cette valeur par défaut. Oui. Les enfants ont changé. OK. Donc maintenant, nous pouvons tirer sur les portes, mais nous pouvons tirer autour des murs, si les portes. Oui. Tout fonctionne bien. Donc, depuis le futur, je pars. On se voit dans le futur.
37. Attirer tous les ennemis (lectures): 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.
38. Ouverture de portes 00: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous rendons le jeu tellement plus cool. Enfin, cette vidéo rend tout incroyable. Nous commençons donc le jeu. On commence à courir, oh non, il y a une porte. Il est fermé. Oh, non. Allons à la porte d'à côté. Oh, non, c'est tout près. Il y a trois ennemis ici. Oh, ils ont essayé de tirer alors qu'ils essayaient de suivre comme non, nous tuons le premier. Peut-être qu'il en prend beaucoup, c'est le deuxième. Combien en faut-il ? On a frappé ses meurtres et son plaisir, le sang. C'est ce que nous appelons ça. Nous avons essayé de tuer le dernier. Nous lui tirons dessus alors qu'il tire en arrière. Non, il ne l'est pas. Attendez, mais Tim Shu Ok, ça ne tourne pas. Nous aurions donc dû, il y a des choses qui volent dans notre direction. Nous devrions l'entourer et il meurt. Incroyable. Alors, tu y vas. Les portes sont ouvertes. Nous avons franchi et maintenant nous pouvons passer au niveau suivant ou nous pourrions utiliser l'autre porte car elle s'ouvre également lorsque nous tuons tous nos ennemis. Ne perdons donc plus de temps. Nous allons arranger cette chose ici, voyant les choses bleues autour de nous, et commençons. Oh, l'affaire. Il est donc temps d'ouvrir les portes chaque fois que les ennemis sont tués, allons dans les ennemis ici ou dans la pièce. Exécutez réellement le jeu. Et je vais essayer de tuer quelques ennemis qui se sont ouverts. là que tu y vas. Allons tirer sur l'ennemi ici. Trois balles devraient suffire, et il est mort. Et vous pouvez voir ici qu'il a maintenant disparu. Très bien. Il a disparu. Le deuxième est absent. Le troisième est également absent, donc nous n'avons plus d'ennemis. La porte doit s'ouvrir. Le seul problème, c'est que nous avons encore ces éléments ici. Mais heureusement, lorsque nous travaillons avec des listes, nous pouvons supprimer l'article très facilement. Donc, de la façon dont nous faisons cela, alors que nous allons dans notre mise à jour ici dans la mise à jour du gestionnaire de chambres. Et nous allons créer une autre boucle. Et cette fois, cette boucle va être une boucle for. Qu'est-ce qu'une boucle for ? Laissez-moi vous expliquer. Qu'est-ce qu'une boucle for ? Les boucles peuvent exécuter un bloc de numéro de code. Times. Les boucles sont pratiques si vous souhaitez exécuter le même code encore et encore à chaque fois avec une valeur différente. Maintenant, je plonge un peu plus profondément dans les boucles que nous ne l'avons fait avec les pour chacun, mais ne vous inquiétez pas que les boucles soient similaires à pour chaque boucle. Mais cette fois-ci, au lieu d'utiliser les éléments, nous utilisons les index et le côté de la liste ou du tableau. Vous pouvez donc voir que cela continue d'exécuter du
code à l'intérieur jusqu'à ce que j'atteigne une certaine limite. Qu'est-ce que cela signifie ? Examinons cette syntaxe ici et comprenons mieux. Nous commençons par écrire pour : C'est bien. Nous instancions une variable qui est un entier, probablement un I égal à 0. Nous ajoutons ensuite ce point-virgule. Nous lui disons ensuite quelle est la limite vers laquelle je continuerai de travailler. Et puis nous nous arrêtons et chaque fois, nous en ajoutons un à l'œil. Donc, vous pouvez voir ici, ce
plus signifie que c'est moi plus un. Nous commençons donc à 0, disons que la limite est de trois. Nous continuerons à boucler jusqu'à ce que je n'aie plus moins de trois ans. Donc on commence à 0, on fait quelques trucs, on exécute le code I plus, plus. Cela signifie que je ne deviens qu'un. C'est encore moins de trois. Super, nous continuons. Nous en avons plus deux, car c'est encore moins de trois. C'est le cas, nous continuons. Je suis égal à trois, c'est encore moins de trois. Non, ce n'est pas parce que nous devons être inférieurs à 3 ou moins que la limite donnée. Et nous allons utiliser cela pour voir que nous allons compter parmi tous les ennemis. Et quand nous sommes au dernier ennemi, nous allons aller de l'avant et arrêter la boucle. Et à chaque niveau, nous allons vérifier si cet ennemi est un objet de jeu vide, puis nous allons supprimer l'objet entier de la liste. Commençons donc. Ce sera un peu compliqué, mais supportez moi. Je vais donc aller de l'avant et créer une boucle for. Et au lieu de passer du premier élément au dernier élément, je vais commencer par l'arrière. Donc je vais avoir un int que j'égale les ennemis points nombre moins 1. Tout d'abord, quel est le compte ? nombre de points des ennemis est le nombre d'objets que nous avons dans la liste. Et notre cas, ce sera les trois squelettes. Pourquoi est-ce que j'ajoute moins un ? Parce que les listes fonctionnent exactement comme les tableaux le font là où nous commençons, le comptage de l'indexé à partir de 0. Le dernier élément des trois squelettes sera deux. Nous avons le squelette zéros, squelette un squelette aussi. Le compte est donc égal à trois car nous avons trois squelettes. Le premier élément devrait donc être le nombre moins un. J'espère que c'est compris. Maintenant, parce que nous partons de l'arrière, quel est notre objectif ? Nous allons continuer à boucler. Bien qu'il soit plus grand que moins un. Pourquoi est-ce que c'est moins 1 ? Eh bien, parce que lorsque nous arrivons à 0, nous voulons toujours parcourir la liste en boucle. Et un, on en a deux moins un parce que je vais finir ça. là que tu y vas. Parce que nous y allons. Moins moins. Ainsi, tout comme
Plus, Plus ajoute un, moins, moins en supprime un. Encore une fois, que se passe-t-il ? Nous partons du début de la liste. Nous veillons à ce que nous soyons toujours supérieurs à moins un, ce qui signifie que nous ne voulons pas avoir 0 comme dernier élément que nous traversons. Et enfin, nous ajoutons I moins moins. Continuons donc un. Que va-t-on faire ici ? Eh bien, nous allons vérifier si les ennemis ou l'ennemi à la position où je suis égal à nul. Si null signifie qu'il a disparu. Nous avons vu précédemment dans une vidéo précédente lorsque nous tuons les squelettes, l'élément qui s'y trouvait a disparu. Cela signifie que ce n'est pas le cas. Donc, si l'ennemi ou le collisionneur 2D manque sur cet ennemi, ce
que nous allons faire c'est que nous allons accéder aux ennemis. Dot remove at, et nous allons l'enlever à la position I. Encore une fois, regardons ça encore une fois et comprenons ce qui se passe. Nous commençons à l'arrière de la ligne parce que nous voulons supprimer les choses de bas haut jusqu'à la première. Nous partons donc de l'arrière. Nous utilisons count moins un car count est le nombre d'éléments,
mais les éléments à l'intérieur sont indexés à partir de 0. Nous commençons donc à 0, 1, 2, mais le compte est de trois, donc nous en supprimons un. Nous continuons à en supprimer un en utilisant l'IA moins moins jusqu'à ce nous ne soyons plus supérieurs à moins un y. Je veux dire, quand nous sommes moins d'un, pourquoi ? Parce que le dernier sera 0, donc moins 1, quand nous deviendrons moins 1, cela signifie
que nous avons fini et que nous ne voulons plus continuer avec la boucle. Et chaque fois que nous constatons que les ennemis sont manquants ou sont nuls, nous allons les supprimer de la liste. Super, nous allons sauver ça. Revenons dans notre jeu et allons de l'avant et imprimons ici les ennemis. Ok, donc ennemies.gov. Et voyons simplement ce qui se passe. Donc, dans notre jeu, je vais faire le gain. J'ai la liste des ennemis, je vais tirer le premier, deuxième 1 et le troisième. Attendons donc que les livres apparaissent. là que tu y vas. Vous pouvez voir une fenêtre contextuelle. Oh, d'accord. Vous pouvez maintenant voir que la liste est vide. Il y a quelque chose que j'ai oublié de dire. Nous pouvons donc voir que nous avons ces éléments et nous n'avons pas regardé le Conseil même si cela pourrait paraître. Donc le nombre d'ennemis trois, quand je les tire, l'
un d'eux meurt, le dernier élément est supprimé. C'est pourquoi nous allons de bas en haut. Le nombre d'ennemis est donc égal à 0. Donc, les balles qui fonctionnent pour ça continuaient. Également. Celle-ci, voilà, Le nombre d'éléments ou le nombre d'ennemis est 0. Super. Nous savons maintenant que nous sommes capables de tuer les ennemis. Nous sommes en mesure de les supprimer de la liste. Enfin, nous voulons ouvrir la porte chaque fois que le nombre d'ennemis est 0, et cela fera partie de votre défi. Votre défi consiste à ouvrir les portes après la mort des ennemis. Vérifiez donc que la liste des ennemis est vide. Ce sera, je ne sais pas, je vous le laisserai. Ensuite, vous devrez passer par toutes les portes et les portes pour fermer. Et vous devrez activer toutes les portes. Et je vais vous donner un petit indice. Vous devez vérifier la longueur de la liste. Vous pouvez utiliser le nombre de points. Eh bien, nous l'avons déjà fait. Si vous voulez. Vous pouvez utiliser un pour chaque boucle pour passer par les portes ou essayer d'utiliser la boucle for que nous venons d'apprendre et pour obtenir la longueur du tableau, c'est un bon exercice en boucles. Nous avons beaucoup de boucles. C'est bien. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Je vais juste garder le débogueur ici. Et ce que nous allons faire, nous allons vérifier si le nombre de points des ennemis est égal à 0. Ensuite, nous allons utiliser la boucle for. Je vais créer un int égal à 0. Nous partons donc du 0. Nous allons continuer à boucler pendant que je suis moins que les portes pour ouvrir ou désoler, portes pour fermer la longueur des points. Lorsque nous voulons accéder à la longueur d'un tableau, nous utilisons la longueur des points lorsque nous voulons accéder à la longueur de la liste, nous utilisons le nombre de points. Alors, tu y vas. Vous avez maintenant deux exemples. Vous pouvez même ajouter un commentaire ici pour vous assurer que vous vous en souvenez. Et à chaque étape, nous allons en ajouter un. Maintenant, porte à fermer ou porte à fermer. Oui. Et je vais y accéder en utilisant le I parce que j'augmente à chaque fois. Disons donc que nous avons déjà deux portes. Nous avons donc l'indice 0 et l'indice 1. Nous commençons à 0. Nous fermons la porte à 0. Nous avons défini actif sur false. On y va. Nous n'aurons plus la porte. Nous vérifions que le I, qui est actuellement 0, est inférieur à la longueur du point des portes, qui est de 2. Donc oui, 0 est inférieur à 2. En plus, en plus, ou en fait, on fait ça et puis je plus, plus. Nous retournons ici, je l'ai, d'accord, donc nous ne retournons plus ici, je suis maintenant un est un de moins de deux ? Oui, c'est vrai. Nous avons r égal à 0 dot-dot-dot actif, désolé, je suis égal à 1. Nous sommes actifs. On y va. C'est faux. Enfin, je deviens deux. Est-ce que deux sont moins de deux ? Non, ce n'est pas le cas. Sortez de la boucle. Nous sauvegardons tout cela. Nous retournons dans notre jeu. Nous courons le gain, nous avons la console ici, donc le nombre d'ennemis, F3, vous pouvez les voir. Nous devrions 12, ok, les ennemis que nous lui tirons dessus. Deuxièmement, combien de balles faut-il ? Un ? Il n'en faut qu'un. Joli. Voyons pourquoi l'est-il ? Parce que je me souviens qu'on a ajouté sa vie à trois ans. là que tu y vas. L'ennemi est mort. Vous pouvez voir qu'à 0, les portes s'ouvrent et nous pouvons traverser. Est-ce que c'est cool ? Donc, enfin, tout semble fonctionner, d'accord. Il y a quelques bugs. L'un d'eux est que le sang ne disparaît pas à cause des animations. Nous n'avons pas encore ajouté la clé à la fin. Le squelette juste ici. Quelle est la taille de sa vie ? La maison des ennemis est trois, il semble
donc y avoir un problème. Il est en train de mourir immédiatement. Pourquoi ? Parce que si nous allons dans le contrôleur de balle de couche, la quantité de dégâts est de 100 k donc la quantité de dégâts est standardisée. La vie des ennemis est de 3. Je pense que c'est le problème. Laissez-moi faire la moitié de ce type. Donc je veux juste m'assurer que nous
n'avons pas quelque chose de mal sauf qui exécute le jeu. Parce que parfois nous appelons une méthode trop souvent, donc nous infligeons trop de dégâts. Donc, si je vérifie, d'accord, donc tu y vas. Il a besoin de plusieurs balles. 123 et voilà. D'accord, donc tout fonctionne bien. Les portes s'ouvrent chaque fois que nous tuons tous les ennemis, tout semble fonctionner. Nous avons beaucoup appris sur les boucles dans cette section, nous avons appris beaucoup d'informations. J'espère que vous appréciez. J'espère que tu t'amuses bien. J'espère que vous apprendrez beaucoup. J'espère que vous faites vos recherches. J'espère que vous engagez toujours vos changements. J'espère que vos cerveaux de développeurs de jeux se renforcent avec chaque vidéo. J'espère que vous n'êtes pas très frustré, et j'espère que vous êtes très heureux. Je vous verrai donc dans la section suivante. N'oubliez pas d'ajouter un avis.
39. Section 6 : flux de niveaux - Gestion de scène (gestionnaire de scène et String) de chaînes): Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et c'est vraiment l'une des vidéos
les plus cool que nous ayons jamais réalisées jusqu'ici, à mon avis. Donc, ce que nous allons faire, c'est que nous allons simplement lancer le jeu. Et avant de faire cela parce que nous sommes en train d'expérimenter, je vais simplement détourner cette porte de nouveau. Donc on joue, on ouvre la porte avec une sorte de meurtre et on vient ici. Qu'est-ce que c'est ? Ouah, un portail. Que pensez-vous qu'il se passerait si j'essayais peut-être de le sauter ? Eh bien, que s'est-il passé ? Eh bien, nous sommes au niveau 2 ou je veux dire qu'au niveau 1, nous étions au niveau deux, nous étions au niveau deux, j'aurais
dû le signaler, mais vous pouvez voir ici que nous commençons au niveau 2, puis nous passons au niveau 1. Nous avons appris les portails, nous apprenons la gestion des péchés et nous apprenons à utiliser une variable de chaîne. Ne perdons donc plus de temps. Commençons. Oh, il est temps de prendre un certain niveau de débit. Et la première chose dont nous avons besoin pour le flux de niveaux, comme la gestion de scène et la façon dont nous gérons les scènes, c'est par l'intermédiaire d'un gestionnaire de scène, quelle mesure est-ce pratique ? Mais avant de faire tout cela, la première chose que nous devons faire est de créer un type de portail. Un portail qui nous amènera à un autre niveau. Maintenant, avant de faire cela, nous avons besoin d'un autre niveau. Je vais donc entrer dans les scènes ici et je vais dupliquer s2. Je vais l'ouvrir. Nous en avons donc vu trois. C'est la même chose, c'est exactement la même chose que le s2, mais tout ce que je vais changer, ce sont les tuiles au sol. Je vais donc entrer dans la palette de tuiles. Je vais choisir le terrain, et je vais en faire une couleur verte. Et je vais juste changer ça un peu. Vous y allez. C'est donc un problème de ce que je veux faire. Je vais couvrir cette partie, cette partie et cette partie juste pour que nous puissions faire la différence entre eux. Je ne veux pas passer du temps créer un niveau complètement différent. Cela prendra beaucoup de temps et il n'y a pas de but réel, mais pour vous lors de la création de votre jeu, je vous recommande traverser les tracas de le faire. C'est une bonne pratique si vous souhaitez créer votre propre jeu à partir des styles. Assez parler, commençons. Gardez ça. Revenons à Test2. Maintenant, nous avons les amis entre test2 et test3. Je pense qu'il est temps d'appeler ce niveau 2 et 3. Donc, niveau 2, niveau 1 ou non. Gardons ça comme un test, c'était en fait un test. Et le niveau trois. En fait, ça devrait être le cas, d'accord. Attendez une seconde. Gardons ce niveau 3. Bien sûr, nous chargeons, cela deviendra le premier niveau. Et celui-ci est de niveau deux. Nous n'avons donc qu'un, niveau un, niveau deux, d'accord, donc au niveau 2, et ici nous allons avoir une sorte de portail de sortie. Je vous ai fourni les ressources nécessaires pour les portails, et j'ai choisi celui-ci. Et vous pouvez voir que vous avez 25 ou 20 portails, je ne sais pas. Et vous avez aussi le vert, mais je vais utiliser le 15. Était-ce 15 ans ? Il était 15 ans. De retour ici, dans les sprites, cliquez avec le bouton droit sur Créer un dossier, portail sur Entrée. Double-cliquez ici, et je vais ajouter toutes
les images et attendre qu'elles soient ajoutées. Très bien. Je vais cliquer avec le bouton droit de la souris pour créer un objet de jeu vide qui s'appellera le spectre d'entrée du portail. Définissez z z sur 0. On y va. Allons le déplacer ici. Ajouter un composant ou quoi ? N'ajoutons pas de composant. Ajoutons un animateur. Nous allons aller à la fenêtre. Et en fait, avant de faire cela, ajoutons une des images ici au portail. Peut-on l'ajouter immédiatement ? Non, je ne peux pas. Ajoutons un rendu sprite. Et nous ajouterons juste cette image ici. Et définissons-le comme joueur. Et on y va. Vous pouvez voir que c'est un peu petit. Choisissons toutes les images et faisons en sorte qu'elles soient 50. Donc, il va doubler en taille, d'accord, taux de
filles et le faire valoir. Est-ce que ça deviendra meilleur ? Zoomons et voyons parfois que le point n'est pas le meilleur filtre. Parfois, on le garde bi-linéaire, c'est du beurre, et dans ce cas c'est le cas. Donc bi-linéaires, ils sont plus lisses, vous remarquerez maintenant que c'est un peu plus lisse. Je l'aime mieux, fais ce que tu veux avec ça. Et tu sais quoi ? Je suis en fait parce que la pièce est déjà grande, je vais en faire 25. Oui, on y va. OK, 25 c'est bien. Joli. On y va donc. Nous avons ce portail ici. Allons par la fenêtre. Animations, animations. Nous avons donc déjà abordé la façon dont nous y parvenons. Je n'entrerai pas trop dans les détails. Je vais créer des ressources, des animations, un portail. Assurez-vous de toujours créer des dossiers et de garder tout petit. Alors le portail tourbillonne. Ou ce ne sera que l'animateur ou le nano, et c'est l'animation. Tourbillonné parce que le portail tourbillonne. Je vais les sélectionner et les faire glisser ici. Maintenant, quand on joue, tu y vas. Je pense que c'est suffisant. Vous n'avez pas besoin de le rendre plus grand ou plus petit. Excellent. Maintenant, ce portail fonctionne. La prochaine chose que nous allons faire, c'est évidemment que nous
ajouterons une sorte de Collider ici. Ajoutez donc un
cercle, un collisionneur de cercle 2D, et c'est un peu gros. Rendons le rayon un
peu plus petit pour que l'ennemi ait besoin, l'ennemi, le joueur doit immédiatement sauter sur le portail pour être téléporté au niveau suivant ou à n'importe quel niveau que nous voulons également distinguer. Et c'est la partie où nous choisissons lequel, où voulons-nous être téléportés ? c'est toujours le niveau suivant n'a pas besoin d'être parce que plus tard dans la section où nous générons des niveaux, je pense que c'est le dernier. Nous choisirons niveaux
aléatoires comme nous l'avons fait à Hadès. Nous allons donc créer différents types de mises en page, avoir différents types de niveaux que nous traversons. Allons donc dans les scripts. Ajoutons ici un script pour le portail. Nous allons appeler ça la sortie de niveau. Appelons cela les niveaux, flux de
niveau qui ralentira. Je pense que c'est bien. Cliquez ici avec le bouton droit de la souris pour créer un script C-sharp qui sera la sortie de niveau. Je ne me souviens même pas si nous aurons d' autres scripts liés au niveau SOPA. Gardons ça à ça. Je vais donc cliquer ici. Et bien sûr, nous allons en faire un déclencheur. Ce collisionneur devrait être un déclencheur. Et ajoutons le niveau de sortie. Et enfin, je vais aller dans les Prefabs et je vais aller ici et créer un préfabriqué pour le, devrais-je juste créer un portail ici ? Disons que nous pouvons ajouter, créer ici quelque chose comme peut-être, OK, faisons simplement les portails, les portails. Ouvre ça. Portail. Et peut-être le portail un, peut-être pas le port un. Gardons ça au portail, gardons tout ça. Et maintenant, ouvrons le script ici. La sortie de niveau s'
ouvre donc et que voulons-nous faire ici ? Donc, la première chose que nous voulons avoir aussi évidemment un champ sérialisé, qui sera une chaîne de type chaîne. C'est la première fois que nous créons une variable de type chaîne, je crois. Et ce sera le niveau à charger. Super, donc maintenant on peut revenir ici, montre le portail. Et nous pouvons sélectionner le niveau auquel nous voulons aller. Et pour ce faire, nous devons nous assurer que nous obtenons le nom exact que nous voulons. Ainsi, et les scènes que nous copions, par exemple, nous sommes également au niveau 2 en ce moment. Et cela ne pèse pas de soucis. Allons-y et deux, on passe du niveau deux au premier niveau. Bien sûr. Pourquoi pas ? Nous allons donc verrouiller cela,
sélectionner le niveau pour sélectionner le niveau 1. Copiez ceci, collez-le ici. Oh, non, attends, attends, attends. Nous devrions sélectionner celui-ci et maintenant nous le copions ici. Alors maintenant ce portail, lorsque nous le déclenchons, nous devrions passer au niveau 2 de charge. Mais comment allons-nous réellement faire cela ? Je vais y retourner. Et supprimons commencer une mise à jour pour l'instant. Juste pour l'instant, nous aurons besoin d'eux plus tard. Et ici, je vais créer un entrepreneur entrant d. Nous savons déjà comment cela fonctionne. Nous allons bien sûr nous assurer que la collision,
l'étiquette, est égale à celle du joueur O. Alors maintenant, vous vous dites
: Oh, Michael, qu'est-ce que c'est ? Quelle est la balise de comparaison ? Eh bien, vous pouvez utiliser la balise de comparaison est beaucoup mieux, mais je voulais vous montrer une autre façon et maintenant il est temps de charger la scène suivante. Comment allons-nous faire cela ? Comment passer d'une scène à l'autre ? Laissez-moi vous montrer un peu. C'est donc le gestionnaire de scène et vous pouvez voir ici que nous avons beaucoup de choses que nous
pouvons utiliser des méthodes statiques, des événements. Je vais vous le laisser parce que plus tard dans un
peu, nous aurons un petit défi. Mais ce que je vais vous aider, c'est que je vais m'
assurer qu'ici chaque fois que nous voulons utiliser des scènes, nous devons ajouter la gestion des scènes de points du moteur
Unity. Gardez ça. Et maintenant, nous pouvons faire beaucoup de choses avec nos scènes ou nous pouvons réellement gérer nos scènes. Donc, avant de vous lancer le défi de trouver quelle méthode nous allons utiliser ou comment pouvez-vous utiliser cette unité ? Où est le directeur de scène ? Je vais vous montrer comment y accéder réellement et parce que je veux que vous
travailliez immédiatement à ce défi dès que vous commencez. Si vous allez dans le fichier ici, nous
avons quelque chose qui s'appelle les paramètres de construction. Si nous cliquons dessus, nous pouvons voir les scènes construites. Et c'est là que nous construisons réellement notre jeu. Et vous pouvez constater que nous avons plusieurs options. Nous pouvons utiliser Windows, nous pouvons utiliser iOS ou quoi que ce soit, TVOS, iOS, PS4, PS5 ,
Xbox One, etc. Vous pouvez créer des objets pour différentes plateformes, et le PC est celui que nous allons utiliser. Nous pouvons faire différentes choses. Et c'est ici que vous ajoutez toutes les scènes ou les niveaux que vous aurez dans votre jeu. Pour l'instant, la seule scène
ajoutée à la facture est le test de scène1. Et sans ajouter de saison ici, vous ne pourrez pas voyager de un à l'autre en utilisant Scene Manager. Si bien que cela soit clair, je vais ajouter le premier niveau. Et nous pouvons également le faire par des scènes ouvertes AD. Vous y allez. Vous pouvez voir sur la scène 2 car c'est une scène ouverte. OK. Super. Peut-on ajouter une autre fois ? Non, on ne peut pas. Et vous pouvez également voir que ces scènes ont des index sur elles. Nous n'utiliserons pas les index des scènes pour le moment, mais gardez cela à l'esprit car plus tard, ils apparaîtront. Donc, les paramètres, sauvegardez-le à nouveau, File BuildSettings. Vous y allez. Dans toutes les scènes que vous avez lorsque vous souhaitez utiliser Scene Manager pour passer de une à l'autre, fermez-la. Maintenant, que va-t-on faire ? Nous allons vous lancer le défi de charger la scène suivante. Consultez donc le gestionnaire de scène dans la documentation d'Unity, trouvez la fonction appropriée qui peut nous aider à accéder à une autre scène. Il s'agit donc d'une utilisation d'astronautes. Enfin, assurez-vous qu'il s'agit d'une méthode qui utilise une chaîne comme argument. Alors mettez la vidéo en pause maintenant et allez au Chaldéen. Bon, bon retour. Disons donc que je suis un étudiant de Michael Moore et que je suis juste plus,
plus ce que tout le monde dit. Et j'apprends juste à utiliser le gestionnaire de scène. OK. Quel est l'objectif, quel est le défi ? Il m'a demandé charger la scène suivante. Ok, super. Regardons. Qu'avons-nous ? Nous avons donc vu compter, semble que compter la construction ne
semble pas aider à créer vu. Non. voit. Non. Je ne pense pas que ça se tienne. Il entre à non. Le bâtiment par son nom est vu. Charge, charge une scène, charge la scène par son nom. Attendez, quel a été le défi ? String comme argument, ok. C'est un peu plus rapide que je devrais, mais pas de soucis. Scène de chargement, cliquons sur Charger vu. J'espère qu'Internet va le faire. Déclaration, ok, on a vu le chargement. Nous pouvons utiliser l'index des symboles ou nous pouvons utiliser le même nom, l'
excellence, le même nom, le même nom. Scription charge la scène. Excellent, c'est ce que je vais utiliser. Maintenant, dans Trigger Enter, si c'est le joueur, ce que nous allons faire alors que nous allons voir comment cela se fait réellement. Donc si je fais défiler ici, ok, donc le gestionnaire de scène les a vus. Y a-t-il autre chose dont j'ai besoin ? Non, rien. Continuons. Ou peut-être qu'à ce stade, vous penseriez peut-être,
eh bien, quelle est cette charge que l'additif Moldau ? Eh bien, si vous ne savez pas, essayons simplement. Donc, gestionnaire de scène, scène de chargement de points. Je vais ouvrir les crochets et je peux voir
ici ces six. Donc, la scène construit l'index. Non, je ne veux pas ça. Bon, je vois que c'est ce que je veux, mais nous en avons quatre autres et c'est le bon moment pour vous enseigner cela. Parfois, une méthode peut prendre 12 ou peut-être même plus d'arguments fonction de ce que vous lui donnez, cela fonctionnera. Par exemple, nous pouvons ajouter le mode. Vous pouvez voir ici, charger le mode Scène, c'est
ce dont nous parlions ici. Chargez donc le mode Scène, additif. Je ne sais même pas ce que c'est. Mais ici, vous pouvez voir qu'il y a une option pour cela. Quoi qu'il en soit, c'était une note secondaire. Que voulons-nous utiliser ? Quelle scène ? Eh bien, nous l'avons déjà avec le niveau à charger. Donc Lovell à charger comme scène que nous allons charger. Donc, tout devrait bien fonctionner. Je vais retourner dans Unity. Sauvez ça, agrandissez le jeu. Je dois aussi tuer tous les ennemis. Et honnêtement, je n'ai pas le temps de tous les tuer. C'est juste que les portes s'ouvrent, lancez le jeu. De plus, il va se fermer dans tous les cas. Et nous avons ces lignes, d'accord ? Donc, tout d'abord, ne maximisez pas le jeu. Maintenant, lancez le jeu. Ces lignes me dérangent un peu, donc je vais choisir la porte 1, je vais désactiver. Je vais expliquer pourquoi est-ce que je peux le filmer ? Je pense que je peux le faire. Il n'est pas détruit. Non, ce n'est pas le cas. Donc, si je marche de près, vous pouvez voir que
je suis au niveau 2, je passe à 0. Que s'est-il passé ? Que s'est-il passé ? Je suis au niveau 1. Wo, est-ce que c'est cool ? Sérieusement, les gars ? C'est l'une des choses les plus cool qui se soient produites aujourd'hui. Nous sommes soudainement passés du niveau 2 au niveau 1 en passant par un portail. Très joli. Maintenant, tout fonctionne, mais c'est très rapide. Et honnêtement, nous ne voulons pas arriver aussi vite. Nous voulons le rendre un peu plus lent et ajouter un peu plus de caractère au jeu au fur et à mesure que nous le traversons. Je vous verrai donc dans la prochaine vidéo. Bien sûr, n'oubliez pas de valider vos modifications. Regardez jusqu'où nous avons parcouru. Voyez pourquoi j'adore commettre mes changements. Eh bien, nous avons commencé par un commit initial, ajouté le ralenti et les animations hast
ont créé des balles ajoutées au joueur, créé une animation pour l'ennemi, des
dégâts, une détérioration de l'ennemi. Je ne sais même pas quelle est la serrure, combien nous avons accompli et nous ne sommes peut-être même pas à mi-chemin. Bien, très sympa. J'espère que vous vous amusez, j'espère que vous appréciez et je vous
verrai dans la prochaine vidéo.
40. Gestionnaire de niveau: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous allons non seulement passer au niveau suivant, nous allons également passer à la transition. Ils sont beaucoup plus frais. Maintenant, lorsque nous traversons le portail, nous n'y allons pas immédiatement. Nous attendons deux secondes, puis nous y allons et nous pouvons même ajuster cela à partir du gestionnaire de niveaux autant que nous le voulons. Vous pouvez donc voir que nous avons maintenant
une figure centrale qui est le gestionnaire de niveaux. Nous allons utiliser des coroutines, directeur de
scène et toutes ces bonnes choses. Donc, ne perdons plus de temps et commençons. Oh, d'accord, donc maintenant nous avons besoin d'un gestionnaire de niveaux parce que, d'
accord, c'est amusant et des jeux quand le portail nous fait la transition. Mais quand il s'agit de grands jeux, nous ne voulons pas que cet objet particulier
contrôle la façon dont nous évoluons dans les scènes. Il est préférable que le cygne détermine quel niveau nous voulons passer, puis avoir un objet plus central, c'est-à-dire le gestionnaire de niveaux
qui va gérer le processus de déplacement de niveau à niveau. Plus tard, à mesure que vous grandissez. Pour l'instant, ce n'est pas forcément comme ça. Vous pouvez simplement utiliser le portail. Le jeu fonctionnera éternellement. Quand il s'agit de grands jeux, l'objet réel ne fait pas le travail. Vous avez plus, disons une plus grande autorité, une tête plus grande, qui est le
gestionnaire de niveau qui gère cela. Je vais donc cliquer avec le bouton droit de la souris sur créer un vide, réinitialiser sa position. Et ce sera le gestionnaire de niveau. Vous pouvez vous satisfaire où vous le souhaitez. Et vous pouvez accéder aux scripts ici et aux responsables,
cliquez avec le bouton droit de la souris sur créer un script C-sharp. Le responsable de niveau. Appuyez sur Entrée et attendez un peu qu'il compile le gestionnaire de niveaux d'objectif lors du script ici. Et allons-y et ouvrons-le. Maintenant, la première chose que nous voulons faire est de créer ce gestionnaire de niveau et cette instance. Qu'est-ce qu'une instance ? L'instance nous permettra de faire appel à ce gestionnaire de niveaux où que nous soyons et d'utiliser ce qui est précieux en tant public, et quelle que soit la méthode
publique disponible pour nous est créée, faire une instance et ensuite. appelez-le, et vous comprendrez comment cela fonctionne. Donc, ce que nous pouvons faire, c'est tout d'abord nous allons créer un gestionnaire
de niveau statique public , ce qui signifie que cette variable sera hors type level manager et appellera cette instance. Et puis, au début, nous allons définir l'instance égale à celle enregistrée. Alors, que se passe-t-il en ce moment ? Tout d'abord, public, nous savons ce que le public est statique. Qu'est-ce que l'électricité statique ? Statique signifie qu'à travers tout le code, nous aurons cet évier. Donc, si nous l'appelons à partir de la manette du joueur, de l'impact de la balle, du responsable de salle. L'instance du gestionnaire de niveaux est toujours la même lorsque nous instancions le livre Par exemple, chaque puce est un clone. Vous souvenez-vous ? Donc, si je dirige le jeu, laissez-moi juste vous montrer ce que je veux dire. Alors je tire quelques balles, je mets le jeu en pause. Vous pouvez voir que chacun d'entre eux est un clone. Donc, si j'essaie d'accéder au contrôleur de balle du lecteur, par
exemple, si elle n'est pas statique, une variable à laquelle elle accèdera, elle sera différente, par
exemple, d'une variable qui se trouve ici ou ici. Mais si je crée une variable statique sur la puce du lecteur
, quelle que soit la puce à laquelle j'accède, la variable statique, sera la même. Par conséquent, statique signifie qu'il s'agit de la même chose pendant tout le gain, où et quand vous y accédez. C'est très important lorsqu'il s'agit d'une statique. Il s'agit donc d'un gestionnaire de niveau de type qui est assez facile à comprendre et son nom est instance. Nous pouvons l'appeler comme nous voulons. Nous pouvons l'appeler Michael si vous voulez, qu'est-ce qui le gardera comme exemple. Et puis nous avons ce jeu de mots ironiquement prévu et quoi ? Nous avons des exemples égaux à cela. Cela signifie la classe réelle. Nous utilisons donc l'instance dès que nous commençons le jeu. L'instance est la suivante. Donc maintenant, où que nous soyons dans le code, nous pouvons aller de l'avant et écrire une instance de point de gestionnaire de niveaux, et accéder à la variable qui est publique évidemment, ou à la méthode que nous avons ici. La prochaine chose que nous allons
faire est de supprimer la mise à jour pour le moment. Utilisez-le va le créer à nouveau. Et nous devons créer quelque chose appelé champ sérialisé. Flotteur. Et c'est le moment de le charger. Donc, et cela va être égal à 2 f. Pourquoi créons-nous une charge de police ? Quel est réellement notre objectif ? tout ça, j'ai oublié de vous le dire. Ce que nous voulons faire, c'est que nous voulons retarder la transition vers le niveau supérieur, sorte que nous ne voulons pas que cela se produise instantanément. Nous voulons avoir au moins deux secondes, alors nous arrivons au portail, nous attendons deux secondes,
puis nous sommes passés au niveau suivant. Cela nous ajoutera un peu d'authenticité comme vous le savez, chaque fois que vous jouez à un jeu, vous ne le faites pas. Et pour signaler, puis commencer immédiatement le niveau suivant. Vous voulez avoir un peu de temps, deux secondes peut-être repenser votre décision, mais ce sera fini. Et comment allons-nous faire cela ? Nous allons évidemment utiliser un revêtement. Je ne vais donc pas vous dire de créer la quarantaine pour le moment parce que vous aurez besoin d'en faire, je pense que j'ai un défi quelque part où vous créez la coroutine. Faites donc attention très attentivement. Je sais que les adolescents appelés sont très difficiles à apprendre au début. Une fois que vous l'avez accroché, c'est extrêmement facile. Commençons. Tout d'abord, parce que nous allons accéder à cette co-routine à partir d'un script différent. Je vais écrire un recenseur public. La coroutine est donc de type I et numérateur. Et nous allons appeler ça le prochain chargement, niveau suivant. Et ici, nous allons nous disputer. Il va donc être de type chaîne et ce sera
le niveau suivant, juste comme ça. Et ici, ce que nous allons faire, c'est que nous voulons
attendre le temps de charger et de charger la scène. Donc, comme nous l'avons dit, rendez, retournez, nouveau, attendez quatre secondes. Et attendez quatre secondes, nous allons utiliser le temps de chargement. Est-ce génial ? Et enfin, après avoir attendu 42 secondes, nous allons entrer dans le responsable de scène. Nous ajoutons la gestion des scènes ici et nous pouvons maintenant accéder au gestionnaire de scène. Avez-vous remarqué ce qui s'est passé en ce moment ? Cela ne m'a pas permis d'utiliser le gestionnaire de scène avant d'avoir eu les critères indiquant à Unity que nous l'utilisons. Alors Scene Manager, pas Unity, excusez-moi, le script ici, tout
ce fichier que nous utilisons, a vu la gestion. Donc Scene Manager, chargement de points vu. Et comme la prochaine scène que nous allons à 0 ou je veux dire, prochain niveau que nous allons trop bas. Ok, super. Maintenant, la prochaine chose que nous devons faire est de passer à la sortie de niveau. Et au lieu d'utiliser Scene Manager ici, nous utilisons simplement l'instance pour démarrer la co-routine. Et honnêtement, je suis déjà très fatigué, donc je pense qu'il vaut mieux que tu fasses ça plutôt que moi. Allez-y, commencez la co-routine. Tout d'abord, à partir du niveau de script de sortie, Kali, appelez le gestionnaire de niveaux et passez au niveau suivant. Il y a un petit plus délicat que vous devrez faire attention. Je vais vous donner un petit indice, c'
est-à-dire que vous ne pouvez pas simplement appeler une co-routine. Vous devez commencer une qualité. Mettez la vidéo en pause dès maintenant et commencez la co-routine. Oh, d'accord, bon retour. Alors, comment avez-vous fait ça ? Et ici, je vais supprimer ça. Au lieu de cela, je vais dire que je vais commencer une co-routine. Je vais utiliser le gestionnaire de niveaux. J'espère que ce n'était pas la partie la plus difficile si vous
avez réussi à utiliser l'exemple, je vous félicite, vous passez au niveau supérieur de développement du jeu. Si ce n'est pas le cas, ne vous inquiétez pas,
c' est probablement mon erreur car je ne vous ai pas dit que je ne vous ai pas donné l'indice. Mais nous allons charger le niveau suivant. Donc, cette méthode lors du chargement du niveau
suivant est en fait un énumérateur oculaire
du gestionnaire de niveaux et nécessite une chaîne de niveau suivant ici, comme vous pouvez le voir en tant qu'argument. Je vais donc le donner. Et que devrait-il être ? Il devrait s'agir du lot de niveau deux. Gardez ça. Et une très belle chose. Vous pouvez constater que lorsque nous avons cessé d'utiliser le gestionnaire de scènes, le moteur d'utilisation d'Unity n'
est plus aussi large que le moteur Unity seul. Donc, les choses que nous n'utilisons pas sont un peu grisées. Je peux donc supprimer cela, économiser un peu de mémoire. Et maintenant, la sortie de niveau attribue
ou appelle simplement le gestionnaire de niveaux la tête centrale et lui dit de charger le niveau. Cela sera utile lorsque nous aurons plusieurs portails. Vous verrez, croyez-moi, c'est mieux de le faire de cette façon. Alors, sauvegardez ça. Retournez à notre jeu ici. Commencez le jeu, marchez vers le portail. Je joue en mode scène. Maintenant, lorsque j'arrive sur le portail, nous devrions avoir deux secondes avant de voter. Et nous pouvons le voir ici, à Londres, le temps de charger deux secondes. On y va donc. Ici, il n'y a rien. 112 en haut. On y va. Nous sommes donc au niveau 1 et nous n'y sommes pas allés immédiatement. J'espère que ça vous plaira. Assurez-vous d'indiquer toutes vos modifications. Et dans la vidéo suivante, nous allons rendre les transitions encore plus fraîches. Pouvez-vous imaginer ça encore plus cool que ça ? N'oubliez pas de laisser un avis pour les transitions cool. Je vous verrai alors.
41. Rendre la transition encore plus: Bienvenue, mes
collègues développeurs de jeux sur une toute nouvelle vidéo. Et dans ce cas, nous allons
faire deux ou trois choses. Tout d'abord, nous avons ajouté
un combinateur de machines cinéma. Qu'est-ce que c'est ? Cela signifie que notre appareil photo n'est
plus hors limites. mouvement est un peu bizarre, mais parce que nous ne
lui avons pas donné assez de temps, souvenez-vous, nous pouvions voir les lignes bleues et ici nous ne les voyons plus. Et maintenant, lorsque nous passons
par le portail, Whoa, vous pouvez voir que nous avançons au ralenti, puis nous
passons au niveau suivant. Il y a donc un peu de retard et l'
échelle temporelle de notre monde. Ne perdons donc
plus de temps. Et commençons. Oh, d'accord,
il est donc temps de rendre nos transitions un
peu plus cool. Et la première chose que je veux
faire, c'est d' aller dans la console et de voir
ce message ici. Et je vais juste
supprimer ça. Nous n'en avons plus besoin. C'était uniquement à des fins de
débogage. Et chaque fois que vous avez
une erreur ou vous n'êtes pas sûr de quelque chose, utilisez le journal des points de débogage pour voir si
une
condition fonctionne. Une condition n'est pas de savoir si le nombre d'ennemis qu'
il a fini, etc. Donc le journal des points de débogage
est le meilleur, incroyable. Cela m'a sauvé
tellement de fois. Continuons donc, que voulons-nous faire ici ? Eh bien, la première chose que nous voulons
faire , c'est une fois que nous avons
franchi le portail. Donc quand on va au portail, on ne veut pas avoir notre
joueur juste courir comme un fou fou
après qu'il y entre, on veut réellement l'arrêter et le
faire juste attendre
quelques secondes. poids. Il y a donc une différence. Voulons-nous
arrêter complètement le joueur ? Ou nous pouvons faire quelque chose d'
encore mieux ? Et nous pouvons en fait ralentir
le temps dans lequel se déplace, sorte que son mouvement
deviendra beaucoup plus lent. Que diriez-vous de ça ? Je pense que c'est une meilleure solution. Je vais donc
ouvrir le gestionnaire de niveau. Et ici, après avoir commencé à
charger le niveau suivant, ce que je vais
faire, c'est que j'aurai
accès à l'heure et j'aurai accès
à l'
échelle de temps dans le monde entier. Et vous pouvez voir ici
quelle est l'échelle de temps ? C'est l'échelle à
laquelle le temps passe. Donc, actuellement, le temps passe
normalement dans notre jeu, ce que je vais faire, c'est que je vais
changer cela à 0,2. Il va donc fonctionner à
20 % de sa vitesse initiale. Et voyons à quoi ça ressemble. Je ne
vous recommande pas de le faire tout le temps car non seulement
le jeu ralentit, mais tout ralentit, donc même l'animation. Donc je vais courir, je vais entrer sur le portail
et vous remarquerez que maintenant, c'est cool ? Le pistolet pointe toujours
correctement, évidemment, mais l'animation
est beaucoup plus lente. Vous y voilà,
Michael Jackson. Et nous sommes au niveau deux. Très bien, mais nous
sommes toujours en mouvement. Oh, et regarde les balles. Mais les balles, à quel point ces balles sont-elles
cool ? Je vous recommande de vous en
souvenir et d'ajouter une sorte de
mécanicien à votre jeu. Donc tout
ralentit et laissez-moi tirer
quelques balles et m'
éloigner de là. Est-ce que c'est cool ? Sérieusement ? Ne me dites pas que ce n'est
pas vraiment cool. Maintenant, ce que nous voulons faire,
c'est que nous voulons revenir en arrière. Comme vous l'avez vu depuis le niveau 2, nous avançons au ralenti, mais lorsque nous passons au niveau 1, nous sommes de retour à ce
très mauvais timing. Ce que nous faisons, c'est que nous allons
relever ce défi. Nous avons réduit l'échelle. Il est donc évident que nous ne
voulons pas avoir l'échelle de temps comme celle-ci. Trouvez donc où nous devons remettre l'échelle temporelle
à sa forme originale. Et je vais vous donner un aperçu
de quoi ou de comment le
remettre à sa
forme originale pour revenir à la normale, ramenant l'échelle temporelle à 1. A plat signifie qu'il est 100 % et non 0,1, ou vous pouvez le rendre encore plus rapide. Est-ce que ça profite, amusez-vous bien. Assurez-vous de ramener la
balance à sa forme d'origine. Où devrions-nous faire cela ? Mettez la vidéo en pause dès maintenant
et relancez le défi. Bon, bon retour. J'espère que vous le comprendrez. Où devrions-nous faire cela ? Eh bien, nous commençons l'échelle de temps. Nous attendons deux secondes, puis après avoir terminé, avant de charger, la scène suivante aura accès à l'échelle
temporelle et la revendra à un f.
Dites cela dans notre jeu. Depuis le jeu, montez,
passez par le portail et ne faites pas quelque chose
qui prend maintenant plus de deux secondes
pour charger le niveau. Donc, un. Deuxièmement, pourquoi est-ce que c'est ? Eh bien, parce que l'échelle de temps
est ralentie. On y va. Nous sommes donc de retour ici et
tout fonctionne bien. La dernière chose
que nous devons
résoudre est le fait que nous devons
attendre si longtemps que le niveau
se charge. Pourquoi est-ce que c'est ? Eh bien, évidemment
parce que nous
attendons ici quelques secondes,
le temps de chargement, mais avant cela, l'échelle de temps a
été fixée à 0,2,
soit 20 %
du temps initial. Comment allons-nous résoudre ce problème ? Heureusement, il y a quelque chose de vraiment sympa et ici, vraiment pratique qui
dit qu'il faut attendre quelques secondes en temps réel. Cela passe donc le
tribunal en exécution à une seconde donnée en
utilisant du temps non qualifié. Pouvez-vous lire ceci ? Je pense que
nous devrions l'agrandir. Non, du temps non qualifié. Alors attendez où est-il ? Attendez quatre secondes en temps
réel, nous sauvegardons cela. Et maintenant, la co-routine n'est plus affectée
par l'échelle de temps. Alors maintenant, essayons ça. Courez, courez, courez, courez,
atteignez ce 112 et nous sommes dans le premier niveau. Vraiment sympa. J'espère que ça vous plaira. J'espère que tu t'amuses bien. Et voyons voir,
il nous reste encore quelques minutes. C'est une vidéo très courte. Il y a quelque chose que
je voulais aborder. Donc, ici, quand nous lançons le jeu, nous allons en faire un
peu plus grand pour que nous puissions le voir. Alors maintenant, on se promène, OK, donc tout est noir. Nous avons l'impression d'être
dans le jeu correctement, mais nous voyons ce bleu ici, et je n'aime pas ça. Maintenant, nous pourrions couvrir ça avec
quelques furoncles noirs. Ce serait une bonne solution, pas une mauvaise solution, bien sûr, mais il existe une bien
meilleure façon et une propriété à l'intérieur de la machine Cinema dont nous allons
profiter, et c'est le confinement. Je vais donc agrandir
la scène. Je vais faire un zoom arrière. Et si je clique sur la caméra
virtuelle ici, vous pouvez voir
ici que nous avons quelque chose qui
dit : où est-il ? Ok, donc nous y allons, ajouter une
machine du centre d'extension confinée, et cela crée un
composant supplémentaire ici. Et vous pouvez voir que nous
avons la forme de délimitation et que
la forme de délimitation
est requise et qu'il
devrait s' agir d'un collisionneur de polygones. Qu'est-ce qu'un polygone ? Polygone signifie que tout comme
nous avons un cercle, un rectangle, triangle, un polygone, signifie que nous pouvons donner la
forme que nous voulons. Alors, qu'est-ce que cela fait ? Il ajoute une limite à
la façon dont l'appareil photo peut bouger. Laissez-moi vous expliquer. Je vais aller dans où
est le nom de la grille ? Cliquez avec le bouton droit ici. Je vais peut-être
ajouter un composant. Allons de l'avant
et appelons cela le vrai cause du collisionneur de
polygones 2D. On y va. Je peux le modifier. Vous pouvez voir que c'est le polygone, donc nous le pouvons, nous y allons. Fais-le comme ça. Si vous maintenez la touche Contrôle enfoncée, vous pouvez voir cette ligne rouge. Cela signifie qu'il
sera supprimé. Je vais donc aller de l'avant
et faire les limites pour lesquelles notre appareil photo ou la caméra de la
machine se déplace, les limites qu'elle
ne traverse pas. Je vais donc m'assurer que, par
exemple, nous ne pouvons pas regarder ici et
voir ce que nous pouvons faire. En fait, nous pouvons
ajouter un autre point. C'est pourquoi nous avons besoin d'un
collisionneur de polygones, et c'est parti. La caméra ne
pourra donc pas sortir de
ces liens et nous ne pourrons pas voir
le bleu ici. Est-ce qu'on peut ? Est-ce que Michael dit la vérité ? Pas toujours. C'est de le relancer
et de voir par nous-mêmes. Donc, d'accord, je suis en dehors
du lien parce qu' il y a quelque chose de très important et que ça doit être un déclencheur. Nous ne voulons pas que cela
affecte quoi que ce soit. Et encore mieux si nous pouvons faire de
cette grille un joueur différent. Je pense donc que nous devrons en
faire une couche différente, mais nous devrons en
faire une couche différente. C'est pourquoi je voulais appeler
la grille d'intouchable, l'
appeler la mauvaise couche. Et au Nord cet objet uniquement parce qu'il n'affectera que le polygone dont
nous disposons les murs, nous voudrions peut-être que les murs
interagissent avec le joueur. Alors lancez le jeu, d'accord, avec les balles
des joueurs. On y va. Maintenant, nous n'interagissons plus. Et si nous montons ici, nous avions l'habitude de voir les lignes bleues. Rappelez-vous, nous voyons encore les lignes bleues parce qu'il a fait l'une des
plus grosses erreurs. Nous n'avons même pas assigné le collisionneur de
polygones ici. Faites glisser la grille,
et voilà. Maintenant, nous avons le
collisionneur de polygones, lancez le jeu. On peut le montrer,
puis on y va. Je ne vous l'ai pas dit ? D'accord. Comme vous pouvez le voir, je ne peux plus regarder en mode scène. Vous pouvez voir que maintenant la caméra ne
bouge qu'avec la quantité de
confinement qui lui permet. Dès que nous frappons
l'un des autres, voilà, la caméra ne fonctionne
plus et vous pouvez voir qu'elle est forcée de
passer par là. Très joli. C'est donc un truc très astucieux
que vous avez appris. Vous pouvez descendre, comme vous pouvez le voir, nous ne pouvons plus
déplacer la caméra. Regardez où nous sommes. Nous ne sommes plus
au centre car la caméra est
confinée ici. Il ne bouge pas. J'espère que ça vous plaira. J'espère que vous aimez le strict. Il est évident que cela
doit être corrigé. Je n'aime pas ça du tout. Nous devons changer un peu ce
collisionneur de polygones. Alors peut-être que c'est comme ça, peut-être celui-là comme ça. Il est donc toujours préférable d'
avoir les formes au carré. Assurez-vous de
regarder à travers cela. Ne faites pas que nonchalamment, assurez-vous de prendre le temps de
créer correctement le combinateur. Pour ce faire, j'espère que vous avez apprécié que la vidéo
soit assez longue. Il y a encore une chose
que nous devons réparer c'est l'
animation du sang sur les ennemis. Je vais donc vous
confier cette tâche. Voici donc
ces
animations flash à la fin, nous voulons nous
assurer de détruire tout nous voulons nous
assurer de détruire tout ce sang qui sort
du joueur, de l'ennemi. Nous ne voulons pas
les garder dans la hiérarchie. Cela étant fait, j'
espère que cela vous plaira. J'espère que vous allez tout mettre en scène,
tout mettre en scène. Ce que nous avons fait dans
cette vidéo a changé l'échelle temporelle et
c'est maintenant beaucoup plus frais
lors de la transition. Et j'ai fait une
machine à cinéma. Des coups de feu. Commettez les modifications. Regardez le maître. J'apprécie votre travail. Appréciez le chemin parcouru, et je vous verrai
dans la prochaine vidéo.
42. S'initier à et à sortir (toile): Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et celui-là, vous remarquerez que nous
avons la décoloration. Et à quoi cela sert-il ? Eh bien, si nous regardons ici, nous avons une énorme boîte noire. Et vous pouvez le voir maintenant. Nous ne voyons rien dans le jeu. Pourquoi est-ce que c'est ? Que s'est-il passé ? Que nous quittions le jeu ? Pourquoi est-il si petit en ce moment ? Pourquoi sommes-nous zoomés ? Tellement de questions, si peu de réponses. Si je lance le jeu, vous remarquerez que nous commençons le niveau en s'estompant de l'image noire. Et si nous nous promenons, vous pouvez voir que dès que nous entrons sur le portail, non seulement nous ralentissons, mais nous nous estompons, puis nous nous estompons lorsque nous passons au niveau suivant. Donc,
ne perdons plus de temps et nous allons échouer. Oh, d'accord. Nous sommes
donc train de passer d'un niveau à l'autre. Nous avons l'effet d'échelle temporelle où nous ralentissons tout. La prochaine chose que nous voulons faire, c'est que nous
voulons avoir un effet de décoloration. Donc, ce que nous voulons, c'est B1, l'image ou le jeu entier s'estompe en noir. Et puis, lorsque nous entrons dans un nouveau niveau, nous voulons disparaître. Allons-y, faisons-le. La première chose que nous devons faire, ou comment la décoloration sortante fonctionne-t-elle ? Nous aurons ici une grande image noire qui s'estompera puis disparaîtra
au fur et à mesure que nous passerons de niveau à l'autre. Il s'agit donc d'une image noire et nous utilisons l'alpha dessus. Alors, faisons-le. Comment allons-nous ajouter une image dans Unity ? Eh bien, nous avons besoin de quelque chose appelé une toile. Je vais donc créer un canevas. Je vais cliquer avec le bouton droit de la souris dans la hiérarchie, aller à l'œil et trouver le campus. Vous y allez. Nous avons maintenant un campus. Si je double-clique dessus, vous
y allez, vous pouvez voir qu'il s'agit d'une toile énorme et
grande et vous vous demandez peut-être pourquoi la toile est-elle si grande alors que notre jeu est si petit ? C'est ainsi que Unity
gère l' utilisation de Canvas et l'ajout d'images. Il vaut mieux jouer avec les images ici. Au lieu de jouer dans les images, écrivez-le et ayez tout
devant le joueur et les objets du jeu. Il s'agit donc d'une meilleure façon ou la façon dont l'unité utilise pour gérer les choses. Vous pouvez également constater que nous avons quelque chose qui s'appelle le système événementiel. Et cela nous permet, par exemple, d'avoir une sorte de bouton sur la toile. Nous voulons cliquer dessus pour
pouvoir ajouter un système d'événements sous le Canvas, faire un enfant et le conserver pour le moment. Et ce système d'événements nous permet d'appuyer sur boutons sur l'écran et de
nous permettre d'interagir avec le canevas. Nous verrons comment cela fonctionne en un instant. Mais pour l'instant, nous voulons
entrer dans le scaler de canevas ici. Vous pouvez voir que nous pouvons évoluer en fonction de la taille de l'écran. Et nous voulons changer cela de 100 à
1920 d' ici là huit, soit la taille de l'écran que nous utilisons ou créons le jeu. Appuyez sur Entrée. Vous y allez. Maintenant, tout est fait. Vous pouvez voir que nous avons la roulette à rayons et un élément pour la toile, ce qui n'est pas si important. Nous ne changerons rien de trop ici. Nous voulons seulement nous assurer que le scaler de canevas l'
échelle de la taille de l'écran et nous voulons le faire 1920 par 1080. Ok, super. Maintenant que cela est fait, étape
suivante consiste à ajouter une image. Je vais donc cliquer ici avec le bouton droit de la souris, aller vers vous et trouver une image. Maintenant, vous pouvez voir que nous avons une image au milieu de l'immense toile et je vais le faire, c'est l'image qui s'estompe. Mais même si nous l'avons sur la toile, vous pouvez voir ici dans le jeu que nous l'avons comme un petit bloc. Et si je le déplace vers le haut, vous remarquerez qu'il se trouve dans la partie supérieure du jeu, et au milieu, c'est
au milieu que réside le joueur. Et en bas à gauche, vous pouvez le voir. Ce n'est donc pas même si
l'image en haut du jeu est énorme. Mais vous pouvez voir que sur la toile, c'est vraiment petit et il diminue. C'est ainsi que nous représentons les choses dans Unity sur le canevas de l'interface utilisateur. Maintenant, que va-t-on faire ? Nous voulons que cette image remplit toute la toile, rende complètement noire. Ensuite, nous allons utiliser la transparence qui s'y trouve pour s'estomper et s'estomper. Tout d'abord, comment le rendre aussi grand que l'écran ? Eh bien, il y a une option ici. Vous pouvez voir que c'est l'outil rect. Lorsque vous cliquez dessus, vous pouvez faire glisser cette image
et la rendre plus grande et plus petite. Et vous remarquerez ici
que nous avons beaucoup de choses à
gérer et à modifier
l' apparence de l'image. Nous pouvons également maintenir Alt enfoncé et choisir l'un des coins, ou l'armée. Choisissez l'un des coordinateurs et maintenez la touche Alt enfoncée. Et vous pouvez voir que nous pouvons
l'élargir et tous les moyens. Mais il existe une solution encore meilleure à cela. Et c'est que si nous cliquons ici, vous pouvez voir que nous avons quelques options qui s'appellent l'ancre. Par exemple, si je clique sur cette ancre, l'image baissera grande et petite avec une échelle de haut en bas en fonction de ce point ici,
nous pouvons également cliquer sur celle-ci où elle sera mise à l'échelle fonction de l'ensemble du canevas. Vous verrez ce que je veux dire par mise à l'échelle lorsque nous avons besoin d'évoluer. Mais que se passe-t-il si nous maintenons Alt enfoncé ? Vous pouvez voir que nous pouvons agrandir l'image de cette façon. Nous pouvons l'agrandir au milieu, nous pouvons l'agrandir vers la gauche, et nous pouvons l'agrandir tout autour pour qu'il remplit tout le carré. Tout le Canvas immédiatement. Et vous pouvez voir que maintenant l'image a complètement
bloqué le jeu. Et si je vais sur la toile et l'image qui s'estompe, je peux changer la couleur ici même sur l'image, et la rendre complètement noire. Maintenant, comment allons-nous changer la transparence ? Tout d'abord, nous pouvons
le faire ici pour pouvoir modifier l'alpha de l'image. Mais il est difficile d'accéder à l'alpha sur l'image car nous devons accéder à toutes les couleurs rouge, vert et bleu. D'une autre façon de le faire, c'est en ajoutant quelque chose appelé un groupe de campus. Donc, si je vais ici et que j'ajoute un groupe de canevas, vous pouvez voir que j'ai la possibilité d'avoir Alpha. Et si je déplace cet alpha de 0 à un ou de un à 0, vous pouvez voir à 0, il est complètement transparent. À un moment donné, ce n'est pas le cas. Et je peux bloquer la refonte. Cela signifie que la refonte signifie que chaque fois que je veux cliquer sur quelque chose, cela peut aider à bloquer la refonte et l'interactable cette image est-elle interactable ? Disons que ce n'est pas le cas. Et voilà. Notre objectif est donc maintenant de créer une animation. À l'aide de cette animation, nous allons contrôler le groupe de canevas alpha ici. Ensuite, nous allons disparaître et
disparaître à chaque fois et à notre gain. Cela étant expliqué, je vais vous lancer un défi. Et votre défi est de faire disparaître l'image. Je vais donc vous
expliquer comment procéder étape par étape. Tout d'abord, vous devrez créer une animation pour le
fondu et le fondu et être noir à transparent et disparaissant, ce qui sera transparent au noir. Vous devez créer une transition entre
la transition entre les deux animations en
fonction d' un déclencheur. N'oubliez pas que nous avons créé la transition basée sur un booléen. Il est maintenant temps d'utiliser un déclencheur. Vous devez ajouter un paramètre de déclenchement. Il est évident que vous devez créer un script UI Manager et l'ajouter au canevas. Vous devrez créer une méthode qui déclenche la décoloration. Enfin, vous devez appeler cette méthode depuis le chargement de Colton dans le gestionnaire de niveaux. Nous connaissons donc presque toutes les étapes. Vous ne savez peut-être pas comment régler un déclencheur. C'est donc ce que vous devez chercher vous-même. Et tout le reste, je crois que c'est quelque chose que nous avons vécu avec testé. N'oubliez pas que le fonctionnement de l'animation consiste à appuyer sur
le petit bouton rouge de
l'enregistrement de l'animation pour que l'information, suspendre la vidéo dès maintenant et aller faire le Chavan. Bon, bon retour. La première chose que nous allons faire c'est que nous allons entrer dans l'animation. Je vais aller de l'avant et
m'assurer d'avoir l'image décolorée et de créer une animation. Et maintenant, je peux aller dans les animations, cliquer avec le bouton droit de la souris ici et créer l'image décolorée. Je suis donc
dans les animations des actifs et ici je vais tout d'abord créer la décoloration, la décoloration et l'enregistrer. Maintenant, qu'avons-nous dit que le pistolet à décoloration devrait être la décoloration en noir à transparent. Ok, super. Combien de temps est-ce que je veux que cela prenne ? Faisons donc environ 1,5 seconde. Je vais donc cliquer sur le bouton Enregistrer. Et qu'est-ce que j'ai dit encore, noir trop transparent. Oups, ce n'est pas la clé que je cherchais. Et où est-il ? Bon, de retour ici. Nous commençons donc par le noir et à la fin, nous enregistrons. Je veux ramener l'alpha à 0. Que se passe-t-il maintenant lorsque je joue l'animation ? Il commence en noir, puis s'estompe trop transparent. Excellent. La prochaine chose que je vais faire est de créer le fondu. Alors, s'évanouit. Et maintenant, nous commençons à 0 ,
puis nous entrons dans l'obscurité complète après 1 seconde. Nous avons donc arrêté l'enregistrement, lançons le jeu si transparent, fondu au noir. Excellent. Maintenant, la prochaine chose que nous allons ouvrir l'Animator. Et ici, nous allons tout d'abord, d'accord, donc la décoloration et la décoloration signifient que nous passons du noir au transparent. Cela devrait commencer dès que nous recommençons. Donc, nous n'apparaissons pas seulement en mode jeu, nous passons en mode jeu, puis nous avons le fondu vers le noir qui
créera une transition ici. Cette transition ne doit
pas avoir de temps de sortie et les paramètres doivent être un, je veux dire que la durée de la transition doit être à 0. Je vais créer un paramètre qui sera un déclencheur, et je vais juste l'appeler Start, fondu. Faites de cette capitale. Vous y allez. Et ajoutez-le comme condition ici. Excellent. J'espère que vous avez fait toutes ces étapes. Ce sont des choses que nous avons déjà couvertes et déjà créées. Et avant de passer à autre chose, nous devons nous assurer que cette toile est également présente au deuxième niveau Y ou au niveau 1. Pourquoi ? Parce que si on passe au niveau 1, où sont les scènes ? Si nous passons au niveau 1, vous verrez que nous n'avons pas de canevas, sorte que nous ne pourrons pas s'estomper lorsque nous commencerons le niveau 1 ou lorsque nous passerons au niveau 1. Donc, au niveau 2, je vais appeler cela le canevas de l'interface utilisateur Entrée. Et je vais aller dans les Prefabs. Où sont les préfabriqués ? Et je vais créer et ici un dossier d'interface utilisateur. Et ici, je vais faire glisser le campus de l'interface utilisateur. Gardez ça. Et maintenant, regardez à quel point les préfabriqués sont incroyables. Eigen ne croit pas que nous en ayons parlé. Mais si nous entrons dans les scènes du premier niveau, nous pouvons immédiatement accéder à interface utilisateur de
Prefabs et ajouter un canevas et nos jeux. Nous avons donc maintenant un canevas ici même au niveau 1 et nous n'
avons plus eu à le créer à nouveau. C'est la beauté d'avoir des préfabriqués. C'est ce qui a été fait au niveau 2. Voyons ce que nous avons ici. Donc les animations jouent, tout devrait fonctionner maintenant lorsque nous lançons notre jeu, nous devrions avoir une décoloration et une animation. Je dirige donc le jeu. Vous y allez. Vous pouvez donc voir que j'ai une décoloration en boucle dans l'animation. Je vais donc entrer dans les animations, trouver la décoloration et la décoloration,
et m'assurer qu'il n'y a pas de temps de boucle. Gardez ça. Et maintenant, lorsque nous lançons le jeu et le second, nous avons une décoloration d'un pouce. Excellent. Savez-vous pourquoi cela se produit ? Eh bien, parce qu'à l'entrée, première chose que nous faisons est de s'estomper. C'est donc déjà prévu pour nous. Maintenant, la prochaine chose que nous devons faire est de
créer le gestionnaire d'interface utilisateur et de l'ajouter au campus. Je vais donc entrer dans mes scripts ici, cliquer avec le bouton droit de la souris et créer un nouveau dossier pour l'interface utilisateur. Nous changeons énormément le nom de ce dossier, mais pour l'instant, allons créer un script C-sharp, qui sera le gestionnaire d'interface utilisateur ou aurait dû être dans le gestionnaire. Et cela ne s'inquiète pas. Attendez que cela soit compilé. Passons ça aux gestionnaires. Je crois que c'est du beurre ici ou peut-être pas. Je ne sais pas. Cela dépend de vos préférences. Je pense que dans le manager, c'est peut-être mieux. Annulez ou non, gardons ça. Gardons ça dans vos yeux. Même s'il s'agit d'un gestionnaire, il le conservera dans l'interface utilisateur. Je vais ouvrir le gestionnaire d'interface utilisateur, ouvrir Visual Studio. Et la première chose dont nous aurons besoin, c'est une référence à l'image que nous voulons revenir ici. J'espère que ce n'était pas trop difficile car il va s'agir d'un champ sérialisé, qui est une image de type image. Oh, il y a eu quelque chose que j' espère que certains d'entre vous ont pu comprendre. Si j'essayais d'utiliser l'image ici. Vous remarquerez que je n'ai pas d'option pour cela. Ce dont j'ai besoin, c'est que j'ai besoin
d'utiliser votre moteur Unity dot u i , donc j'espère que ce n'était pas un problème énorme pour vous. J'espère que vous avez trouvé cette erreur ou trouvé cet inconvénient dans le défi et vous avez essayé de trouver la solution si vous ne l'avez pas fait, ne vous inquiétez pas. C'était en mon nom. J'aurais dû vous avertir à l'avance. Ne vous inquiétez pas. L'image du destin. Certains d'entre vous pensent peut-être : Oui, pas de soucis, bien sûr, juste ma confiance a été détruite. Quoi qu'il en soit, qu'allons-nous faire dans cette classe ici et dans le gestionnaire d'interface utilisateur ? Eh bien, comme nous l'avons dit, nous avons besoin d'une méthode. Créez une méthode qui déclenche la décoloration et appelez cette méthode à partir du coworking de chargement dans Level Manager. Je vais donc m'assurer qu'il s'agit d'un public. Je vais donc créer une image de fondu vide public. Et ici, je vais aller de l'
avant et accéder à l'image pour qu'elle s'estompe. Je vais y avoir un composant, qui est l'animateur. Et je vais mettre la gâchette. Et ce déclencheur sera
la référence d'une chaîne au fondu Démarrer. Et aujourd'hui, maintenant, copiez ceci ici, collez-le ici, fermez-le, enregistrez-le. Alors, que faisons-nous ? Parce que nous avons créé l'animation sur l'image réelle pour qu'elle s'estompe. Vous pouvez voir que l'animateur est ici sur cet objet de jeu. L'un des composants de l'image à estomper. Ce que nous faisons, c'est que nous accédons à l'animateur sur l'image, puis nous définissons le déclencheur qui est lancé. Ok, super. Maintenant, la prochaine étape consiste à l'appeler Level Manager. Et il y a deux façons de le faire. Nous pouvons soit aller de l'avant et trouver l'objet du jeu, soit trouver le gestionnaire d'interface utilisateur. Ou allons-y et créons une instance de cela. Je vais créer un gestionnaire d'interface utilisateur statique public. Par exemple. Gardez ça. Et je vais commencer ici. Et puis démarrez l'instance sera égale à cela. Gardez ça. Maintenant, dans le gestionnaire de niveau, où devrions-nous mettre ça ? Eh bien, je crois que dès que nous atteignons ou dès que nous entrons dans le niveau de chargement. Nous avons donc l'échelle temporelle à 0,2. Je vais aller de l'avant et accéder
au gestionnaire d'interface utilisateur, l'instance. Et je vais aller de l'avant et estomper l'image. Maintenant, vous remarquerez quelque chose que
parce que nous avons dit l'échelle de temps à 0,2, la décoloration de l'image sera plus
lente que ce que nous avons ici. Essayons donc cela et voyons si cela fonctionne. Si vous pensez que c'est un peu lent, vous pouvez aller de
l'avant et ralentir la décoloration de l'image. On y va donc. Nous commençons, nous courons. Et quand nous entrons sur ce portail ici, nous y allons. Nous ralentissons et nous avons oublié d'ajouter un hé, nous avons oublié d'ajouter la référence. Vous pouvez voir ici l'erreur. Si je double-clique dessus, vous verrez que l'image du gestionnaire d'interface utilisateur s'estompe, il y a quelque chose qui ne va pas. Qu'est-ce qui ne va pas ? Eh bien, il n'y a pas de cas. Ok, donc si je vais sur le canevas de l'interface utilisateur, je remarquerais que je n'ai même pas ajouté le manager, donc je ne suis pas sûr de ce qu'on appelle. Faites-le glisser dans le gestionnaire d'interface utilisateur. Assurez-vous que nous avons dit l'image décolorée et appliquons les modifications. Remarquez maintenant que le canevas ce niveau n'avait pas de gestionnaire d'interface utilisateur, n'est-ce pas ? Et c'est celui que nous avons utilisé dans le premier niveau. Si je passe maintenant au premier niveau, je clique sur le canevas de l'interface utilisateur. Il dispose d'un gestionnaire d'interface utilisateur et l'image est déjà configurée. Vous pouvez ainsi voir à nouveau la puissance de l'utilisation des applications de deuil. Est-ce que c'est cool ? Donc de retour au niveau pour lancer le jeu, on s'estompe. Plus d'erreurs. Nous montons, nous passons par le portail, et nous y allons, nous ralentissons. Nous avons ce sucre ici. Il y a donc eu un léger problème ici. Comme vous remarquez que nous n'avons même pas
eu le temps de s'estomper. Je vais donc accéder à
nouveau au fondu et à l'image qui s'estompe. Et où est-ce que c'est ? Eh bien, cela dépendra de la durée ou de l'échelle de temps que vous avez ici. Je vais donc faire 0,5. Gardez ça. Et au lieu de 1,5 seconde, je vais faire le tour, passons à 0, peut-être 1 seconde ou 2,5. Disons que c'est environ 40 ans du jeu. Testez-le, voyez si nous avons le temps de s'estomper. Alors, je monte, je passe à travers. On y va, on s'estompe complètement, puis on a cessé de s'estomper. Et très normalement. Donc, avec cela, j'espère que vous apprécierez. Assurez-vous de valider nos modifications. Stage tous valident les modifications. créé une
image décolorée en entrant et en sortant Vous avez créé une
image décolorée en entrant et en sortant à l'aide d'innombrables. Commettez les modifications. J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo.
43. Section 7 : Environnement destructible - Mouvement Tornado: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, je vais maximiser la lecture. Nous avons ajouté un mécanicien fringant. Alors maintenant que nous nous déplacons, si je clique sur la touche Espace, vous y allez. Vous pouvez voir que je me déplace un peu plus vite,
mais en fait, j'ai doublé de fois la vitesse. Donc, quand je me lance, je me déplace deux fois plus vite. On y va. On peut voir que je ne peux pas tuer les ennemis pour courir autour d'eux et les tirer dessus. Et oui, on y va. Nous avons donc ajouté ce mécanicien vraiment beau et cool. Donc, ne perdons plus de temps et commençons. Oh, ok, donc maintenant on peut revenir en arrière et ne pas jouer, double-cliquez sur lui. Bon, maintenant ce que nous voulons créer, la première chose que je veux
faire est de me débarrasser de cette image. Maintenant, ce que nous pouvons faire, c'est que nous pouvons éteindre la toile, mais ce n'est pas très pratique. Mais ce que nous pouvons faire, et c'est une excellente occasion vous
apprendre quelque chose de nouveau. Si vous cliquez sur le canevas, vous pouvez voir que le calque et voici, vous l'êtes. Donc, si nous entrons ici dans les calques, vous pouvez voir que nous avons tous les calques ici. Et vous pouvez voir que nous avons une sorte de verrou ,
puis nous pourrons avoir une sorte de moi ici. Et si je clique sur l'œil, vous pouvez voir que tout ce qui se trouve sous l'interface utilisateur ou tout ce qui se trouve sous l'interface utilisateur du calque disparaît. Si je clique sur le joueur, il s'en va, vous pouvez voir que le joueur disparaît également. C'est toujours dans le jeu. Cela fonctionne toujours lorsque nous commençons le jeu. Vous pouvez voir dans la fenêtre du jeu, il est toujours là, mais dans la scène, on ne peut pas le voir. Qu'est-ce qui est hors du chemin ? La prochaine chose que nous voulons faire est d'ajouter une sorte de mécanicien fringant, comme nous l'avons fait dans le jeu Hadès. Nous pouvons voir que nous pouvons rapidement arriver. Nous allons faire de même dans ce jeu. C'est un peu différent, évidemment cause de la limitation et des sprites. La limitation dans une équipe. Et nous allons utiliser les sprites ici. Où sont-ils, ces dramaturges sprites pour la couche bleue. Et vous pouvez voir que nous avons cette rotation ici. Et c'est ce que nous allons utiliser. Et évidemment,
en fait , dans les ressources que j'ai laissées à un autre type de torpille, vous pouvez utiliser que c'est un peu différent et des couleurs de celle-ci, mais je pense que ce n'est pas un problème énorme. Alors, qu'allons-nous faire ? Nous allons tout d'abord expliquer quelle est la torpille tornade. Je ne sais même pas comment l'appeler. Peut-être que vous avez une façon totalement différente. Nous appellerons ça le fringant à partir de maintenant, tout
sera fringant juste pour éviter toute confusion. Tout d'abord, le joueur se déplacera beaucoup plus vite. Nous allons donc augmenter la vitesse de déplacement du joueur. Et l'animation sera déclenchée, ce qui fera tourner le joueur en rond. Et pendant que le joueur fait la tornade, il sera invincible donc il ne peut être blessé par quoi que ce soit. C'est quelque chose que nous mettrons en œuvre plus tard lorsque nous ajouterons un système de santé au joueur. Pour l'instant, sachez simplement que c'est ce qui
se produira lorsque le joueur est fringant. Et enfin, il peut casser des objets autour d'eux. Ainsi, comme vous connaissez le nom de cette section, tout comme les objets structurels. Et tout d'abord, nous devons ajouter un moyen ou un peu de mouvement avancé au joueur afin qu'il puisse détruire ces objets
de jeu sans plus ni bleu. Et commençons. La première chose que nous voulons faire, c'est aller au contrôleur de couche, de
regarder le nombre de scripts que nous avons. Je viens de remarquer que c'est bien. Cela signifie que nous augmentons notre compréhension. De toute façon. Tout d'abord, nous devons créer un moyen de suivre la vitesse de déplacement actuelle. Parce que maintenant nous avons la vitesse de déplacement régulière, nous aurons maintenant la vitesse de déplacement fringante. La première chose que je veux faire est donc de créer un flotteur privé et la vitesse de déplacement actuelle. Et cette vitesse de déplacement actuelle va changer si nous faisons la torpille ou la tornade, et si nous ne faisons que marcher. Ensuite, je vais créer un livre privé qui s'appellera le « can dash ». Et pourquoi créons-nous ce booléen ? Eh bien, parce que vous verrez maintenant une mise à jour
que nous voulons faire un tableau de bord. Nous allons donc cliquer sur une sorte de
clé et nous commencerons à fringer, mais nous ne voulons pas être en mesure de faire un tableau de bord tout le temps. Nous voulons avoir un peu de fraîcheur pour le tableau de bord, et nous voulons aussi avoir une longueur ou un tableau de bord. Nous aurons donc ce
booléen pour garder tout en échec et nous assurer que nous pouvons 20 fois de suite. La prochaine chose que je vais faire, c'est que je vais faire
défiler vers le bas ici et voir où le joueur se déplace. Je double-clique donc et je peux faire défiler vers le bas et trouver le Rigo. Nous avons le joueur qui bouge et c'est là que nous ajoutons la vélocité. Il s'agit donc de l'entrée du mouvement qui multiplie la vitesse de déplacement. Au lieu d'utiliser la vitesse de déplacement, je vais dire qu'il s'agit de la vitesse de déplacement actuelle. Et juste pour s'assurer que nous avons une vitesse de déplacement actuelle et qu'elle n'est pas égale à 0. Et pour commencer, je vais régler la vitesse de déplacement actuelle pour qu'elle soit égale à la normale. Vitesse de déplacement. Vous y allez. Vous pouvez modifier le nom de la vitesse de déplacement si vous le souhaitez, vous pouvez nommer la vitesse de déplacement normale. Je vais juste le garder comme ça. Ce n'est pas trop déroutant pour moi. S'il est épais pour
vous, changez de nom. La prochaine chose que nous voulons faire est de
configurer les variables 40 fringantes. Permettez-moi d'ajouter ici un commentaire que nous sommes fringants. Frinant et mouvement par regard. Je vais donc créer un champ sérialisé et je vais être le flotteur, et ce sera la vitesse de tiret. Et pour l'instant, je vais régler la vitesse de déplacement ? Quelle était la vitesse de déplacement sur le joueur de dunes ? Voyons voir, dix. Bon, alors, je vais en faire au moins 20, peut-être même plus tard. Au fait, nous pourrons contrôler à partir du spectral. Ce n'est donc pas un problème. Et la prochaine chose que je veux m'assurer que nous avons c'est ces deux variables qui sont le ou non,
en fait, elles devraient être privées. Ou allons-y et faisons-les sérialiser. Donc, la longueur du tiret, qui sera fixée à 0,5 f c'est
donc combien de temps nous sommes fringants. Et puis nous aurons le tiret refroidir, ce qui sera le temps entre chaque tiret et le vendra en un seul. Nous avons maintenant la possibilité de jouer avec les tirets, la vitesse
du tiret, la longueur du tiret et les pointillés. Cool. Maintenant, 1 seconde. Ok, super. Maintenant, une mise à jour. Nous allons aller de l'avant et créer une méthode ici ne sont pas une méthode en fait. Tout d'abord, avant de créer la méthode, nous allons vérifier la présence d'une sorte d'entrée. Et sur la base de ces données, nous allons changer la vitesse actuelle, en
faire la vitesse du tableau de bord, puis nous assurer que nous ne pouvons plus tirer le tableau de bord. Vous pouvez utiliser n'importe quel bouton de votre choix. Je vais peut-être utiliser cet espace. Je vais utiliser l'entrée qui va baisser la clé. Et vous pouvez voir que cela renvoie un vrai pendant la trame, l'utilisateur commence à appuyer sur une touche et est identifié par un code de clé. Alors, appuyez sur la tabulation, ouvrez les crochets. Je vais écrire ici l'espace de points de code
clé, et voilà, nous pouvons voir que nous avons les options pour cartographier
nos clés et nous voulons nous assurer que nous pouvons tirer dessus , ouvrir ça ici. La première chose que nous faisons, c'est que la vitesse de déplacement actuelle devient la vitesse de tiret. Et le tiret peut être défini sur false. On y va donc. Nous cliquons sur l'espace. Nous vérifions si nous pouvons prendre un coup de pouce. Si les deux sont vrais, le mouvement actuel devient la vitesse de tiret, donc il est beaucoup plus rapide. Ainsi, le mouvement actuel ici devient 20,
pas dix, nous avançons plus vite et nous ne pouvons plus nous déchaîner. Bien sûr, nous devrons réinitialiser ces valeurs en un peu. Mais pour l'instant, essayons cela et voyons si cela fonctionne. Oh, et nous avons oublié de faire quelque chose qui est de créer l'animation réelle. Et faisons-le dans un peu pour l'instant, testons nos mécanismes de travail. Je vais donc rendre ça un peu plus grand. Je me déplace donc. Si j'avais la clé spatiale. Oui, non, rien ne s'est passé. Et pourquoi est-ce que c'est ? Parce que nous avons une sorte d'erreur. Ok, c'est très ennuyeux, mais ça ne nous empêche de rien. Quel est le problème ? J'ai appuyé sur Space, j'obtiens la touche enfoncée, déclare le contrôleur. Bon, bon retour. Après avoir creusé un peu et j'étais très confus pourquoi cela ne fonctionnait pas. Et c'est parce que le candidat n'était pas fixé. Ce n'était donc pas vrai. Je me suis assuré de le mettre en valeur et de commencer. Et maintenant, j'ai aussi eu ce journal de points de débogage. Laissez-moi juste vous montrer ce que je faisais. J'étais confus. Si besoin est. problème était que le mouvement actuel ne
changeait pas pour une raison quelconque. J'avais donc le journal des points de débogage juste ici, et je regardais dans la console. Donc, après avoir remarqué qu'il a gardé son état, et j'ai donc réalisé que cette méthode n'était pas prise. Je savais donc que l'espace pressant était correct. Ils peuvent peut-être bash ne l'était probablement pas. Je l'ai mis en valeur. Ça a fonctionné. Permettez-moi de retirer ça, de le sauver. C'est juste la puissance du débogage. Et comme vous pouvez le constater, parfois tout
ne fonctionne pas parfaitement. Parfois, vous avez besoin de creuser dans les choses. Maintenant, quand je me déplace, vous pouvez voir le mouvement. Vous pouvez réaliser à quel point il
est rapide lorsque j'appuie sur la touche Espace. On y va. Vous pouvez voir que je vais beaucoup plus vite, d'
accord, une fois cela fait, la prochaine étape consiste à nous
ramener à la vitesse normale et à m'assurer
que le refroidissement du tableau de bord fonctionne et les
week-ends . à nouveau après l'endroit où le tableau de bord se refroidit. Et cela va vraiment faire partie de votre défi. Votre défi consiste à créer deux cotylédons. Le premier sera donc le comptoir de refroidissement où nous
attendrons et pourrons ensuite refaire la torpille. Et le second sera la vitesse à laquelle nous nous déplaçons, de sorte qu'à la fin, nous remettrons la vitesse à sa vitesse normale. Ces instructions mettent donc en pause la vidéo dès maintenant et relèvent le défi. Bon, bon retour. Alors, que va-t-on faire ici ? Dès que nous aurons le mouvement, nous allons devoir appeler des routines. Le premier ici va être un recenseur oculaire. Et ça va être le tableau de bord. Refroidissez. Et ici, nous allons céder, revenir neufs. Attendez quatre secondes. Et nous allons attendre le tableau de bord, descendre. Et quand cela aura fini, nous allons dire que le tiret peut être égal à vrai. Ensuite, nous allons créer un autre numérateur I, qui s'appellera la longueur du tiret. Et tu sais quoi ? Je pense que le nom ne suffit pas. Je vais appeler ça le compteur de longueur de tiret, juste pour qu'on sache ce qui se passe et le tableau de bord refroidisse les compteurs. Bien sûr. Appelons ça le compteur bas du tableau de bord. Et je vais copier ça. Donc, rendez le nouveau poids pour une seconde, mais maintenant c'est la longueur du tiret. Et quand nous en aurons fini avec le tableau de bord, cela signifie que nous avons précipité, je ne sais pas, quel que soit le temps de refroidissement du tableau de bord. Aussi longtemps que vous voulez que le joueur se déplace rapidement. Je vais le garder à 0,5. On va peut-être changer ça. Vous pouvez faire ce que nous voulons. Je vais régler la vitesse de déplacement actuelle pour qu'elle soit égale à la vitesse de déplacement normale. Enfin, nous devons démarrer le coltan, qui est le tableau de bord, refroidir le compteur, puis commencer une autre co-routine. Et ce sera le compteur de longueur de tiret. Compteur de longueur de tableau de bord. OK. Je cherchais donc et me demandais pourquoi c'était encore rouge. C'est parce que nous n'avons pas vraiment appelé le comptoir de refroidissement du tableau de bord. Nous appelons simplement la variable là-haut. Nous sauvegardons cela. Maintenant, nous pressons l'espace. Nous avons dit le mouvement actuel vers la vitesse du tableau de bord. Sans cela, nous ne pouvons plus faire un coup de fouet. Nous commençons la co-routine. Le tableau de bord se refroidit. Une fois le refroidissement terminé,
nous pouvons ensuite redescendre le tableau de bord et la longueur du tiret. Alors, sauvegardez ça. Nous retournons dans notre jeu. Nous gérons le jeu. Et on y va. Nous pouvons voir que maintenant nous avançons vite. Et puis nous commençons à déplacer le slogan, si vite, puis lentement à nouveau, et vite, puis à nouveau lent. Est-ce que c'est cool ? On y va, tout fonctionne. Et si j'essaie de me lancer plusieurs fois, vous pouvez voir que je ne peux pas le faire. J'ai un certain temps entre les deux. Je ne peux pas aller très vite autant que je le souhaiterais. J'espère que ça vous plaira. J'espère que vous commettez les changements qui ont créé un mouvement de torpille, je vais appeler cela parce que ça semble vraiment cool. Scène tout créé. Torpille, mouvement. Commettez les modifications. Et je vous verrai dans la prochaine vidéo où nous ajouterons de la visualisation à cette torpille, à cette fringante.
44. Animer la Torpedo: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et dans celui-ci, nous avons ajouté une animation,
qui est la couche qui fringait dans l'animateur. Donc, quand je lance le jeu, vous pouvez voir ici que nous sommes en train de bouger. Lorsque nous appuyons sur l'espace, nous ne nous contentons pas d'aller plus vite. Nous faisons vraiment l'intimidation. Qu'est-ce que c'est vraiment les intimider ? Quelque chose de mon enfance. Mais de toute façon, vous pouvez voir que nous
marchons, nous pouvons aussi le faire. Nous avons ce qui est cool et acharné, c' est que nous avons ajouté à la dernière seconde, c'était hors de ma tête quand nous tirons. Si je fais la torpille, c'est parti. Vous pouvez voir que nous ne pouvons plus le faire parce que nous n'avons
évidemment pas d'arme, de nos mains. Ne perdons donc plus de temps. Et commençons. Bon, il est temps d'animer la torpille. Tout d'abord, nous
allons aller dans le lecteur dôme,
sélectionner les animations, le ralenti. Nous allons créer un nouveau clip et ici qui
va être défini et la couche d'animations. Et appelons-le simplement fringant parce que chacun de nous, ou joueur fringant pour rester cohérent avec l'autre nom. Alors, joueur fringant, sauve ça. Et maintenant, commençons. Maintenant, nous savons que nous y accédons. Nous modifions les animations ou les propriétés du rendu du sprite corporel et faisons défiler les sprites vers le bas. Nous allons donc ajouter cela. Ouvrons cela pour que nous puissions les voir correctement, comme nous le faisions toujours. Voyons donc les fringants 1, 2, 3. Et en fait, je veux
simplement ouvrir ça et voir correctement ce qui se passe. Nous avons donc 1, 2, 3, 4, 5, 6, 7 sprites. Et nous les avons tous correctement. Voyons voir. Ok, donc tous,
ça s'appelle ça, les D1, D2, D3, D4, 5, 6 et 7. Donc, je veux juste éviter la confusion juste pour savoir quels sont les « D ». Donc, tu y vas. 12345 à sept. Maintenez enfoncé, Maj, sélectionnez-les tous, placez-les ici. Et je vais retirer le premier et je vais les
déplacer jusqu'au début. Et maintenant, élargissons un peu cela, mais nous allons y arriver. On y va, on le dirige. Voyons voir. Très bien. Très bien. Donc, même si nous avons toujours le bras ici, si vous voulez, c'est quelque chose auquel je pensais beaucoup. Donc, le bras et le gon restent en place. Que devrions-nous faire à ce sujet ? Honnêtement, je vais juste le garder tel quel. Vous pouvez faire pivoter le bras, vous pouvez voter le début, vous ne pourrez pas tirer. Je pense que ce serait un bon mécanicien en fait. Peut-être devrions-nous même l'ajouter. Non, parce que je veux voir le bras et le canon tourner pendant cette période ne pourront évidemment pas tirer, mais nous ne voulons pas changer la rotation du canon. Cela causera un problème. On y va. C'est le fringant, mais nous pouvons le faire, c'est que nous pouvons peut-être éteindre tout comme nous pouvons créer un enregistrement où nous
éteignons le corps et le bras du joueur. Il suffit peut-être de les cacher une seconde. Au début, nous les éteignons. Et à la fin, oups, pas le corps. Je parlais du bras et des armes allumées. Nous les éteignons. Et à la fin, lorsque nous aurons terminé la rotation, nous devons nous assurer que le, c'est le dernier. Collez-le ici. Nous rallumons cela. Maintenant, j'espère que cela ne causera aucune erreur. Nous sauvegardons cela, exécutez le jeu. Également. Nous devons réellement déclencher cela. Laissez-moi juste y retourner. Et il devrait y avoir un problème. Donc, ce que je pense qu'il arrivera, peut-être que cela causera un léger problème ici. Vous pouvez donc voir les armes allumées. Nous avons eu une référence à cela et au point le plus éloigné. Ce qui me fait peur, c'est que lorsque nous éteignons les armes, elles ne fonctionneront plus. Mais voyons ce qui se passe et ce que nous gaspillons, nous sauvons cela. Allons voir l'animateur et nous nous en inquiéterons dans un peu. Alors, que devrions-nous faire ? Nous allons commencer à fringler lorsque nous sommes dans le joueur qui marche. Je vais donc passer d'un joueur qui marche à un joueur fringant. Je vais créer un déclencheur ici. Et je vais appeler ça le tableau de bord. On y va. La condition ici sera le tableau de bord. Oui, donc de la marche au fringant, nous avons ceci. Et ce que nous pouvons faire, c'est que nous aurons peut-être un temps de sortie parce que nous n'avons
pas de moment réel pour arrêter le fringant. Nous n'avons pas de condition qui nous oblige à arrêter de dénigrer. Si nous n'y retournons pas, nous continuerons à fringer pour toujours. Et nous pouvons aussi être fringants lorsque nous nous élargissons. Je vais donc bouger un peu ça, les
faire paraître un peu mieux. On y va. On y va. Et je vais m'assurer que c'est aussi dans l'état de fringant. Et nous allons supprimer tout temps de transition de la marche et du fringant. Allons de l'avant et testons ça. En fait, si je vais dans l'animateur pour lancer le jeu, on peut voir le ralenti ici. Et il n'aurait pas dû maximiser le jeu. Voyons comment cela fonctionne. C'est donc mon processus actuel de Dash. On y va. Nous l'avons fait fonctionner correctement. J'ai arrêté de faire deux fringants. D'accord. Comme vous pouvez le voir, il y a quelque chose qui ne va pas si j'essayais de tirer maintenant, où sont les armes ? Pour que nous commettions une sorte d'erreur sur le doom player, le fringant, et celui-ci est désactivé. Est-ce qu'ils sont allumés ? Oui, ils le font. Sur la dernière image, mais pour une raison quelconque, il ne s'est pas allumé. Je vais donc
relancer le jeu et voir quel est le problème. Donc je me suis dit, d'accord, maintenant je sais le problème que nous sommes en boucle. Donc dans l'animation, le calque, le tiret, arrêt de la boucle, c'est la première fois que j'oublie tant de fois de supprimer la boucle dans un jeu. Alors, relançons ça. Testez ça. Donc je fais le tableau de bord, j'ai arrêté de fringer. Je regarde le doom player. Oui, on y va. Alors regardez ce qui se passe quand on se lève. Ok, donc ce serait un tiret. Je ne savais pas 0. Nous sommes donc toujours dans l'animation fringante. Super. Maintenant, nous allons revenir du fringant au joueur qui marche et
au ralenti du joueur. Et celui-ci aura une heure de sortie. Nous supprimerons l'heure de sortie sur le chemin du retour. Ainsi, du tiret au joueur, au ralenti et en marchant, les deux transitions ne devraient pas avoir de temps de sortie, elles
n'ont pas besoin d'une durée de transition. Et pendant que nous partons, nous aurons une
sorte de sortie ici. Nous garderons donc l'heure de sortie telle qu'elle est. Pourquoi ? Parce que lorsque vous créez des animations et que vous disposez d'un temps
supplémentaire se produit automatiquement et parfaitement pour ce moment, si nous avons un temps de sortie un peu plus long, l'animation peut être couper au milieu, puis revenir au ralenti. Essayons donc ça. De toute façon. Je vais aller de l'avant et diriger le jeu. Donc, quand je me lance, on
y va et on n'y retourne pas. Pourquoi est-ce que c'est ? Nous ne retournons pas dans les yeux, le lien pour une raison quelconque. Il y a quelque chose qui ne fonctionne pas correctement. La façon dont cela fonctionne, c'est lorsque cette animation est en cours de lecture, alors nous avons une heure de sortie. Il ne s'agit donc pas de celui-là, de celui qui va vers le fringant pour celui qui revient. C'était donc une erreur de ma part. chose que je croyais savoir ou bien sûr, je le sais, mais pour une raison quelconque, je me trompe avec le chemin du retour, et non pas la voie à suivre. Mais de toute façon, j'ai remarqué une chose, si nous jouons maintenant, le jaillissement fonctionne correctement. Donc, même si nous marchons, nous avons dit la gâchette, nous avons le fractionnement. D'accord. Alors, pendant que nous travaillons, nous y allons. Nous arrêtons de travailler parce que nous cliquons là-dessus. Nous allons tester cela à l'intérieur du jeu. Mais pour l'instant, vous verrez que lorsque nous jouons, nous ne jouons que la note d'animation ici dans le fringant. Vous verrez donc que nous jouons l'animation, puis nous y retournons. Pourquoi est-ce que c'est ? Eh bien, parce qu'à l'heure de sortie et ici, nous jouons 60% de ça. Ce que nous allons faire, c'est que nous allons simplement augmenter cela jusqu'à ce qu'il devienne environ 97, voire un. Et celui-là aussi, donc c'est un pourcentage. Et quand vous l'augmentez, vous voyez ici dans la chronologie que nous jouons tout
le fringant, puis nous
revenons au joueur qui marche vers 97. Je n'aime pas le garder à un seul moment parce que nous allons commencer, encore une fois le joueur fringant ou avoir quelque chose de vicié. Donc, 97 % dirigent le jeu. Maintenant, quand on se lance, tu y vas. Nous faisons le tableau de bord. Nous faisons le tableau de bord, nous faisons le tableau de bord et tout fonctionne correctement. Essayons de le tester lorsque nous sortons du jeu. Donc, on marche, on marche, on se lance. D'accord, il n'est pas déclenché. Vraiment sympa. Pourquoi ne pas être déclenché ? Eh bien, parce que cela fait partie de votre défi. Votre défi consiste à déclencher l'animation
des torpilles que vous n'ayez qu'une seule tâche, c'est une mise à jour. Lorsque nous appuyons sur les boutons, assurez-vous de déclencher l'animation et vous devez savoir quels boutons. Peut-être que vous utilisez quelque chose de différent de l'espace. C'est pourquoi j'utilise des boutons et je mets toujours
la vidéo en pause maintenant et je vais m'assurer que nous tirons. Bon, bon retour. Donc ici, quand nous nous tirons, nous allons aller de l'avant et dire que l'animateur du joueur définit les déclencheurs, définit le déclencheur. Et comme il s'agit d'une référence de chaîne, nous revenons en arrière, nous la copions, nous retournons ici, nous avons collé, nous fermons cela. Et enfin, je veux aussi ajouter un petit commentaire ici, car plus tard, nous allons
changer ou nous assurer que le joueur est invincible. Accédez donc au gestionnaire de santé de la couche car il s'agira d'un script distinct. Et assurez-vous qu'il soit invincible pendant un moment. Super, donc nous allons sauver ça maintenant, retourner dans notre jeu et nous allons courir. Maintenant, nous pouvons tirer. On fait le tableau de bord, on peut tirer, on fait le tableau de bord. Et si nous sommes fringants, nous tirons toujours même si le bras est détruit. Alors, tu y vas. Nous pouvons également Dash pendant que nous
marchons et cela fonctionne parfaitement bien. Vous y allez. Vous pouvez voir que nous pouvons prendre dessus en marchant et que nous reprenons la marche. Maintenant, le problème ici est que lorsque nous tirons, nous tirons, nous pouvons continuer à tirer, même si nous sommes fringants. Maintenant, c'est plutôt facile. Nous pouvons créer une sorte de booléen ici. Assurez-vous que si nous pouvons tirer dessus, nous ne pouvons pas tirer. C'est une bonne idée en fait. Et où est ce pistolet de pointage alors que le joueur tire ? Et nous pouvons créer une condition. Et ici, c'est vraiment sympa. Je ne voulais pas le faire maintenant car plus tard, lorsque nous créons des armes avancées, tout ce qui tourne autour des
mécanismes de tir sera déplacé du scénario. C'est ici que nous expliquerons comment nous
évoluons nos scripts au fur et à mesure. Mais pour l'instant, ajoutons simplement cette petite condition. C'est une bonne façon d'enseigner quelque chose de nouveau. Nous allons vérifier avant de commencer le tir des joueurs, si nous le pouvons, le tiret est égal à faux. Pourquoi est-ce que c'est ? Eh bien, parce que pendant que nous fringons le point de bord des canettes, nous avons
donc ce genre de comptoir. Et nous allons dire ici que le retour, si celui-ci, excusez-moi, revient, simplement cela. Alors, que signifie « retour » ? retour signifie que nous sortons du tir du joueur. Donc, tout ce code ici ne s'exécute pas dès que la bougie est fausse, on ne peut plus tirer. Essayons ça. J'espère que vous comprenez ce que nous entendons par retour. retour signifie que nous sortons, nous arrêtons tout là-dessus. Si cette condition n'est pas vraie, alors le tiret, le tiret est vrai seul. Cela signifie que toute cette condition est fausse. Cela signifie que nous ne reviendrons pas. Alors sauvegardez-le dans notre jeu, du jeu. Nous devrions voir que lorsque nous sommes fringants, nous y allons. Nous arrêtons de tirer jusqu'à ce qu'ils se refroidissent comme fini. Ok, super. s'agit donc que d'une petite ligne de la façon dont nous pouvons résoudre ce problème plus tard , bien
sûr, tout va changer. J'espère que la vidéo vous a plu. J'espère que vous avez pris les engagements ici. J'espère que vous avez laissé un avis. Si ce n'est pas le cas, c'est le moment idéal pour le faire. Merci beaucoup. scène a tous fait l'animation fringante. Maintenant, nous sommes plus frais. Commettez les modifications, et je vous verrai dans la vidéo suivante.
45. Objets cassés: Bienvenue, mes collègues développeurs de jeux. Cette vidéo sera un peu plus longue car c'est l'
une des fois où je n'étais
vraiment pas sûr de ce que nous allons faire. Je ne savais donc pas si je voulais en
faire un déclencheur ou si je voulais en faire un objet solide. Mais de toute façon, quand nous traversons cela, mais rien ne se passe, mais si nous l'avons traversé, vous pouvez voir que nous pouvons le briser. Est-ce que c'est cool ? Et il disparaît tout seul après quelques secondes. Ne perdons donc plus de temps. Assurez-vous de mettre votre concentration SCAP sur. J'ai de minuscules erreurs et quelques hésitations pendant ce temps, mais ne vous inquiétez pas, j'ai
tout expliqué autant que possible. Commençons donc. Oh, d'accord, il est donc temps d'ajouter quelques objets cassables. C'est tout l'objet de la section. Nous sommes à la deuxième vidéo et nous n'avons toujours rien ajouté à détruire. Je vais donc aller dans mes sprites ici. Et je vais l'agrandir légèrement. Sur cette voie. Je suppose que nous pouvons même faire en sorte que ces icônes soient un peu plus petites, donc elles s'adaptent bien. On y va. Je vais donc cliquer avec le bouton droit de la souris pour créer un nouveau dossier, et ce seront les objets cassables. Des objets cassables, et c'est pourquoi nous créons toujours des dossiers. Imaginez que si nous avions tous
les sprites dans un seul dossier, cela aurait été un cauchemar. Quoi qu'il en soit, nous allons aller dans les ressources, comme vous pouvez le voir ici, nous avons beaucoup de bots à détruire. Je vais choisir le bon. Je vais choisir l'objet blanc cassable. On y va. Nous sommes soudainement ici. Et nous pouvons aller de l'avant et disséquer cela. Je vais donc m'assurer que c'est multiple. Et je vais le faire peut-être hors écran et je vous le ferai savoir quand j'aurai fini. OK. Bon retour. Laissez-moi vous dire ce que j'ai fait. Je ne voulais pas vous ennuyer avec tous les détails, alors tout ce que j'ai fait, j'ai coupé 32 par 32 la boîte blanche. Nous avons trois parties différentes ici et trois pauses différentes sont utilisées. Les W1, W2 et W3 décrivent le plus gros break pop. Et je m'assure que nous avons ces trois petites pièces ici. Ils seront utiles plus tard. Je vais donc ignorer tout changement. J'ai également créé une animation pour les parties à vélo. Donc vous y allez, vous pouvez le voir se rompre. Nous allons nous assurer à partir de maintenant d'aller au brisable. Pour que vous puissiez voir le blanc acheté cassé, assurez-vous qu'il ne boucle pas. Nous allons sauver tout cela. Maintenant, le pot de freinage, je vais ajouter un
Box Collider d'année ou une circulaire plus non, pas une toile. Supprimez le composant. Je vais ajouter un collisionneur de boîtes. Donc Box Collider 2D. on va contourner ça, je vais le rendre un peu plus petit. Je fais la taille des pixels sur le sprite. Permettez-moi de vous montrer ce que j'ai fait aussi. Donc, vous ne vous embêtez pas. Vous pouvez voir que le pot est peu près d'une bonne taille pour le joueur. Gardons ça comme ça. Et ce que nous pouvons faire, c'est que nous pouvons aller de l'avant et y arriver, eh bien, cela dépendra de vous. Voulez-vous que votre objet puisse
vouloir que nous puissions entrer en collision avec cet objet, ou nous voulons simplement en faire un déclencheur. Je vais garder ça un déclencheur pour l'instant, plus tard, si vous voulez changer cela, si vous voulez avoir des interactions avec les pots, vous voulez qu'ils vous empêchent de les traverser. Que je vous recommande de le rendre non déclencheur. Sachez quoi, gardons ça comme un non-déclencheur. Et pour cette raison, nous allons y ajouter un corps rigide et le rendre statique. OK ? C'est donc statique. Il ne bouge pas, mais on peut le briser. Que devrions-nous faire d'autre ici ? Je pense que c'est tout. Pour l'instant. Sauvegardons cela et
allons y ajouter un script, qui va s'appeler les taureaux de rupture. Donc, dans les scripts, parce que nous voulons ajouter un comportement évidemment à l'endroit où nous voulions casser. Allez, d'accord, alors voyons l'interface utilisateur du joueur des ennemis, et créons un dossier ici. Et faisons-le pour le cassable. bulles de casser s'ouvrent un clic droit sur Créer n'aura probablement pas de script différent ou d'un autre script, d'accord, donc cassable. Mais ce qui est bien de créer un dossier et de définir un
seul script ici que nous puissions le voir de l'extérieur. Donc, et les scripts ici, nous pouvons aller de l'avant et vérifier le cassable afin de pouvoir le trouver immédiatement. Je vais ajouter à la partie freinage. On y va. Nous avons les bulles de rupture. Ouvrons ça ici. Et que devons-nous faire ? Eh bien, parce que nous n'utilisons pas de déclencheur, nous allons utiliser quelque chose appelé « on collision enter ». Ainsi, vous pouvez voir en cas de collision lorsque le corps moins rigide du collisionneur a commencé à toucher un autre collisionneur ou un corps rigide, et nous nous assurerons qu'il s'agit de 2D. Ici, vous pouvez voir qu'au lieu d'autres, nous avons la collision. Donc, ce que nous allons faire, c'est que nous allons vérifier si la balise collision.com a une étiquette comparée ? Non, ce n'est pas le cas. Tag. Ou nous pouvons accéder à la balise collider.com. On y va. Maintenant, nous avons le collisionneur de la collision. Et nous allons vérifier si c'est le joueur. Et si c'est le cas, nous allons
détruire l'objet du jeu. Excusez-moi, l'objet du jeu. Gardez ça. Et nous irons également ici,
vérifierons la présence de l'animateur et verrons quel type de déclencheur il fait. Nous devrons donc créer une idole ici. Nous allons donc examiner les animations des actifs. Ou est-ce, où est-il ? Où est-il ? Cassible ? Partie blanche, inactif. Cela signifie que cela ne bouge pas parce que vous pouvez évidemment voir que nous ne voulons pas le faire casser dès que nous commençons le jeu, nous voulons le garder comme ça. Ce que nous pouvons faire, c'est cliquer avec le bouton droit ici et définir cet état comme état par défaut. Alors, tu y vas. Et nous allons l'ajouter ici. Créez une transition qui aura une sorte de déclencheur, c'
est-à-dire la pause, Scott pour plus de simplicité, pas de temps de sortie, durée de transition 0. Et je vais y aller de l'avant et faire la pause. Ensuite, nous retournerons ici. Nous allons le faire, parce que c'est le cas, ce ne sera pas trop compliqué. Je vais juste chercher l'animateur immédiatement. Donc ici, je vais dire si la collision en tant que joueur avant de détruire ou, en fait ,
vous savez, nous allons supprimer cela. Je vais aller de l'avant et obtenir le composant, l'animateur. Et dans tor dot set déclencheur et va être le râteau. Et je sais que c'est une référence de chaîne et je ne l'ai pas copiée, mais j'espère que la rupture est facile à comprendre. Ensuite, je vais créer un vide public. Détruire. Eh bien, non, détruisez. Juste, appelons juste que ça détruise. Et peut-être voulons-nous ajouter un peu de froid pour ne pas vouloir que le pot soit détruit. Laissez-moi vous dire ce que je cherche ici à faire. Quoi sans coroutine, détruisez
simplement l'objet du jeu. Ce que je voulais dire, je voulais utiliser une co-routine pour retarder la disparition des petits morceaux ici. Mais d'un autre côté, j'ai pensé qu'il serait peut-être encore mieux régler ça juste ici, appelé l'événement après quelques secondes, ou nous pouvons choisir peut-être la troisième seconde, aller régler l'événement. Quelle est la fonction ? Détruisez, sauvez ça, lancez le jeu. Maintenant, nous devrions voir que
dès que nous entrons en collision avec le pot, il est détruit. Et voilà, l'objet a disparu. Et ce que nous pouvons également faire, c'est, par exemple, que nous pouvons aller dans l'animation de la partie freinage et de l'animation. Dès que le pot se casse, disons qu'il se brise ici. Ce que nous pouvons faire, nous pouvons commencer à enregistrer puis éteindre le collisionneur de boîte. Vous verrez donc qu'en ce moment la boîte est bonne quand vous
verrez entièrement le pot et quand il se casse, nous y allons. n'y a plus de collisionneur. Et si nous regardons de près, nous pouvons choisir le collisionneur et peut-être le déplacer un
peu avant qu'il ne se brise réellement. On dirait donc que nous l'avons traversé. Alors, sauvegardez ça. Lancez le jeu. Oh, non. Parlez. Non. Pas comme ça. Désolé. Oh, donc il enregistre que j'ai oublié d'appuyer sur le bouton droit. Nous gérons le jeu. Nous avions le pot. Vous y allez aux pauses. On a donc l'impression que nous l'avons
traversé et que vous pouvez voir la pop disparaître. Ok, super. Ce que cela a fait, ce que nous devons faire, c'est que nous devons nous assurer que ce pot se brise, pas lorsque nous le
traversons, nous voulons qu'il se brise lorsque nous le traversons réellement. Et je pense que ce sera un défi pour vous. Et votre défi sera de
renvoyer une valeur booléenne. Ce que j'ai ressenti c'était de casser lorsque nous courons, eh bien, quand nous sommes fringants, nous voulons créer une méthode int player controller à laquelle
nous pouvons accéder à partir de la pause que nous allons écrire. Pourquoi est-ce que c'est ? Eh bien, nous devrons créer une méthode qui renvoie un bool au lieu d'un vide. Et cette méthode devrait retourner vraie si nous sommes fringants et faux, si nous ne le sommes pas et fausse sinon , ce n'est pas w, c'est raide. Par conséquent, nous devrons utiliser les joueurs, la vitesse ou la vitesse de déplacement du joueur ou tout ce que vous voulez utiliser. Alors pourquoi créons-nous cette valeur de retour ? Parce que dans les bulles de rupture, nous voulons nous assurer que le joueur est vraiment fringant. Nous ajouterons donc à la condition dans l'entrée de collision on. Nous voulons nous assurer qu'il ne s'agit pas uniquement de la couche. Nous voulons nous assurer que c'est le joueur qui vient
de frapper notre pot. Ainsi, ces informations créent la méthode qui renvoie une valeur booléenne. Mettez la vidéo en pause dès maintenant. Allez relever le défi. Va faire de ton mieux. Je sais que nous n'avons pas fait ce type de méthode qui renvoie autre chose que nulle. Mais je sais que vous êtes prêt à essayer de faire de votre mieux. Bon, bon retour. J'espère que ce n'était pas trop dur. Je vais aller dans le contrôleur de couche. Bon, alors quel est le problème ici ? Vous pourriez dire que, en fait, je veux juste accéder au mouvement actuel. Et je peux immédiatement savoir quelle est la vitesse du joueur. Mais ici, vous pouvez voir que le mouvement actuel est privé. Donc, ce que nous devrons faire pour créer une méthode ici. Et cette méthode va être une couche bool publique, c'est fringant. Et que faisons-nous ici ? Nous allons vérifier si la vitesse de déplacement actuelle est égale à la vitesse de tiret. Nous aurions pu aussi utiliser la bougie, mais ils peuvent ne pas être équivalents. Où est-il ? Où réinitialisons-nous le numérateur ? Ainsi, il peut tirer le tableau de bord n'est pas équivalent à quand la vitesse de déplacement s'arrête. Ainsi, nous pouvons tirer le tableau de bord, c'est juste pour refroidir le
fringant tandis que la vitesse de déplacement est immédiatement liée à la longueur pointillée. Donc, ici, si la vitesse actuelle est égale à la vitesse du tableau de bord, nous reviendrons vrai. Sinon, nous allons retourner faux. Et au fait, nous aurions pu faire quelque chose de similaire à cela, que je puisse les supprimer. Et comme vous pouvez le constater, c'est beaucoup plus propre. Pourquoi ? Parce que nous n'avons qu'une seule ligne de code sous les instructions if and else. Sinon, nous n'aurions pas pu utiliser cette façon. Maintenant, nous l'avons en tant que public. Nous revenons au cassable. Nous allons aller de l'avant et créer un booléen au cours de la quatrième année. Nous détruisons le pot après avoir vérifié la collision, évidemment parce que nous ne voulons pas
toujours connaître la vitesse du joueur à moins que ce soit le joueur en collision, il suffit de frapper. Je vais donc y aller et créer un livre. Et ça va être une couche, c'est fringant. Et cela va être égal
au composant d'objet de jeu de points de collision. C'est donc un peu différent de celui que nous utilisons un déclencheur. Et ici, nous allons simplement
obtenir la manette du joueur. Et nous allons vérifier si la couche est fringante, sauvegardez-le. Donc maintenant, cela devrait renvoyer vrai ou faux. Et ici, nous allons vérifier si la couche est fringante. Ensuite, nous allons commencer l'animation. Et quand l'animation commence à pauses et détruit éventuellement l'objet du jeu de bâton. Une chose que je voulais
mentionner ici, c'est que nous avons utilisé collider. Ici, nous utilisons l'objet du jeu. Nous aurions pu utiliser l'objet du jeu ici, sauf cela, et cela aurait fonctionné de la même façon, mais la collision, vous pouvez voir ici, elle renvoie une collision. Il n'a pas la certitude, disons les méthodes dont nous avons besoin. Donc, si je vais par exemple, et à l'autre endroit, donc la sortie de niveau par exemple, ici, le collisionneur 2D est différent de la collision 2D. collision fait donc partie
du retour détaillé à la physique. Si nous regardons dans la sortie de niveau, le collider 2D renvoie en fait les objets du jeu afin que nous puissions accéder immédiatement à
la balise alors qu'en ce qui concerne la collision, c'est juste un peu différent. Je vous recommande de consulter la documentation d'Unity, de voir quelle est la différence entre collision collisionnaire. Ce sont de petites choses, mais sachez simplement que nous accédons d' abord à
l'objet du jeu, puis nous utilisons le tack de comparaison. Avec cela hors du chemin, nous allons sauver tout cela. Revenons dans notre jeu. Lançons le jeu. Essayons de briser la marche patois. Bon, tu y vas. Il n'est donc pas cassé. Et si j'essayais de me lancer, oups, j'ai oublié les deux tirets inférieurs. Si je me défonce. OK. Cela ne fonctionne pas non plus. Pourquoi est-ce que c'est ? Bon, donc c'est cassé. Vous y allez. Essayons encore une fois parce qu' il y a quelque chose qui a été un peu lent. Et je crois que le problème réside dans le jeu. Attendez une seconde. Je pense donc que je veux déplacer ça, la chose qui gère le collisionneur. Je veux le déplacer jusqu'au début. Sauvez cela parce que je veux que le collisionneur disparaisse dès que nous commençons à casser l'argent. On y va donc. Vous pouvez voir maintenant que nous pouvons simplement passer à l'autre. Maintenant, si vous voulez en ajouter un peu plus, peut-être que je ne connais pas l'authenticité que nous voulons le garder juste une minuscule seconde avant d'
aller de l'avant et de le casser, c'est votre choix. Assurez-vous de choisir ce que vous voulez. Laissez-moi voir. Ok, donc si je veux bouger, si vous ne déplacez que le pot cassable, choisissez la deuxième ligne. Vous y allez et vous pouvez voir que vous pouvez le déplacer. Alors, sauvegardez ça. Maintenant, tout fonctionne. Essayons de le traverser. Cela ne marchera pas. Nous avons traversé. Il ne fonctionne pas avec le tiret, il se brise. Super. Allons nous assurer que nous mettons en scène tout. Et dans la vidéo suivante, nous voulons montrer les morceaux cassés de notre pot. Nous voulons donc avoir des morceaux qui se répandent. C'est pourquoi j'ai créé et les sprites dans les créances ici nous avons les P1, P2 et P3. Ce sont des pièces qui vont se poser autour de cela et elles ajouteront un peu plus de sensation de cassure des pots. Nous voulons donc que les pièces volent un peu, puis disparaissent lentement, ce qui rend les choses un peu plus authentiques, un peu moins rigides. Je vous verrai alors.
46. Pièces cassées: Bienvenue, mes développeurs de jeux préférés. Et dans cette vidéo, lorsque nous lançons le jeu, nous sommes toujours en train de casser la partie, mais vous remarquerez qu'après avoir disparu, nous avons trois parties. première partie sur le sol est détruite. Nous avons une partie 2 et une partie 3 et une autre partie 3. Nous sommes donc en train d'instancier et de casser des pièces lorsqu' un objet ou un objet cassable par liaison cassable est détruit. Ne perdons donc plus de temps. Et commençons. Oh, l'affaire. Il est donc temps de faire des morceaux cassés. La première chose que nous allons faire, c'est que je vais traîner cette pièce cassée ici. Et où est-il ? Double-cliquez sur k. Nous
y sommes. Et nous allons nous assurer qu'il se trouve sur la couche du joueur. Et je pense que nous devrions changer cela pour avoir les objets de niveau et non le joueur en vie. Mais pour l'instant, je vais le
garder car cela ne vaut pas la peine. Il est évident que nous devrions le changer, mais nous n'allons pas le faire pour l'instant. Je vais ajouter un 23. Nous avons donc maintenant trois pièces. Je vais tous les sélectionner et les faire tous sur le joueur. Voilà, la PS2 et les abeilles. Troisièmement, je vais sauver ça. Avant de passer à autre chose. Changeons cela en baroque et en première partie. Copiez la partie
2 cassée et la partie cassée 3. On y va. Maintenant, je vais aller dans le dossier Prefabs et je vais cliquer avec le bouton droit de et créer un nouveau dossier pour les pièces cassées. Ouvrez-le. Et je vais les ajouter un par un. Si nous les sélectionnons tous et que nous nous faisons glisser, cela ne fonctionne pas. Je vais donc traîner l'un après l'autre. Maintenant, nous avons les trois pièces cassées et si vous le souhaitez, vous pouvez faire quelque chose d'encore mieux. Nous pouvons donc ajouter, par exemple, la troisième pièce. Nous pouvons le faire pivoter autour. Maintenant que nous avons cette pièce ici, nous la tournons autour. Et cela peut être appelé, par
exemple, la pièce pour, si vous le souhaitez, je vous recommande d'utiliser votre imagination
en cas de doute avec les pièces que nous avons. Je vais sélectionner ces trois points et
m'assurer que leur position est à 0. Parce que, par exemple, si nous l'avons fait, disons que c'est six, Ok, on les ajoute à six ou on les a tous à six ans si je les ajoute donc je les instancie. Vous pouvez voir qu'il commence à la position 6 et non à 0. Cela causera des problèmes. J'aime donc toujours le garder à 0, même si lorsque nous l'instancions à une certaine position de transformation, il prendra la position que nous lui indiquons. Mais de toute façon, continuons. Je pense que vous savez ce que je voulais dire ? Je vais supprimer ces morceaux cassés. Je vais ouvrir le script cassable si je le trouve. Et ici,
nous allons d'abord obtenir une référence à la partie cassée. Je vais donc créer un champ sérialisé d'objet de jeu de type et appeler cela la partie cassée. Gardez ça. Et puis avant de détruire l'objet du jeu, je vais aller de l'avant et instancier partie
cassée à la
position transform.py et transformer la rotation. Gardez ça. Revenons dans notre jeu. Pour cela, compiler n'importe quel jour. Bon, donc je vais verrouiller ça. Je vais entrer dans les préfabriqués et sélectionner les pièces cassées. Et ajoutons simplement le premier, sauf que le jeu entre en collision avec l'objet là-bas à des pauses et que nous devrions rester avec cette pièce juste ici. Très bien. Très bien. Maintenant, il ne disparaît pas. Nous allons gérer ça dans un peu. Mais pour l'instant, nous avons les pièces qui se brisent. Mais évidemment, il est évident que nous voulons que plusieurs pièces se brisent et apparaissent les unes après les autres. Ce sera donc votre défi,
votre défi d'instancier toutes les pièces. Tout d'abord, récupérez toutes les pièces
des sprites que nous avons déjà fait. Créez un tableau d'objets de jeu pour
les parties cassées parcourent les pièces que vous utilisez la boucle for. Nous avons donc déjà appris comment fonctionne une boucle for. Vous devrez générer un nombre aléatoire à chaque fois. Et nous devrons utiliser le numéro pour instancier une pièce cassée. Maintenant, vous pensez peut-être, eh bien, cela signifie que des pièces cassées seront faites deux fois. Et c'est bon. Honnêtement, je pense que ce n'est pas très grave de s'inquiéter. Si vous le souhaitez, vous pouvez aller encore plus loin et instancier un angle aléatoire pour les pièces afin
qu' elles puissent apparaître différentes les unes des autres et non. Installé au même endroit. Bien sûr, il y aura un petit obstacle ici. Nous en parlerons une fois que vous aurez relevé le défi. Mettez la vidéo en pause dès maintenant et relancez le défi. Oh, revenez. Donc, avant de détruire l'objet du jeu, ce que nous allons faire, c'est que nous allons le faire, et je pense que ce n'est pas l'endroit idéal pour le faire. Donc, au lieu d'instancier ici, je vais aller de l'avant et faire avancer ça ici. Alors, après avoir commencé l'animation, ou vous savez quoi ? Il s'agit également d'un problème. Je vais donc rendre ça un peu plus grand. Et après avoir commencé l'animation, je vais instancier les pièces si vous le souhaitez. Si vous le souhaitez, vous pouvez également créer une méthode distincte et l'appeler à l'aide des événements. Mais pour l'instant, allons de l'avant et faisons ce que nous voulions faire. Tout d'abord, nous allons transformer l' objet
du jeu en tableau, et la partie cassée double-cliquez ici. Et ce sera les pièces cassées qui s'appliquent. Je vais commenter cela
afin de voir tout ce qui se trouve dans l'inspecteur. Donc, les pots cassables défilent vers le bas, fermez-les parce qu'ils sont ennuyeux. Et qu'avons-nous ici ? Les parties cassées. Verrouillez cela, sélectionnez tous ces éléments et faites-les glisser ici. Nous avons donc maintenant les trois pièces cassées prêtes à l'emploi. Je retournerai ici. Et que va-t-on faire ? Donc, tout d'abord, nous allons parcourir toutes les parties en boucle. Donc, car je vais initier à r égal à 0. J'espère donc que ce n'était pas trop dur. Recommençons. Nous commençons par créer la variable. Nous avons commencé avec un 0. Ensuite, ce que nous allons vérifier, ou nous continuerons à boucler. Bien que je sois inférieur aux parties cassées, point, longueur et longueur parce que nous utilisons des tableaux. Si nous utilisons des listes, nous utilisons count et chaque fois que nous augmentons i d'un. Nous devrons donc générer trois pièces, et nous voulons que ces pièces soient aléatoires. Nous avons donc une variété lors de la rupture des pots. Donc int, c'est un entier. Nous allons appeler ça la partie cassée aléatoire. Et cela va être égal à une plage de points aléatoires. Et quelle est la gamme ? La plage est comprise entre 0 et la longueur du point des pièces cassées. On y va. Maintenant, après cela, nous allons augmenter l'instanciation. Et à l'intérieur d'ici, au lieu de simplement les pièces, nous allons utiliser la pièce avec la partie cassée aléatoire. Je vais donc sauver tout ça. Bon, allons donc tester ce code. Je vais donc y retourner. Je vais voir ce que nous devons faire d'autre ? Je pense que tout va bien. Lancez le jeu. Maintenant, nous marchons jusqu'au bot, ne casse pas. Nous avons essayé de le détruire. On y va, il est détruit et on y va. Nous avons des pièces non, peut-être que je n'aurais pas dû maximiser le jeu. Encore une fois, arrêtez-vous, maximisez le jeu. Allons agrandir ça. Nous voulons voir la hiérarchie. Nous voulons savoir ce qui se passe. Ok, donc je suis tombé sur la partie qui est rompue. On y va donc. Nous avons cassé la deuxième partie, cassé la première partie et cassé la deuxième partie. Je peux donc bouger ça un
peu et les parties cassées sont les unes sur les autres. C'est pourquoi j'ai
recommandé de créer un peu de rotation. Donc, une fois cela fait, veillons à ce que nous
mettions en scène tout ici. Nous mettons en scène cela. Et je vais appeler cela, maintenant, nous instancions les parties cassées. Lorsque nous instancions des pièces cassées, un pot est le trait. Lorsque les bots sont détruits, enregistrez-le, validez les modifications. Et j'espère que vous appréciez, j'espère que vous comprenez tout. Et dans la vidéo suivante, nous allons nous assurer que les pièces cassées ne restent pas simplement en place. Ils se sont répandus comme si cela avait
été détruit et nous avons une sorte d'impact. Je vous verrai alors.
47. Pisser des œuvres cassées (Lerp): Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons créé les pièces cassées et nous nous assurons que lorsque nous frappons ces pièces cassées, elles s'écartent un peu. Maintenant, quand je l'ai frappé, tu y vas. Vous pouvez voir que ces endroits ont un
peu bougé et vous pouvez le voir, accord, donc ce n'était pas le meilleur exemple. Essayons de voir quand nous
avons deux parties identiques. Alors, tu y vas. Pouvez-vous dire laquelle est la
deuxième partie et celle qui est également la deuxième partie ? Non, vous ne pouvez pas car nous avons ajouté une rotation aléatoire. J'ai pensé que ça aurait été une très bonne idée quand je vous
en ai parlé dans la vidéo précédente, je me suis dit pourquoi ne pas être implémentée en ce moment dans ce jeu. Ne perdons donc plus de temps. Et commençons. Tout le cas. Alors maintenant, lorsque nous détruisons nos produits cassés, nous avons les pièces cassées et spécialisées. Mais tout d'abord, ils sont parfois les mêmes,
même si nous choisissons des nombres aléatoires. Et la deuxième chose, c'est qu'ils ne se séparent pas. La première chose que je veux gérer, c'est la rotation. Donc, au lieu de simplement avoir la rotation de la transformation, mais je vais le faire, je vais créer un autre entier, une rotation aléatoire. Et cela va être égal à une plage aléatoire comprise entre 04, Y4, car je vais
les faire pivoter autour de l'axe Z dans quatre directions. Donc, la façon dont je vais le faire, c'est en
multipliant ici par 90 degrés. Et nous aurons quatre options. Donc, soit nous tournons quatre-vingt-dix cent vingt deux soixante-dix, soit nous l'avons amené tout le long. Peut-être que celui-ci devrait être 0. Nous commençons à 1 h 23. Bon, donc au lieu de la rotation des points de transformation, je vais utiliser quelque chose appelé le quaternion, cette règle. On y va, c'est le souverain. Je le cherchais et je l'ai vu. Vous pouvez donc voir que cela traduit les trois axes et la rotation. Et nous allons évidemment tourner autour de l'axe Z. Donc 90 fois la rotation aléatoire. On y va. Gardez ça. Vous pouvez voir l'instanciation ici. Si vous pensez que cette ligne est un peu trop longue, ce que vous pouvez faire est d'appuyer sur Entrée sur chaque ligne. Et maintenant, il est beaucoup plus évident
ce que fait cette instanciation et quels sont ses éléments. Ok, super. Maintenant, avec cette nulle, la prochaine chose est que nous voulons ajouter comportement à nos pots cassés. Nous allons donc entrer dans les scripts ici et le clic droit cassable et créer un script C sharp qui s'appellera le pot cassé. Donc, partie cassée, appuyez sur Entrée. Ok, je ne sais pas pourquoi cela continue à se produire et je vais entrer dans les parties cassées, les
sélectionner les trois,
et continuer et ajouter
le script de et continuer et ajouter pièce cassée sur chacune de ces préfabriquées. Ouvrez le script et que voulons-nous ici ? Tout d'abord, nous voulons également une variable, après la vitesse de déplacement de ces pièces. Il s'agit donc d'un champ sérialisé qui va être flottant. Et nous allons passer à la vitesse de déplacement. Et si vous voulez ajouter un peu plus de variété, vous pouvez même faire en sorte que chacun d'entre eux ait une vitesse et un bébé différents, en fonction de la rapidité des tirets ou de ce que vous voulez faire. Ensuite, nous allons créer un vecteur privé 3. Et cela représentera la direction du mouvement. Donc, direction du mouvement. Dans quelle direction chaque pièce va-t-elle se déplacer ? Enfin, nous aurons quelque chose appelé champ sérialisé, qui va être un flotteur. Et c'est là le facteur d'arrêt. Et il va être que 50 de ces chiffres sont arbitraires et j'ai déjà testé quelques survendues. C'est pourquoi je sais pourquoi cinq actes. Mais de toute façon, quel est ce facteur d'arrêt ? Évidemment, lorsque nos pièces se briseront, elles se répartiront, mais elles s'arrêteront à un moment donné. Notre objectif est donc de faire le facteur de salage, qui affectera les morceaux
lorsqu'ils s' éloignent les uns des autres et les arrêteront finalement. Nous allons donc ralentir lentement. Et je vais vous montrer comment nous allons ralentir en utilisant quelque chose appelé lobe. Mais ne devançons pas nous-mêmes. La première chose que nous voulons faire, c'est que nous voulons avoir une direction aléatoire dans laquelle chaque pièce se déplace. Donc, tout d'abord, je vais
faire une direction de mouvement de x. Alors pourquoi est-ce que je fais ça et que je commence ? Parce que la pièce cassée est attachée à la pièce cassée, qui instancie. Et dès qu'il est instancié, le début est appelé. Et puis le début déterminera quelle est la direction. Ainsi, le point x2 de direction du mouvement sera égal à la plage de points aléatoires et à quelles valeurs vous, vous pouvez choisir n'importe quelle valeur souhaitée ici. Mais juste pour que ça soit un peu amusant. Par exemple, vous avez les pièces cassées qui volent très vite. Je pense que la direction, le caractère aléatoire de la direction
seront un peu plus loufoques, appelons-le ça. Ce que nous allons faire, c'est que nous utiliserons la vitesse de déplacement moins comme minimum et la vitesse de déplacement maximale. Maintenant que la vitesse de déplacement augmente, si vous souhaitez l'augmenter,
le caractère aléatoire augmentera également. Et le fait d'avoir un inconvénient fera sorte que certaines pièces disparaissent. Je ne sais pas où se trouve un endroit aléatoire. Alors maintenant
que le mouvement agit vers le bas, il y a le mouvement y et il va être exactement le même. Avec ça. Continuons. Nous voulons commencer à déplacer les pièces et nous allons utiliser la position du point de transformation. Et nous allons l'augmenter en direction
du mouvement, du temps, du temps, du point du delta du temps. Évidemment, nous savons que plus, plus est égal, donc il se déplace lentement et la direction du mouvement temps temps.DeltaTime pour se détacher de la fréquence d'images. Ce serait donc plus stable. De toute façon. Maintenant, nous devons nous assurer que nous arrêtons le mouvement de chaque pièce et non seulement les amener à se déplacer dans l'infini et à traverser tout. Donc, la façon dont nous allons le faire consiste à utiliser quelque chose appelé Learn. Je vais donc vous montrer ce que c'est, assurez-vous de le trouver
vous-même dans la documentation d'Unity. Que fait-il ? Il contient trois variables. Le premier est la valeur de départ de la vitesse de et avec sa valeur de départ. B est la valeur finale et t est la valeur à interpoler entre a et b. Que signifie l'interpolation ? Ainsi, une interpolation linéaire entre les deux points. Ce qui se passe, c'est que nous voulons prendre la valeur a ou n'importe quelle valeur de a à B en utilisant un facteur t Chaque fois. Ce sera donc le facteur Halting dont
nous avons parlé, que nous allons
postuler et nous assurer que vous comprenez ce qui se passe ici. Nous essayons de déplacer les pièces de plus en plus lentement. Nous allons donc commencer par une sorte de direction. Ensuite, nous allons passer à 0
pour empêcher les pièces de bouger. Je vais donc lancer ce défi pour l'utiliser pour arrêter le mouvement. Donc, tout d'abord, nous voulons diminuer l'élan des pièces brisées, des pièces en mouvement. Nous voulons définir la direction du mouvement pour apprendre. Nous allons commencer à valoriser. valeur de début
sera la direction réelle du mouvement, et la valeur finale doit être la valeur 0. Enfin, la vitesse à
laquelle nous allons arrêter le mouvement va être le facteur d'arrêt. Donc, en gros, ce défi lorsque vous postulez, arrêtez le mouvement. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Donc, ici, après notre temps, nous allons dans certaines directions. Nous avons donc la direction du mouvement comme le seul facteur qui influe sur cela. Donc ici vont définir la direction de déplacement pour qu'elle
soit égale à un vecteur trois embouteilleurs. Et ici, la valeur initiale sera la direction du mouvement. La valeur finale sera le vecteur 3 0, et
le facteur T sera le facteur Halting fois time.DeltaTime car nous
apprenons chaque image, donc nous ne voulons pas qu'elle soit très rapide. Bon, donc revenons ici,
essayons ça et voyons si ça marche. Car c'est ce que nous faisons. Je vais aller dans le préfabriqué et voir ce que nous avons cassé des pièces. On peut peut-être les ajouter ici. pot tellement cassable. On y va. C'est dans les parties cassées, peut-être quel que soit son nom. Ok, des pots cassés, lancez le jeu. Voyons ce qui se passe. Peut-être que cela ne fonctionne pas du tout alors. Oh, c'est sympa. Ainsi, comme vous pouvez le voir, chaque partie a été séparée et vous pouvez voir que nous avons la première partie qui se trouvait exactement au-dessus de la partie 1 ou de l'autre partie 1. Ils ont donc eu la même rotation. Essayons encore ça. On y va, on le détruit. Qu'avons-nous ? Partie 2. 2. Et alors pouvez-vous déterminer quelle partie étaient les deux ? Donc si je bouge ça à droite, ayant toujours la même rotation pour une raison quelconque, avons-nous fait quelque chose qui n'est pas complètement correct, donc je vais casser le pot et voyons voir. Ok, donc j'ai
l'impression que la rotation ne fonctionne pas si je reviens à la rotation aléatoire cassable. Bon, bon retour. Je craignais donc qu'il y ait quelque chose va pas dans le code, mais non, apparemment, nous sommes soit les personnes les plus chanceuses
au monde, soit les personnes malchanceuses interrogées dans le monde, selon la façon dont vous le regardez. Mais à chaque fois, les rotations étaient les mêmes. Vous pouvez donc voir ici, deuxième partie est moins 180 et l'autre partie 2 est moins 90. Encore une fois, testons ça. Et voyons voir, on y va. On le casse. Et vous pouvez voir que nous avons la partie 1 et la première partie. Mais pouvez-vous faire la différence entre ces deux parties ? Vous pouvez donc voir que celui-ci est
pivoté de 90 degrés et que celui-ci est le même. ai écrit. Il y a donc une grande différence entre eux. Pour ce faire, j'espère que vous pourrez voir et apprécier le fonctionnement des rotations aléatoires. J'espère que vous pourrez voir et apprécier comment le petit détail de l'ajout d'un peu de vélocité aux pièces cassées rend tout plus naturel et meilleur. Alors, assurons que nous restons tous nos changements et j'espère que vous apprécierez et je vous verrai dans la prochaine vidéo où nous allons réellement nous débarrasser de
cette partie qui s' est effondrée en utilisant quelque chose de semblable à apprendre. Mais nous allons l'appliquer sur les parties cassées pour
les faire disparaître lentement et pas simplement disparaître instantanément. Je vous verrai donc.
48. Détruire des morceaux: Bienvenue à mes collègues développeurs de jeux et cette vidéo, quand nous étions en tant que jeu, lorsque nous maximisons ce que nous allons, nous gérons le jeu. Lorsque nous nous promenons, lorsque nous touchons l'une des parties, vous pouvez voir qu'elle est détruite et qu'elles disparaissent
lentement, lentement, puis elles disparaissent de la hiérarchie. Ne perdons donc plus de temps. Et commençons. Oh, d'accord. Il est donc temps de
finir ça et détruire les pièces brisées sur le sol. Comment allons-nous faire cela ? Eh bien, nous allons combiner quelques choses que nous connaissons déjà et peut-être une méthode que nous ne connaissons pas. Commençons donc. La première chose que je vais faire, c'est que je vais entrer dans mes scénarios. Et ici, dans la partie cassée, je vais tout d'abord créer un minuteur ici, qui sera un champ sérialisé. Et ce sera un flotteur avec
une vie appelée « life ». Et nous allons juste le régler à environ trois secondes. D'accord ? Peut-être encore plus, peut-être cinq, nous allons le définir à cinq. Et puis, après avoir instancié, après avoir commencé à bouger et à se positionner et être sauvages ou après tout, montrer pendant que nous apprenons la direction, nous voulons aller de l'avant et aller à la vie et nous assurer que chaque image que nous supprimons l'heure, cette heure delta. Ok, super. Maintenant, que se passe-t-il quand la vie, où est-elle ? Lorsque la durée de vie est inférieure ou égale à 0, nous allons détruire l'objet du jeu. Examinons ça et voyons si ça marche. Je vais donc y retourner, laissez-moi sauver ça. Oui, nous avons géré le jeu. J'avais les pièces cassées, 1, 2, 3. OK. Il en est donc environ cinq. Je suppose. Je pense que c'était cinq de toute façon. Mais évidemment, nous ne voulons pas détruire cela. Nous voulons le déchirer lentement, donc nous voulons nous assurer qu'il ne se contente pas d'exploser. Nous voulons se détériorer lentement avec le temps. Pour ce faire,
nous allons utiliser ce que l'on appelle le mouvement vers. Mais avant de nous pencher là-dessus, je veux vous montrer quelque chose. Nous allons accéder aux couleurs, alors utilisons le pot. Ok, donc sur les pièces cassées, nous
avons le même pot cassable. En fait, je sais quoi, permettez-moi d'ajouter une de ces pièces cassées ici et de montrer dessus. Vous pouvez donc voir que nous avons le moteur de rendu de sprite, nous avons la durée de vie et tout. Si j'accède à la couleur, j'ai ces trois couleurs. Donc le R, vous pouvez voir que je peux changer la couleur si je zoome avant,
vous pouvez clairement voir à quel point
ce pixel art est moche . Non, je plaisante. C'est génial. Et puis nous avons le rouge. Enfin, nous avons le jaune, et nous avons aussi le destin, et c'est ce à quoi nous voulons accéder. Maintenant, comme je le dis toujours, il existe des moyens plus simples de le faire, mais je veux tout tester. Je veux explorer avec vous autant que possible. Je vais donc supprimer ça. Je vais retourner dans Unity, et je vais accéder au moteur de rendu de sprite. Je vais donc tout d' abord créer une référence ici. Et ça va être sérialisé, tu sais quoi ? Il n'est pas nécessaire qu'il s'agisse d'un champ sérialisé. Je vais juste avoir accès à la droite, un moteur de rendu. Et je vais appeler la partie sprite. Et ça va bien se passer. Ce sera privé. J'ai oublié de le rendre privé parce que nous n'avons pas besoin de le voir et de commencer. Je vais m'assurer que la partie Sprite est égale pour obtenir un rendu de sprite de composant. Bon, on y va. Nous avons donc maintenant une référence à la partie Sprite. Et ici, je vais accéder à la partie Sprite dot color. Ok, donc vous remarquez que sur le moteur de rendu sprite, nous avons la couleur. Nous allons donc accéder à la couleur ici. Et nous disons que c'est une nouvelle couleur. Et quelle sera cette couleur B. Je vais ouvrir le support ici et je vais appuyer sur Entrée et commencer à taper. Nous pouvons donc voir ici, où est-il ? Où est la nouvelle couleur ? D'accord, mais de toute façon, nous devons lui donner le rouge, le bleu et le vert. Et comme vous l'avez vu, le rouge, bleu et le vert ne changeront pas. Les trois premiers seront donc extrêmement faciles. Il s'agira des parties couleur vive point r, virgule dupliquée,
rouge, vert, rouge, vert, vert et bleu. Et on y va. Si nous survolons ici, nous pouvons voir que ce sont trois couleurs que nous voulons. Enfin, nous voulons changer le « a ». La façon dont nous y accédons est par le point de couleur de point a. Mais évidemment, cette fois-ci, nous voulons changer cela. Nous voulons que cela passe de ce qu'il est actuellement à 0. Et c'est le point mathématique vers lequel on s'est déplacé. Ainsi, comme vous pouvez le constater, il déplace une valeur du courant vers la cible. Et vous pouvez voir ici, passer à l'utilisation de la bibliothèque de mathématiques. Nous pouvons ajouter la valeur actuelle, la valeur cible que nous voulons atteindre et la valeur maximale. C'est donc la modification maximale qui doit être appliquée à la valeur. C'est donc comme si nous avions une alerte, facteur
de ralentissement ou un facteur d'arrêt. C'est également une sorte de facteur que vous pouvez utiliser. Ok, donc allons de l'avant et mettons en œuvre ce mouvement vers. Donc ici, je vais écrire la méthode point vers. Et je vais ouvrir ça. La cible actuelle sera donc l'alpha actuelle. La cible, ok, donc le courant, la valeur actuelle, je voulais dire, et la cible sera évidemment 0 F. Et nous allons avancer à la vitesse de fondu. Je vais donc écrire la vitesse
de foi ici, fois le temps. DeltaTime. Et je vais aller de l'avant et créer une sorte de variable de vitesse de fondu. Copiez ceci, et allons-y. Où devrions-nous ajouter ? Bon, donc on y va. Ce sera la vitesse du destin et la mettra à cinq. Mettons-le à un et voyons à quel point c'est rapide. Je ne sais pas à quelle vitesse sera rapide. Je n'en ai vraiment aucune idée. Nous allons donc sauver ça. Ce qui se passe ici, c'est quand la durée de vie, il y a une erreur, c'
est-à-dire que la durée de vie est inférieure à 0. D'accord ? Il faut donc ajouter un point et revenir. Que se passe-t-il ici lorsque la durée de vie est inférieure à 0 ? Nous avons donc fini de nous étaler, la durée de vie est terminée. Nous allons traverser cette situation à chaque fois. Que se passe-t-il ici ? Le rouge, le vert, le bleu restent les mêmes sur la partie Sprite. Mais la couleur, l'Alpha passe de l'état actuel où il est n à 0 en utilisant une sorte de vitesse de fondu. Allons donc tester ça. Je vais donc diriger le jeu. Je vais essayer d'agrandir les choses, de tout voir. Je vais détruire ça. Et maintenant, nous verrons que les morceaux cassés au bout de quelques secondes. Whoa, c'est génial ? Ils ont donc lentement disparu. Et si vous l'avez remarqué, nous avions les trois parties en partie 3 et elles ont toutes une apparence différente. Nous n'avions donc rien qui ressemble. Mais comme vous l'avez remarqué, même s'ils s'estompent, nous les avons toujours ici. Nous devons nous en débarrasser et il va être difficile pour vous de détruire les pièces. Enfin, créez donc une instruction if qui vérifie si la pièce est inférieure à 0. Et si c'est le cas, vous devrez aller de l'avant et détruire l'objet du jeu. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Donc ici, après avoir progressé, nous allons continuer à vérifier si la partie Sprite dot color dot alpha, qui est le a, est égale à 0 f. Ensuite nous allons simplement détruire l'objet du jeu. Sauvegarde ça dans notre jeu. Maximisons le jeu. Notre jeu est fantastique. Je veux dire, sauf pour les lignes bleues que vous venez de voir. Je veux dire, nous avons les ennemis qui nous tirent dessus, nous suivent. Nous avons des armes qui tirent correctement. Nous avons des effets différents pour différentes armes qui frappent des choses. Vous pouvez voir que le sel qui frappe pourrait avoir besoin d'un peu d'aide. Nous avons du sang partout. Nous avons du sang lorsque nous interagissons. Eh bien, qu'est-ce que tu as vu ça ? Alors, quand nous devrions attendre, lorsque nous tirons sur l'un des ennemis, vous pouvez voir le sang qui en sort, ce qui est vraiment sympa. Vous y allez. Vous pouvez voir le sang. Nous avons du sang aléatoire, nous avons maintenant aussi les objets structurels si vous le souhaitez. Nous pouvons également mettre en œuvre leur destruction lorsque nous les abattons. Mais de toute façon, quand on les écrase, ce sont les pièces. Et ils disparaissent lentement, ce qui est un très bel ajout. Et j'oublie toujours aussi, je le voulais, d'accord ? Ok, alors supprimez la maximisation. Vous y allez. Nous pouvons voir que nous n'avons plus de parties, mais nous avons toujours le sang, vous savez quoi, je vais vous le donner comme un défi que je ne sais pas. Je ne vais pas m'occuper de ça pour l'instant. Évidemment, à un moment donné, je le ferai, mais je suis presque sûr que vous savez quoi faire. Vous pouvez utiliser n'importe quelle méthode que nous avons apprise. Il y a beaucoup de choses, j'
espère que cette section vous a plu. Je pense que cela ajoute vraiment à toute
l'atmosphère du jeu, à
l' émouvant, à la destruction lente. Nous avons également beaucoup appris dans cette section. Assurez-vous donc de toujours valider vos modifications. Et si vous ne l'avez pas déjà fait, je sais que je vous ai ennuyé, mais laissez-moi un commentaire m'aide beaucoup. Bien sûr, si vous appréciez le cours,
sinon, jusqu'à ce que vous commenciez à profiter du cours. Quoi qu'il en soit, je vous verrai dans le prochain.
49. Section 8 : prise de vue avancée - Création de système de prise de photo: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous n'avons pas beaucoup changé, mais ce que nous avons fait, c'est que nous venons commencer à mettre en place un système d'armes approprié. Nous avons déplacé le mécanicien
de tir du doom player à l'arme réelle, qui est la console Sharp. Comme vous pouvez le constater, il n'y a rien de nouveau ici. Nous venons de faire quelques changements. Cette vidéo consiste à mettre à niveau votre projet pour que vous arriviez à un certain point. Vous avez toutes les mécaniques de base que vous voulez, mais il est maintenant temps de les rendre beaucoup plus efficaces. Donc, sans plus tarder, ne
perdons plus de temps. Et reprenons la note du projet. 0 cas. Il est donc temps de créer un système de tir plus avancé et professionnel. La première chose que nous allons faire, c'est que nous allons déplacer tout ce qui est lié au tir de la manette du joueur dans un script séparé que je vais créer en ce moment. Si je vais dans les scripts et que je vais peut-être rendre ça un peu plus grand. Nous pouvons donc les voir au moins deux rangées. Ceux-ci, d'accord, on y va. Je vais y aller juste ici. Je crée un dossier qui va s'appeler le
pistolet ou appelons ça le système d'armes. Ayez Entrée. Et je vais créer ici
un script qui
sera le système d'armes. Appuyez sur Entrée, attendez qu'il soit compilé. Et on y va. Et maintenant, un jour. Merci. C'était juste un scénario. Quoi qu'il en soit, je vais faire du point de feu un enfant du fusil de chasse, et cela ne nous permettra pas d'ouvrir le préfabriqué. On y va, en faire un enfant, sauf ça. Retournez dans notre jeu. On y va. Donc maintenant, nous avons, et parfois quand vous voulez ajouter les préfabriqués, faire enfant des choses et faire des parents. Parfois, il vous faudra passer à l'étape supplémentaire de changer l'ensemble du préfabriqué. Et la prochaine chose que nous allons
faire , c'est que nous allons ajouter ce système d'armes au fusil de chasse. Maintenant, le fusil de chasse va gérer toutes les fusillades. Tout d'abord, ouvrons le système d'armes. Et si je regarde dans le contrôleur de couche, où est-il ? Cliquons ici. Alors que la manette du joueur, d'accord. On y va donc. Comme vous pouvez le constater, nous avons tellement de scripts en ce moment. Mais de toute façon, ce que nous voulons faire, c'est que nous voulons bouger, ce qui devrait être une méthode distincte. Ce que nous voulons faire, c'est que nous voulons déplacer tout
le mécanicien de tir du joueur de la manette du joueur vers le système d'armes. Je l'ai peut-être déjà mentionné. Nous ne voulons pas que le joueur gère tout. Par exemple, nous ne voulons pas que le joueur gère la façon dont les balles volent, et nous ne voulons pas que le joueur gère le fonctionnement des armes. Cela dit, je vais vous lancer un défi. Et votre défi sera de déplacer le tir vers le script approprié. Donc, deux méthodes de tir allant du contrôleur du joueur au script du système d'armes à feu. Assurez-vous que les deux copient toutes les variables appropriées, définissez tout en unité et testez-les, assurez-vous qu'elles fonctionnent correctement. Ce défi concerne donc simplement façon dont vous mettez à niveau votre script, comment mettre à niveau votre projet et gagner. Parfois, vous commencez votre projet. Vous n'avez pas le grand plan complet pour cela, vous devez
donc effectuer des ajustements. Ce sera juste un exercice façon de transférer les choses d'un script, le suivant, pour améliorer les choses, je le ferai devant vous, alors ne vous inquiétez pas. Nous allons nous assurer que tout fonctionne correctement. Mais pour l'instant, mettez la vidéo en pause et relancez le défi. Oh, d'accord, bon retour. Alors, que va-t-on faire ici ? Nous allons aller de l'avant et sélectionner tout cela. Je vais couper donc Control X. Je
vais aller de l'avant et le mettre ici ou savoir quoi, gardons la mise à jour et commençons. Nous aurons peut-être besoin d'eux. Je vais tout coller ici
pour que vous puissiez voir que nous avons beaucoup de choses à gérer. Donc, ici, nous aurons besoin de quelques variables qui sont, laissez-moi monter. Tout d'abord, je vais
commenter celle-ci, sauf cela. Alors je vais vérifier ici, de quoi avons-nous besoin ? Nous avons besoin de l'échange et de l'automatisation de la balle au point lointain. D'accord. Voyons donc comme arme le temps automatique entre les tirs, tirs contrés, le point de feu. Il y va. C'est le cas. Les variables et je vais les coller ici. Gardez ça. Voyons ce que nous avons d'autre ? Est-ce qu'on a une erreur ici ? Non, je ne pense pas que ce soit la mécanique. Alors, ici, qu'avons-nous d'autre ? 0. Donc, si le joueur peut jouer, maintenant, il est évident que le fringant fait partie de la mécanique
du joueur, c'est celui qui va s'écraser. Nous aurons donc besoin d'un moyen pour nous d'obtenir une référence au tableau de bord. Alors le joueur est-il fringant ou non ? Que pouvons-nous faire ? Si nous faisons défiler vers le bas,
nous pouvons créer une méthode. Et si je regarde ici, le tableau de bord que vous pouvez voir comme privé. Et ce que nous pouvons faire, c'est que nous pouvons créer une méthode ici. Et ce sont des choses que nous allons utiliser de
plus en plus au fur et à mesure que nous allons utiliser ce type de méthode. C'est donc un livre public et c'est effrayant. Donc ici, tout ce que vous allez faire c'est revenir. Et j'ajouterai un point d'exclamation car rappelez-vous comment fonctionnent les tirets. Et parce que nous ne retournons qu'une seule chose,
c' est ainsi que nous allons l'écrire. Maintenant, évidemment, ce n'est pas quelque chose qui ressemble à une norme. C'est plutôt comme des pratiques. Ayez donc une sorte de variable dans un script différent auquel vous souhaitez accéder. Comment le faites-vous ? Eh bien, soit vous rendez la variable publique, vous la rendez accessible à tous. Mais le problème lorsque vous le rendez public, c'est que vous pouvez changer. Donc, si je rends cela public, je peux le changer à partir d'un scénario différent, ce qui est une très mauvaise idée. Croyez-moi, vous ne voulez jamais pouvoir modifier des variables dans différents scripts à partir de différents scripts. Donc,
vous ne voulez pas pouvoir
faire sortir le joueur du gestionnaire d'interface utilisateur par erreur, cela arrive parfois. Un meilleur moyen est donc de pouvoir
vérifier si nous sommes fringants pour obtenir le fringant, mais nous ne pouvons pas changer si le joueur est fringant. Il s'agit donc d'une couche supplémentaire de sécurité et c'est pourquoi nous utilisons toujours des champs sérialisés. Nous aurions pu tous les rendre publics et cela aurait été les mêmes fonctions. Nous aurions pu les voir dans l'inspecteur et ainsi de suite. Mais faire de ce champ un champ sérialisé signifie que nous ne pouvons pas accéder à ces variables à partir de différents scripts, et cela vous rapportera des dividendes plus tard au cours de votre parcours de développement de jeu. assurant que vous pouvez, non seulement dans le développement de jeux, quand il s'agit de programmation, vous ne voulez pas de classes différentes, variables
changeantes, d'autres classes différentes. Quoi qu'il en soit, je me devance. Que va-t-on faire ici ? Nous pouvons soit trouver l'objet joueur soit obtenir un composant dans le parent. Et nous pouvons, supprimons ça une seconde. Nous pouvons accéder à la manette du lecteur et au parent, et nous pouvons aller de l'avant et vérifier. Est-ce que le joueur est un joueur fringant ou
quoi, qu'est-ce que ce joueur est fringant ? que cette couche est fringant, c'est en mouvement. Il y a 0 fringant, donc nous pouvons également le retourner. Cette méthode n'est donc plus nécessaire. Et ce n'était vraiment pas quelque chose que j'ai remarqué. Mais de toute façon, la couche est fringante. Au moins, nous en avons eu l'occasion. Vérifions simplement si la vitesse de déplacement actuelle est égale à la vitesse. Ok, donc on revient vrai. Et on y va. Si nous sommes fringants, alors nous ne pouvons pas tirer et nous n'appellerons pas cela le tir du joueur. Changeons les balles de tir. On y va. C'est donc plus logique en ce moment. Et que devrions-nous faire d'autre ? Eh bien, évidemment, nous devons l'
appeler ici dans la mise à jour, assurer que nous pouvons tirer. Je vais donc simplement appeler la méthode des balles de tir. Et maintenant, nous devons retourner dans Unity et tout mettre en place. Je vais donc ouvrir Unity. Vous verrez que le système d'armes a changé. Et c'était tellement embarrassant. Je n'ai même pas remarqué que c'était juste là et j'ai complètement oublié que nous avions affiché ce fringant. Mais de toute façon, on apprend au moins quelque chose d'un autre type. Ou bien, nous avons ce petit monologue des raisons pour lesquelles nous ne voulons pas accéder aux variables. Maintenant, ne vous inquiétez pas. Electron, bien sûr, nous mettrons en œuvre beaucoup de ces méthodes au fur et à mesure que nous avançons et rendrons notre code un peu plus professionnel. Alors, avec ça, qui les choses ont été faites ? Allons, tout d'
abord à 70 points éloignés du fusil de chasse. Nous allons nous assurer que cette arme n'est pas romantique et nous
ferons le temps entre les tirs environ 1 seconde, 1, pas 21. Nous avons besoin d'une balle, donc nous allons aller dans les Prefabs, les balles
cassées et les balles de la couche. Gardez ça. Allons dans le doom player et appliquons toutes les modifications. Et maintenant, je vais voir Qu'est-ce que nous avons d'autre ? Lançons le jeu et voyons ce qui se passe. Donc le joueur, le joueur se déplace, mais donc le joueur se déplace et si nous le devrions, on
y va, on peut tirer. Et si je maintiens le bouton de la souris enfoncé, pour une raison quelconque, il ne tire pas. 123. Oh, ce n'est pas automatique. D'accord. Mais le problème va tellement bien. Maintenant, même si je maintiens le bouton de la souris enfoncé, ce n'est pas automatique, mais le fusil tire toujours beaucoup. Et c'est quelque chose que nous voulons résoudre car nous parlons maintenant d'un mécanicien de tir avancé. Ce n'est pas le mécanicien habituel de tir. Nous devons nous assurer que notre prise de vue soit cohérente. Donc le fusil de chasse, si nous maintenons enfoncé, il tire sur un bouton, mais si nous continuons à pousser, le fusil ne
devrait pas tirer autant lors du tir. Donc, avec ça hors du chemin, avec toute cette section, Change, scripting tout. J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo. Assurez-vous de toujours valider vos modifications. Et je vais faire en sorte que ce commit déplace le mécanicien de tir deuxième
couche, l'arme réelle. Nous y allons, nous commettons les changements, et je vous verrai dans la prochaine vidéo.
50. Compteur de taux de feu: Bienvenue à mes collègues développeurs
de jeux une autre vidéo de maintenance. Je sais que ce n'est pas la partie la plus amusante de la vidéo, mais c'est très important et il y a leçons
cruciales que nous devons apprendre et celle-ci. Maintenant, lorsque nous lançons le jeu, vous verrez que nous n'avons plus la possibilité créer une arme automatique. Mais maintenant, si nous maintenons le bouton enfoncé, vous pouvez voir que nous devrions 11111. Et si nous essayons d'appuyer autant que possible, d'écouter la souris, vous pouvez voir que nous n'avons plus la possibilité de tirer ou contourner cette mécanique de prendre le temps entre les prises de vue. Donc, ne perdons plus de temps et passons à maintenir 0 cas. Il s'agit donc d'une autre vidéo où nous voulons réparer nos affaires. La première chose que nous voulons régler c'est de regarder le fusil de chasse. Disons donc que ce n'est pas automatique. Donc, un tournage. Et voilà. Nous n'avons qu'un seul coup. Si je veux continuer à le maintenir, ça ne marche pas. Mais le problème, c'est que si j'appuie beaucoup de fois, vous pouvez voir que nous avons beaucoup de magasins. Ce n'est pas un problème énorme, mais par exemple, un fusil ne devrait pas tirer aussi vite. Si nous le rendons automatique et que nous continuons de le maintenir enfoncé, vous pouvez voir que nous continuons à filmer tout le monde en seconde. Et si nous essayons de presser beaucoup de fois, ce n'est pas un problème. Mais nous devons encore corriger le fait que si nous n'avons pas l'arme automatique, nous devrions autant que nous le voulons. Une autre chose que nous voulons corriger est la redondance du code. Ce n'est donc pas un moyen parfait de représenter le code. Il y a bien meilleur moyen. Nous pouvons tout d'abord nous
soulager de l'un des problèmes d' avoir à choisir entre automatique et non aromatique afin de pouvoir, tout d'
abord, nous débarrasser d'une variable. Et la deuxième chose que nous pouvons éviter, la redondance et le froid. Vous pouvez donc voir ici que nous
avons le score qui instancie une balle et celui-ci qui instancie également ou Ebola. n'est donc pas si bon que ça. Nous voulons rendre quelque chose de beaucoup plus efficace, beaucoup plus beau. Je vais donc les commenter. Et ici, je vais vérifier quelque chose de différent. Je vais commencer par vérifier si le compteur de tir est supérieur à 0. Donc, si le compteur de tir est supérieur à 0
, ce que nous ferons, c'est que nous allons garder le comptoir d'atelier retiré chaque petit peu. Nous allons donc compter le comptoir du magasin. Et parce que rappelez-vous cela dans les balles de tir, cela signifie que cela va bien fonctionner. Ensuite, ici, nous allons vérifier les entrées. Et si ces entrées sont vraies
, nous allons instancier la puce. Ce que je vais faire, c'est que je vais vous le
lancer comme un défi. Votre défi est donc de vous assurer que nous vérifions les deux entrées, nous maintenions enfoncés ou que nous ne pressions qu'une seule fois. Ensuite, nous allons instancier la balle et nous assurer réinitialiser également le compteur de tir. Mettez la vidéo en pause dès maintenant et relancez le défi. Oh, d'accord, bon retour. Donc, ici, la première chose que je
vais faire est de créer l'énoncé if. Et je vais copier cette ligne ici. Donc, si le point d'entrée descend le bouton de la souris, ou où est-il ,
OK, ou, ou comme représenté par ces deux-là. Ou si le point d'entrée obtient le bouton de la souris. Nous détenons donc un nom, puis nous allons aller de l'avant et instancier la balle sur le point de feu. Et nous allons également récupérer le compteur de tir et le remettre à l'heure entre les prises de vue. Vous y allez. Que se passe-t-il ici ? Nous appelons toujours le tir, mais nous vérifions si le joueur est fringant. Si ce n'est pas le cas, nous allons continuer. Si le compteur de tir est supérieur à 0
, nous allons compter à rebours tout le
temps et quand il sera inférieur à 0. Nous allons donc continuer à compter à
rebours tant que son compteur de fermeture est supérieur à 0. Quand ce n'est plus le
cas, nous aurons la possibilité de tirer. Et ce qui est génial, c'est savoir si l'arme est automatique ou non. Si nous continuons à rester enfoncé, nous ne pourrons pas tirer tout le temps. Mais si ce n'est pas automatique et
que nous n'utilisons le doigt que pour appuyer dessus une, deux ou trois fois, nous allons instancier et nous aurons le compteur réinitialisé chaque fois que nous le devrions, une fois qu'il s'arrêtera et attendra que le court compté revienne à moins de 0, alors nous pourrons tirer et autant que nous le voulons. La seule chose ici, c'est que nous ne vérifions
plus si l'arme est automatique ou non. Nous pouvons donc aller de l'avant et supprimer cela. Nous avons créé une sorte de raccourci. Maintenant, si vous n'aimez pas ça, si vous cherchez, c'est ce
que je commente tout ce code. Si vous voulez avoir une arme automatique et que cela ne vous dérange pas, permettez-le ? Nous pouvons photographier autant que nous voulons, car à la fin de la journée, s'il est automatique, il ne sera pas très rapide. Alors, soyez mon invité. Garde au froid. Ce n'est pas mal. Mais pour moi, honnêtement, je n'en veux pas. Je préférerais que ce soit un code très simple et que nous gardions quelques variables. Donc, et moi aussi quelques codes redondants, ce qui est très important. Nous avons donc tout sauvé. Nous retournons dans Unity. Nous allons lancer le jeu et maintenant le temps entre les tirs est réduit. Donc maintenant, même si nous cuisinons beaucoup de fois, vous pouvez voir qu'il
attend toujours jusqu'à ce que le compteur court soit réinitialisé. Si nous le maintenons, vous y allez. Vous pouvez voir qu'à chaque seconde, nous lançons un coup de feu. Si nous faisons cela, par exemple, disons 0,1, alors nous
pouvons aller de l'avant et filmer plusieurs fois. Et si nous appuyons aussi vite que promis, nous ne serons jamais plus rapides que ce que le compteur de tir nous permettra d'être. Donc, avec cela, j'espère que vous avez apprécié. Et dans la prochaine vidéo, nous ajouterons différentes armes au joueur. Et vous verrez comment le fait d'avoir quelque chose différent qu'un fusil de chasse
rendra le code beaucoup plus visible ou les changements que nous avons apportés beaucoup plus importants si vous ne pensez
toujours pas que ce soit aussi bon. Je vous verrai alors.
51. Ayant des armes différentes: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous avons créé un ensemble d'armes supplémentaires. Nous avons créé un fusil, et nous avons créé un pistolet. Donc maintenant, lorsque nous lançons le jeu, nous ne sommes pas seulement limités au fusil de chasse, mais nous pouvons également trouver un pistolet. De toute évidence, les balles sont également différentes. La vitesse de tir est différente. Le, même
les dégâts infligés par les balles et la vitesse de chaque balle sont différents. Comme vous pouvez le voir ici, je peux allumer le fusil, éteindre le pistolet, courir. Oups. C'était donc une énorme erreur. Désolé pour ça. Et éteignez le pistolet, allumez le fusil et je peux commencer à tirer. Et comme vous pouvez le constater, les balles
du fusil ou un peu plus vite, elles sont un peu plus vertes et ne perdons plus de temps. Et commençons. Oh, l'affaire. Donc Nile, il est temps d'ajouter quelques autres armes. Comment allons-nous faire cela ? Nous avons donc déjà le préfabriqué pour le fusil de chasse. Je vais donc entrer dans le préfrontal pour que nous n'
ayons pas de préfabriqué pour le fusil de chasse, nous n'avons que pour le joueur condamné qui a une boutique. Je vais donc créer un nouveau dossier ici, qui s'appellera les armes. Et je vais faire glisser le fusil de chasse ici. Bon, il faut donc ouvrir le préfabriqué. On y va. Maintenant, nous pouvons double-cliquer sur le glissement et le fusil de chasse. Nous avons donc maintenant un fusil de chasse comme préfabriqué séparément du deutérium. Et vous pouvez voir comment la place est devenue un peu plus bleue. Maintenant, je peux ajouter le fusil de chasse et ici et nous avons l'arme que nous allons
ajuster et créer quelque chose de différent. Tout d'abord, nous devrons changer cette fierté. Allons donc dans le While les sprites que nous ajoutons, toutes les armes ou le sang, les
balles, les ennemis, les canons à carreaux de joueur. D'accord, nous n'avons qu'un seul pistolet. Passons à l'affaire Resources 0. Voyons donc ce que nous avons ici. Comme vous pouvez le constater, je vous ai fourni beaucoup de choses. L'un d'eux est l'animation pour différents types de pistolets. Et vous pouvez voir que nous avons aussi le feu du museau, la fumée du museau. J'ai recommandé d'essayer d'ajouter tous ces éléments. Nous pourrions également le faire dans un petit peu, mais pour l'instant, nous voulons simplement avoir le concept de base. Nous ne cherchons pas très bien à quel point
le tir est joli , même si c'est important quand il s'agit d'un jeu. Mais de toute façon, nous avons ce fusil ici, nous avons ce tireur d'élite, et nous avons aussi le petit pistolet. Je vais donc sélectionner les trois et je vais les faire glisser dans le sprite des canons et les ajouter. Ok, super. Maintenant que nous avons le fusil de chasse,
renommons le fusil. Un fusil. Et si je l'ouvre, vous pouvez voir le point de feu ici. Mais avant de faire cela, nous voulons changer cette fierté. Et pour le fusil, on peut voir qu'il est très petit, donc on les a fabriqués 42. Sélectionnez-les et faites-les 40 pour appliquer les modifications. On y va, on a notre fusil. Maintenant, à cause de la coloration de l'arrière-plan, vous pouvez voir
que le fusil n'est pas si répandu. Ce n'est pas si beau, mais ne nous inquiétons pas
tant qu' il y aura là et une fois qu'il sera sur le PLR, je suis sûr que ça aura l'air un peu mieux. De toute façon, continuons, qu'est-ce que nous avons défini d'autre entre les tirs, évidemment, pour un fusil et ce n'est pas un fusil, c'est un fusil d'assaut, donc c'est automatique. Ça va être beaucoup moins important. Je vais donc faire ça autour de 0,3. Et voyons que le point de tir doit évidemment changer
pour que vous puissiez voir où se trouve le muscle en ce moment. Je vais le déplacer ici. Et qu'avons-nous d'autre ? Si je clique sur le fusil ? On y va, on voit que tout va bien. Que devons-nous changer d'autre ? Oh, nous voulons aussi changer la balle qu'il tire pour ne pas
avoir la même balle que le fusil de chasse. Et je vais retourner dans les Prefabs, aller aux balles. Trouvons le, OK, donc la balle du joueur, je vais changer ça de balle de joueur à balle de tir. Et je vais aller de l'avant et ajouter à notre monde. Et je vais dupliquer la balle du pistolet. Je vais appeler ça la balle du fusil. Et cette balle de fusil aura presque tout, a la même chose peut être la vitesse devrait être capable d'améliorer un peu plus. Disons que la vitesse est peut-être de six, je ne sais pas. Le montant des dégâts devrait peut-être être inférieur. Par exemple, supposons que le montant des dégâts est de cinq. Et que devons-nous
changer d'autre ici, peut-être le sprite. Examinons donc le prix des balles que nous avons. Nous utilisons actuellement le 14. Et peut-être que pour un fusil, on peut utiliser l'un des plus courts. Voyons voir, utilisons le petit vert. Donc, la petite verte, c'est celle que nous allons utiliser, alors que la
balle du fusil, ajoutons la petite verte. D'accord. Cela n'a donc pas fonctionné. Pourquoi ? Pour cette raison , nous n'avons pas vu la balle du fusil de chasse. Quoi qu'il en soit, retirons la balle républicaine. Et ce sera notre balle de fusil. On y va. C'est assez petit, je pense qu'il y avait quelque chose aussi de l'échelle 0,5 ? Et faisons-en un. Gardez-le tel quel. Ok, super. Maintenant, nous avons cette balle de fusil. Je vais aller dans le fusil et je vais lui
attribuer une balle de fusil, mais la balle de fusil. Mais avant de faire cela, nous devons tout préfabriquer. Je vais donc retourner dans les Prefabs, aller aux balles et ajouter la balle. Et il me demandera si vous
souhaitez créer un nouveau ou un original ou une variante du préfabriqué ? Si je clique deux pour la variante préfabriquée, celle-ci changera, mais je vais créer un préfabriqué original. Je vais aussi aller dans les Prefabs, les fusils, les armes, où sont-ils ? Et je vais aussi faire glisser le fusil. Nous avons donc maintenant un fusil de chasse et un fusil original. Et dans ce fusil, au lieu d'utiliser la balle du fusil de chasse, je vais aller dans cette fente,
aller dans les balles de la balle de la carabine, sauver tout ça. Enfin, nous allons supprimer le fusil. Supprimez la balle du fusil. Tous vont à l'endroit où est-il ? Préfabriqués. D'accord, donc les armes, c'est la dernière. Et je vais ajouter le fusil en tant qu' enfant des armes. Et évidemment, la position des fusils doit être réglée sur 0. Essayons encore une fois. Encore une fois, nous ajoutons le fusil tel que les armes sont, et nous allons éteindre le fusil de chasse. Super. Maintenant, nous avons le fusil et les bras, et comme vous pouvez le constater, ils ne sont pas parfaitement positionnés. Ce que nous pouvons faire, c'est que nous pouvons le déplacer du préfabriqué. Vous vous demandez peut-être pourquoi n'est-il pas positionné pour écrire ? Eh bien, si nous revenons sur les ressources ici, vous pouvez voir, si vous regardez de près,
le spray du fusil de chasse peut voir où il se termine. Le fusil a un peu d'espace à l'avant et à l'arrière. Il ne s'agit donc que d'une technicité et si vous ajoutez celui-ci par exemple, il sera encore plus loin. Donc, ce que je vais faire, c'est que je vais simplement déplacer ça un peu dans la direction X. Nous allons donc faire le tour du point zéro 40 pour copier cela et l'ajouter au préfabriqué du fusil. Alors maintenant, quand j'éteins le fusil, essayons encore ça, ajouté aux armes en déplacement, s'adapte parfaitement. Supprimez donc ça. Allumez le fusil. Nous avons le point de tir, nous avons les balles de fusil, nous avons tout réglé correctement. Essayons cela,
sauvegardons ça, lançons le jeu. Faisons en sorte que cela soit un peu plus grand. Bon, donc on y va. Oui, on y va. Vous pouvez voir maintenant que nous avons le fusil de chasse, pas le fusil de chasse, excusez-moi, en fait, maximisons le jeu pour le voir correctement. On y va. Alors maintenant, quand les balles devraient-elles être, elles sont beaucoup plus rapides et le temps entre les tirs est bien meilleur. On y va. Est-ce que c'est cool ? qu'ils ont l'air vraiment gentils ? Peut-être devrions-nous réduire leurs dégâts, mais nous ne nous sommes pas assurés que les dégâts fonctionnaient correctement. Et vous pouvez voir qu'il se retourne et fait tout ce que le fusil de chasse faisait et c'était assez facile à créer. Donc, avec cela, je vais vous lancer un défi et c'est d'ajouter vos propres armes. Créez donc une ou deux autres armes de votre choix. Je vais ajouter un pistolet. Tout sera pareil, comme je l'ai montré. Je vais créer une balle différente pour cela, etc. Donc peut-être avez-vous téléchargé des armes, sprites d'armes futuristes. Et je voulais vraiment le faire, mais je n'ai pas trouvé un joli ensemble d'ouvertures futuristes, tous les sprites où soit il fallait les
payer, soit ils n'étaient pas si bons. Et je voulais m'assurer que tout cela se termine. Tous mes cours sur les ressources que nous utilisons sont 100% gratuits. Enfin, au moins une arme de plus, ou ajoutez au moins une arme de plus avec ses propres attributs. Alors mettez la vidéo en pause maintenant, allez faire le défi dans la vidéo suivante, peut-être maintenant, je vais juste utiliser la magie du montage, créer l'arme que vous avez vu le processus, vous n'avez pas à la revoir, mais je vous recommande d'ajouter vos propres armes. Faire confiance à ce qu'il est beaucoup plus amusant d'avoir des armes que vous avez créées et pas seulement des choses que vous copiez de moi. Cela dit, je vous verrai juste un peu. Bon, bon retour. J'ai donc ajouté un pistolet et je viens d'avoir quelques choses loufoques que je voulais créer. Vous pouvez voir, donc j'ai fait un décrochage avec un temps entre deux tirs. J'ai fait une balle de pistolet. Ce n'est pas une balle de cristal parfaite. C'est assez gros, honnêtement, quand il s'agit de la façon dont le pistolet fonctionne ou de la taille du pistolet. Mais ne nous inquiétons pas à ce sujet. Ce jeu est une question de créativité et de plaisir. Donc, quoi que vous vouliez faire, il
suffit de le faire. Alors, tu y vas. Vous pouvez voir la petite pustule. Il se déplace et quand nous devrions réserver, nous y allons. Et vous pouvez voir que la balle est assez grosse, mais je pense vraiment que c'est vraiment sympa. Il fera donc au moins la différence entre
les balles régulières du fusil de chasse et les balles du fusil. Vous saurez donc qu'il s'agit d'un pistolet et que c'est la balle du piston. Cela étant fait, j'espère que cela vous plaira. J'espère que vous avez créé vos propres armes. Et si vous ne m'avez pas déjà laissé de commentaire, cela m'aide beaucoup. Assurez-vous de valider vos modifications. On y va. Vous avez créé un fusil au sel et un pistolet en tant qu'armes supplémentaires. Alors, s'il vous plaît, assurez-vous de me laisser un avis. Cela m'aide beaucoup et je vous verrai dans la prochaine vidéo où nous allons passer d'une arme à l'autre. Comme vous pouvez le constater, nous devons allumer et éteindre certaines armes et nous pouvons même nous tourner vers des armes, ce qui est un mécanicien cool, mais pas une arme que nous cherchons à faire, surtout lorsque ce n'est pas sous notre contrôle. Je vous verrai donc dans la prochaine vidéo.
52. Passer à l'arme: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, lorsque je lance le jeu, vous verrez maintenant que je peux utiliser un fusil, je n'ai pas besoin d'aller dans la hiérarchie et de changer d'arme. Je peux appuyer sur la languette et vous pouvez voir que j'ai le pistolet en ce moment. J'appuie à nouveau sur la touche Tab. Je prends le fusil de chasse. J'appuie à nouveau sur la touche Tab. J'ai le fusil. J'appuie à nouveau sur la Tab, j'ai le pistolet et ainsi de suite. Je peux le faire toute la journée. Tirez-les avec un fusil de chasse, si le fusil mère devait alors avec un pistolet, je peux faire ce que je veux et personne ne peut m'arrêter. Donc, ne perdons plus de temps et passons à changer d'arme. Oh, l'affaire. Il est donc temps de changer nos armes. La première chose que nous allons
faire , c'est que nous allons obtenir une référence à tous les canons disponibles sur le joueur. Il s'agit maintenant d'un point de débat. Où voulons-nous gérer tout cela ? Où voulons-nous avoir la liste des informations sur toutes les armes à feu, etc. Et c'est ce que j'ai ressenti. Nous pouvons ajouter un script aux armes et nous assurer que tout se passe bien ici. Mais en fait, je pense que peut-être le joueur devrait être celui qui manipule les armes disponibles qu'il a. Je vais donc monter et
jouer et je vais supprimer tout ce que vous savez quoi, gardons cela comme un rappel de la façon dont parfois nous ne sommes pas très attentifs et que nous faisons des erreurs. Donc, des renforts ici. Je vais commencer par créer
la référence à toutes les armes que nous possédons. Il s'agira donc d'un champ sérialisé, qui va être une liste de types,
les armes, le système d'armes. Et comme ça. Et je fais défiler un peu vers le bas et je vais appeler ça les
armes disponibles ou les armes disponibles. Appelons simplement ça des armes disponibles. Et cela équivaut à une nouvelle liste de systèmes d'armes. Gardez ça. La prochaine chose que nous voulons avoir est une variable qui est un entier qui
gardera une trace du canon actuel que nous possédons. Je vais donc créer un int privé et ce sera le pistolet actuel. Gardez ça. Alors, que faisons-nous ici ? Ce que nous voulons faire, c'est que nous voudrions obtenir une référence aux trois canons qui étaient en possession ou autre, nombre d'armes
dont nous disposons. Je vais verrouiller ça, sélectionnez. Et avant que je fasse cela, assurez-vous de remplacer le joueur de dune appliquer tout. Nous savons donc que nous avons les armes sur lui. Je vais les verrouiller et je vais sélectionner le fusil, ce pistolet et le fusil de chasse, et je vais les ajouter aux canons disponibles. Comme vous pouvez le constater maintenant, nous avons une référence au fusil de chasse et au pistolet. Ce que je vais faire, c'est que je vais
créer une sorte de boucle qui s'active. Et cette boucle passera par toutes les armes et ne
tournera que celle que je veux. Donc, la poste actuelle et chaque fois, je vais augmenter la pustule actuelle une par une. Je sais donc que cette explication est un peu déroutante. Allons de l'avant et mettez-le en œuvre et cela aura beaucoup plus de sens. Donc ici, je vais tout d'abord créer la méthode qui va être ou savoir quoi avant de faire cela, laissez-moi simplement retirer le tir du joueur et qu'est-ce que tout cela fait ? Cela, réduisez l'espace, ok, donc joueur fringant, donc cliquez avec le bouton droit, action
rapide et méthode d'extraction de refactoring. On y va. Tellement fringant, joueur ou joueur fringant. Je pense que c'est plus logique. Contrôle RR. On y va. Comme vous pouvez le voir, je connais tous les raccourcis pour résoudre les erreurs parce que j'en ai fait tellement. Quoi qu'il en soit, nous allons aller de l'avant et changer d'arme. Je vais immédiatement créer une méthode ici pour ne pas aller extraire. Ce sera donc un pistolet public à interrupteur vide. Et ici, tout d'abord, nous voudrons vérifier le type de clé que nous voulons appuyer pour changer de pistolet. Donc, ce sera une entrée qui obtient C0, get keydown était un code clé. Et vous pouvez utiliser ce que vous voulez. Et nous allons utiliser l'onglet. Non, pas l'évasion. On y va. Lorsque nous appuyons sur la touche Tabulation, nous voulons changer d'arme et appelons cela ici. Changez de pistolet, changez de pistolet avec aiguiseur. Je suis un peu confus. Vous pouvez l'appeler comme vous voulez. arme à feu est donc la même. Nous voulons avoir autre chose que des armes à feu comme armes. Quoi qu'il en soit, continuons. La prochaine chose que nous voulons avoir. Nous voulons nous assurer que nous
avons réellement des armes à feu en notre possession. Nous allons donc vérifier si le nombre de points disponible au Ghana est supérieur à 0. Et vous pensez peut-être, eh bien. Bien sûr, nous allons avoir une arme. Michael, de quoi parles-tu ? Eh bien, plus tard, lorsque nous commencerons à acheter des armes, lorsque nous commencerons à ramasser des armes, vous remarquerez qu'à un moment
donné, le joueur n'aura peut-être pas d'armes à feu. Ce qui nous évitera donc une énorme erreur. Et je vais juste ajouter un avertissement ici. Avertissement de point de débogage, et aucun pistolet disponible. Prenez-en un. C'est donc différent du journal habituel. Il s'agit d'un avertissement de journal et nous avons également une erreur de journal, qui sera dans une couleur différente. Et la console, comme vous pouvez le constater, sont des erreurs et pour une raison quelconque, nous avons l'aperçu clair de l'argent. Cela dure depuis
longtemps et je l'ai cherché. J'ai essayé beaucoup de choses, de mises à jour ou tout. Rien ne fonctionne. Apparemment, c'est une sorte de problème dans Unity, mais cela n'affecte pas notre jeu, alors ne vous inquiétez pas. Je vais l'effacer avec ce bouton. Et vous pouvez voir que ce sont des erreurs. Nous avons enregistré des journaux réguliers et des journaux d'avertissement. Mais restons concentrés. Que se passe-t-il lorsque nous savons que nous avons une arme ? Nous allons d'abord obtenir la gomme actuelle et l'augmenter d'un. Cela fait donc un plus, plus. Une fois cela fait, nous allons vérifier si quelque chose est très important. Et c'est après avoir passé toutes les armes à feu. Donc, si nous augmentons et le canon actuel qui a maintenant été augmenté de 1, est plus grand que le nombre de points des canons disponibles. Nous voulons revenir au premier pistolet. Et comment pouvons-nous faire cela ? Nous avons réinitialisé le courant à 0. Que se passe-t-il ici ? Disons que nous avons les trois armes. Cela signifie que le nombre de canons disponibles est de trois. Cela signifie que nous commençons à 012 heures. Les deux sont le dernier index
du dernier élément est l'index du dernier élément. Alors, que se passe-t-il ici, une fois que nous avons appuyé sur l'onglet, nous vérifions que canons
disponibles sont augmentés d'un électron. Nous allons allumer ce pistolet. Mais pour l'instant, nous nous
assurons que si nous avons le pistolet actuel, disons que vous êtes à l'indice deux et que le nombre de disparus disponible est de trois. Donc, nous devenons, le canon actuel devient trois, ce qui signifie que nous voulons le remettre à 0. Nous saisissons alors la première arme et nous marchons et évitons une énorme erreur. Qu'est-ce que cela a fait, que devons-nous faire d'autre ? Eh bien, il y
a quelque chose dont nous devons nous assurer, c'est-à-dire si je retourne ici. Alors rappelez-vous comment nous utilisions les différentes gencives. Nous ne nous contentons pas d'allumer le fusil. Donc, si je clique sur le fusil, on ne se contente pas d'allumer le fusil et de commencer à tirer. Nous tournons d'abord le pistolet
, puis nous avons le fusil allumé et nous pouvons tirer avec lui. Ce sera donc votre défi. Votre défi sera de mettre en place toutes les armes à mettre en œuvre. Créez donc une boucle pour chaque boucle pour parcourir tous les canons disponibles, définissez-les tous pour qu'ils soient inactifs. Donc tous sont inactifs. Et puis réglez uniquement le pistolet actuel pour qu'il soit actif. Et je vais vous donner un petit indice si vous savez
déjà quoi
faire ou si vous sentez vouloir le faire vous-même. Mettez la vidéo en pause, relancez le défi. Sinon, c'est ce dont vous aurez besoin. Vous devrez accéder aux armes disponibles
sur le pistolet actuel. Et vous devrez accéder à l'objet du jeu car les canons disponibles sont d'un système d'orgue à pipe, donc nous pouvons simplement le définir actif. Nous devons accéder à l'objet de jeu qui contient le pistolet actuel, puis définir l'actif sur vrai ou faux. Alors mettez la vidéo en pause maintenant et
réglez toutes les armes sur un actif. Bon, bon retour. Comment êtes-vous arrivé à ça ? Sont vraiment, vraiment, c'était un défi intéressant, en utilisant un pour chaque
éteindre les choses et vraiment comprendre la mécanique. Tout d'abord, nous allons créer une boucle pour chaque. Et ici, ce sera le système d'armes. Nous appellerons cela l'arme dans les canons disponibles. Ça semble bizarre, n'est-ce pas ? Vous savez quoi ? Renommons cela des armes
disponibles en armes disponibles. On y va. Et nous devrons nous assurer de les remettre dans Unity. Parce que lorsque nous changeons le nom d'une variable, vous verrez que maintenant la liste est, non, elle est toujours bonne. Pourquoi ? Parce que nous n'avons pas économisé. Lorsque nous économisons, nous devrions maintenant voir que tout disparaît. Nous devons le remettre en place. On y va. Vous pouvez voir qu'il est à 0. C'est quelque chose à garder à l'esprit. Alors faites-le avant d'oublier d'éviter toute erreur, sauf cela, d'accord, maintenant, dans Unity,
que voulons-nous faire ici pendant que nous
parcourons que voulons-nous faire ici pendant que nous toutes les armes. Ce que je vais faire, c'est que je vais aller de l'avant et utiliser l'arme. Dot. Jeu de points Gameobject actif sur false. Que se passe-t-il ici ? Nous avons toutes les armes disponibles. Nous les avons tous mis à faux. Et ensuite, ce que nous faisons comme revérifier les armes disponibles sur le canon actuel, le jeu de points GameObject actif. Vrai. Alors pourquoi éteignons-nous tous les pistolets et pas seulement le pistolet que nous utilisons ? Je pensais aussi à cela. Mais plus tard, lorsque nous commencerons à changer d'amine, lorsque nous commencerons à ramasser des armes, voudrons changer de pistolet. Et c'est le cas, c'est beaucoup plus sûr de tout éteindre et de simplement
tourner ce dont nous avons vraiment besoin. Peut-être que la commande
des armes sera parfois différente. Et juste en retournant celui que nous avons en ce moment, peut-être que nous allons nous tourner vers quelque chose de différent que nous ne voulons pas. J'ai donc pris la précaution supplémentaire de simplement parcourir toutes les armes, de les
mettre toutes fausses. Et puis juste, je pense que la seule chose que nous devons être vraie, j'espère que c'est compréhensible. Et si vous voulez créer une sorte de mécanicien plus complexe, je serais vraiment heureux de le voir. Vous pouvez aller discorde et montrer vos affaires là-bas. Je vais donc retourner dans mon jeu ici, sauf ça. Et je vais aller de l'avant et voyons, lancer le jeu et voir ce qui se passe. J'ai donc le fusil. Vous pouvez voir qu'il est
activé ici même dans la hiérarchie. Si je frappe l'onglet, si je frappe l'onglet, on y va. J'ai le pistolet. Si je frappe encore la Tab, j'ai le fusil de chasse. Est-ce que c'est cool ? Vous pouvez tout voir dans la hiérarchie. Essayons encore une fois. Fusil, fusil, pistolet, pistolet, fusil de chasse,
fusil de chasse, etc. J'espère que ça vous plaira, veillez à commettre vos changements. Et je viens de mentionner cette cour, j'espère que vous saviez déjà que nous avons eu une discorde. Montrez vos choses que nous voyons. Ok, donc je n'ai pas ouvert ce cours juste pour rester concentré. J'y réponds toujours aussi vite que possible. Parfois, je ne réponds pas aussi vite que je le devrais. C'est parce que, bien sûr, MyTime, nous avons tous 24 heures et que tout le monde est sur une échelle de temps différente ou autre, aurait été différent dans le monde. Nous avons une communauté incroyable. Beaucoup de gens sont là à cause de la façon dont nous avons géré l'état d'esprit que nous avons, que nous sommes tous des étudiants. J'apprends toujours de nouvelles choses quand j' aide quelqu'un et c'est
ce que tu devrais toujours faire. N'ayez pas peur de commettre des erreurs. Essayez d'aider autant que possible. J'ai rejoint la discorde. Laissez-moi un avis. J'espère que vous appréciez et je vous verrai dans la prochaine vidéo où nous ne
verrons pas seulement
les armes ici même verrons pas seulement dans les joueurs, et nous pourrons également les voir dans l'interface utilisateur. canevas que nous avons créé. Cela dit, je vous verrai dans la prochaine vidéo.
53. Affichage d'armes Canvas UI: Bienvenue, Mes développeurs de jeux préférés et cette vidéo, lorsque nous lançons le jeu, vous verrez que nous avons le fusil. Lorsque nous changeons d'arme, nous avons un pistolet. Lorsque nous changeons d'arme, nous avons un fusil de chasse. Nous avons donc maintenant une représentation visuelle dont nous avons disparu, que nous portons avec nous. Donc, sans faire plus, ne
perdons plus de temps et commençons. Oh, l'affaire. Donc maintenant, au lieu de simplement changer le pistolet, les piliers se tenant, nous voulons également afficher sur l'écran de l'interface utilisateur que nous avons créé. Allons-y et faisons-le. Tout d'abord, je vais agrandir la scène un peu pour que nous puissions voir correctement, je vais double-cliquer quelque part ici sur le canevas, tandis que la toile double-clique dessus. Et on y va. Maintenant, nous avons l'immense toile. Passons aux calques et
définissons que nous pouvons voir la couche d'interface utilisateur. Et ici, juste un instant, éteignez l'image qui s'estompe pour voir ce qui se passe. Et ici, qu'allons-nous agir ? Eh bien, nous voulons que deux choses représentent les armes que nous utilisons actuellement. Nous voulons avoir une image pour représenter l'arme et nous voulons un texte sous cette image. Allons de l'avant et commençons. La première chose que je vais ajouter est de cliquer avec le bouton droit ici. Et créons tout d'abord
un objet de jeu vide pour
représenter tout ce qui concerne les armes à feu. Je vais donc dire armes, UI. Et sous les armes que vous êtes, je vais tout d'abord créer une image. Donc, image, ce sera l'image de l'arme. Et je vais également créer un texte qui va être l'œuvre. Qu'est-ce que c'est, le texte des armes. On y va. Nous avons donc maintenant une image d'arme et un texte d'arme. Je vais cliquer sur la toile ici une seconde. Il suffit d'ouvrir ça. En ouvrant la toile, je peux, partout où je clique, je peux toujours voir les bordures. Je vais donc choisir l'image et je vais la faire glisser vers le côté. Et vous pouvez voir ici, dans le jeu, ce que nous allons voir tout le temps. Je vais donc rendre ça un peu plus grand, comme quelque chose à propos de cette taille. Et ce sera l'ingénieur des armes à feu. Ensuite, nous aurons les textes à écrire en dessous. Et nous allons juste tester cela et voir comment cela fonctionne. Donc, dans l'image, nous choisirons une source. Je vais verrouiller ça juste pour que nous ne le perdions pas. Et je vais aller dans les fusils à sprites. Et allons-y et ajoutons le fusil de chasse. Alors, tu y vas. Vous pouvez voir maintenant que nous pouvons voir le fusil de chasse. Nous pouvons le définir à la taille native rendre un peu plus petit. Mais tu sais quoi ? Honnêtement, j'aime bien ce que c'était avant. Grand et facile à voir. Maintenant, le texte des armes, nous voulons changer un peu parce que nous voulons avoir ceci, par
exemple le nom de l'arme. Et plus tard, nous
apprendrons comment modifier ou créer notre propre police. Mais pour l'instant, gardons cela comme il est juste à des fins de test. Nous pouvons modifier l'alignement ici et nous pouvons le placer au milieu. Nous pouvons le rendre audacieux. Nous pouvons faire beaucoup de choses avec le texte, mais l'un d'eux est de changer la couleur et de le rendre complètement blanc pour que nous puissions
le voir en arrière-plan, quoi qu'il arrive. Je vais le rendre un peu plus grand que nous puissions augmenter la taille. Là, vous pouvez voir que c'est ainsi que nous augmentons la taille et maintenant nous allons augmenter la taille de la police. Alors, tu y vas. C'est à peu près comment j'ai voulu y arriver. Ainsi, le nom de l'arme juste sous l'arme réelle et nous pouvons même agrandir
la boîte et augmenter la taille des mots. Alors, tu y vas. Maintenant, nous pouvons écrire le fusil de chasse et ainsi de suite. Retirons l'épave comme cible ici parce que nous récurrentons la cible, comme nous l'avons dit, nous pouvons cliquer dessus. Nous ne voulons pas cliquer dessus. Cela ne fera aucune différence, mais restons là. Nous pouvons modifier le débordement horizontal, le débordement vertical, et nous
pouvons créer ce que l'on appelle le meilleur ajustement. Et c'est vraiment sympa parce que maintenant, lorsque nous changeons, vous pouvez voir que la police changera avec la taille des mots, ou la taille des mots sera aussi grande V. Et je ne sais pas pourquoi je peux dire quoi que ce soit correctement, mais De toute façon, vous y allez. Vous comprenez ce que je veux dire par « Best Fit » ? Vous venez de voir ce qui se passe. D'accord, continuons et arrêtons de déambuler. La prochaine chose que nous voulons faire, c'est que nous voulons avoir accès à cette interface utilisateur ou à son comportement. Donc, ce que nous allons faire, nous voulons tout d'abord attribuer à chaque arme le sprite et le nom appropriés. Je vais donc entrer dans le préfabriqué d'armes. Donc, des préfabriqués, des armes, sélectionnez le pistolet. Et c'est là que nous allons tout mettre en place. Je vais donc ouvrir le script ici. Et sur le système d'armes, parce que chacun possède un système d'armes, nous allons ajouter deux variables. Le premier sera un sprite. Et ce sera l'image du pistolet. Et la seconde va être une chaîne. Et ce sera le flingue. Allons le garder. Une arme et une arme. Arme, manche. On y va. Donc le texte de l'arme, l'image d'arme et ce qui s'est passé nom. Et si je retourne dans Unity après la compilation, on y va. Nous pouvons voir que nous avons le sprite d'image et le nom de l'image. Nous allons donc choisir le pistolet. Allez au pistolet à l'image. Faites de ça la pierre. Et puis nous allons aller au fusil ou au nano pour retourner à la carabine d'armes Prefabs, le
verrouiller, trouver l'image ici. Quel est le nom ? Gardons ça à la carabine sans la partie assaut. Et qu'avons-nous d'autre ? Moins choisissez le fusil de chasse, sachez que le fusil de chasse préfabriqué, verrouillez ça. Enfin, image du fusil de chasse, vert ici, nom de l'
arme, choqué, pistolet. On y va. Ainsi, chaque préfabriqué a sa propre image de jardin ou image d'arme et son propre manche d'arme. La prochaine chose que nous devons faire est que nous avons besoin de deux à chaque fois que nous changeons d'arme pour remplir cette image. Actuellement, si je lance le jeu, vous remarquerez que j'ai l'image ici, je peux me déplacer, mais si j'essaie de changer d'arme, les images ne changent pas. Il est donc temps d'ajouter du comportement à cela. Et nous allons le faire dans le gestionnaire d'interface utilisateur, qui se trouve sur le campus. Nous allons donc ouvrir le gestionnaire d'interface utilisateur et voyons ce que nous allons faire ici. La première chose à faire est que nous avons besoin d'une référence à la fois à l'image et au texte. Je vais donc créer un champ sérialisé ici, qui va être de type image. Et nous pouvons utiliser EMG parce que nous avons moteur
Unity Dot QI qui utilise là-haut. Nous allons appeler cela l'image de l'arme. Gardons les choses
simples, comme avant. Et ici, nous aurons un texte avec lequel est le nom de l'arme. Sauvegarde ça dans Unity. Et voyons maintenant que nous pouvons aller de l'avant et verrouiller cela. Et nous pouvons ajouter l'image de l'arme et ajouter la taxe sur les armes. Nous pouvons cliquer sur le canevas de l'interface utilisateur et nous assurer appliquer ces modifications dans l'ensemble de notre projet. Excellent. Maintenant, la prochaine chose à faire est de vous montrer un défi. Et votre défi sera de
créer une méthode qui change l'intestin. Donc, tout d'abord, vous devez créer une méthode vide publique et qui prend deux paramètres. Une image pour le pistolet et une ficelle pour le nom du pistolet ou nom de l'
arme ou comme vous voulez l'appeler. Ensuite, vous devrez définir le sprite de l'interface utilisateur du pistolet à l'aide de l'image. Vous devrez également définir le texte du nom de l'arme comme nom de colonne. Et enfin, je vais vous donner un petit indice si vous le voulez,
si vous ne le faites pas et relancez le défi. Si ce n'est pas le cas, vous pouvez utiliser le pistolet que je
dote sprite et l'interface utilisateur ou le nom du pistolet que vous êtes, ou quel que soit le nom de la variable réelle. Texte à points, sprite à points pour accéder au sprite et au texte. N'oubliez pas que cela doit être une arme et non une image d'interface utilisateur. Oh, d'accord, donc tu y vas. Mettez la vidéo en pause maintenant. Va faire le Chaldéen. Bon, bon retour. Alors, que va-t-on faire ici ? Et nous allons créer un vide public et changer l'interface utilisateur ouverte ou changer l'interface utilisateur ouverte. Et nous avons dit que nous allons prendre en compte deux paramètres. Le premier paramètre sera un sprite, et il va s'agir de l'image des armes. Et sachez quoi, car nous
avons déjà l'année de l'image de l'arme. Changeons celui-ci en pistolet. Alors, voilà, image de pistolet. Et nous allons aussi prendre une ficelle, qui sera le texte du pistolet. Ce sont donc les deux paramètres que nous allons créer et maintenant que nous les avons, comment allons-nous changer les images ? Alors que si nous entrons ici, comme je vous l'ai dit entre les mains, si nous cliquons sur l'image de l'arme, nous pouvons voir ici que nous avons l'image source. Donc, si je pars, je vais dire que nous avons le Sprite d'image d'arme et qu'il est égal à l'image du canon qui nous a été fournie. Et ensuite, nous avons le nom de l'arme. Nous y accédons donc. Laissez-moi revenir ici et vous montrer quelque chose. Nous avons donc les armes détendues. Il s'agit de texte de type mais de la taxe sur les composants, mais nous accédons au texte du texte. Nous avons donc ce paramètre de texte ou cette caractéristique. Les composants. Nous y accédons donc en disant point txt et c'est égal au texte du pistolet. Gardez ça. Oh, super. Nous pouvons maintenant modifier l'interface utilisateur, mais la prochaine étape consiste à modifier
l' interface utilisateur des armes chaque fois que nous les changeons. Et où allons-nous faire cela ? Eh bien, nous allons le faire dans
les méthodes 0 et 0 de l'arme de commutation. Il y a quelque chose que je
voulais vous dire ici , j'ai commenté. Permettez-moi de vous dire maintenant, si vous avez remarqué quand nous jouons à notre jeu, dès que nous commençons, par
exemple, nous avons le fusil, d'accord, donc nous appuyons sur la touche de tabulation et cela ne change pas, pas avant d'avoir touché le touche de tabulation à nouveau. Quel est donc le problème ? Le problème est que dans notre couche ici, nous pouvons voir que le courant a disparu,
mais nous ne lui avons pas attribué de valeur. Il ne sait donc pas quelle est la valeur. Donc ce que j'ai fait et que j'ai commencé et la manette du joueur, nous pouvons simplement écrire ces deux lignes de code. Et ce qu'ils font, c'est d'abord nous définissons le canon actuel, qui est un entier par rapport au nombre de points d'arme disponible, puis nous passons simplement au pistolet. Nous commençons donc par le fusil. Maintenant, quand je lance le jeu, ou nous pouvons même quelque chose de bien mieux si vous voulez commencer avec la première arme que nous possédons. Nous pouvons définir cela comme étant le nombre de points d'armes
disponibles moins un. Maintenant, dès que nous commencerons le jeu, nous aurons le premier pistolet avec nous. Bon, donc on y va. Maintenant, nous pouvons changer immédiatement et il y a quelque chose qui ne va pas ici. Oh, d'accord, donc encore une fois, c'est cette erreur ennuyeuse. Donc, de retour dans les jeux. Comme vous pouvez le voir maintenant, dès que nous commençons, nous pouvons cliquer sur l'onglet. veux peut-être rendre cela public, mais comme je vous l'ai dit dans la vidéo précédente, ce n'est pas une bonne façon d'accéder aux variables. Un meilleur moyen est d'aller ici et de créer deux méthodes. Le premier sera public. Il retournera un sprite va s' appeler l'image get gun. Vous obtenez une image d'arme en fait l'interface utilisateur de l'image d'arme. Et je vais ouvrir les crochets et je vais simplement retourner les armes et les fermer avec un point-virgule. Et puis je vais créer une méthode similaire qui va
renvoyer une corde et qui va récupérer l'arme. Obtenez une arme, un texte, une interface utilisateur ou un nom, nommez l'interface utilisateur ou non. Nous ne pouvons même pas utiliser le mot UI. Mais gardons cela juste pour savoir pourquoi nous les obtenons. Donc, nom de l'arme, sauve ça. Nous pouvons maintenant accéder au système d'armes. Et à partir de ce système d'armes, nous pouvons accéder à ces deux méthodes. Et avec ces deux méthodes, nous pouvons avoir l'image et le nom des canons sans avoir à faire face au problème de modifier ces variables par erreur ou de provoquer une erreur quelconque. instant, ce que nous pouvons faire, c'est que nous pouvons obtenir le pistolet disponible. Arme disponible à la position actuelle du pistolet ou est-ce le canon actuel ? Et nous pouvons obtenir le composant de ce canon actuel, qui est évidemment le système d'armes. Et à partir de ce système d'armes, nous pouvons, que pouvons-nous faire ? Nous pouvons tout d'abord obtenir comment s'appelle-t-on ? Obtenez une image d'arme. Ensuite, nous pouvons appuyer sur Entrée ici parce que la ligne est trop longue. À une virgule. Copiez ceci et collez-le ici à l'entrée inaugurale. Et quel est le problème ici ? Pourquoi le premier me disait-il que je ne peux pas convertir le groupe de méthodes 2, n'est-ce pas ? OK. OK. C'est une méthode. Et obtenez le nom, obtenez l'interface utilisateur du nom de l'arme. On y va. Nous sauvegardons cela. Maintenant, si vous le souhaitez, je vous recommande de faire quelque chose ici car nous avons du code redondant. Nous pouvons définir cette variable, puis utiliser l'arme Obtenir et obtenir une image. Ce serait quelque chose de plus intelligent à faire. Mais pour l'instant, gardons le tout pour que nous sachions toujours ce qui se passe une fois que nous avons changé d'arme,
nous l' avons réglé sur vrai, puis nous accédons au gestionnaire d'interface utilisateur. Nous obtenons l'arme disponible à la position actuelle, nous obtenons le script des systèmes d'armes puis nous obtenons l'image des armes. Nous l'envoyons à la modification Open UI, qui se trouve dans le gestionnaire d'interface utilisateur. Et cela devrait changer l'image chaque fois que nous changeons de pistolet. Donc, de retour dans notre jeu, courons voir ce qui se passe. Vous y allez. Quand on touche Tab, on obtient le fusil, on obtient le fusil, on obtient le pistolet qui est fracassé pour une raison quelconque parce que le pistolet essaie de combler tout le vide. Voyons, où est-il, où est-il ? Où est-il ? Dans l'interface utilisateur, l'image de l'arme. Il est donc évident que lorsque nous l'avons défini comme un pistolet, ce n'est pas si bon, mais pas de soucis à ce sujet. Tant que cela fonctionne pour vous, nous pouvons changer cela, le réduire, l'agrandir. Peut-être même une meilleure idée, peut-être changé la façon dont cette image est représentée. me dérange trop. Si cela vous dérange, et je vous recommande peut-être que nous
verrons comment résoudre ce problème plus tard. Mais pour l'instant, nous pouvons voir que cela fonctionne. La seule chose qui ne fonctionne pas. Dès que nous courons. Nous pouvons voir qu'à moins de changer de pistolet, nous avons le premier qui est le nom de l'arme, comme cela, une image vierge et un texte vierge. Ce que nous pouvons faire, c'est dans UI Manager ici. Je vais donc choisir ça. Je vais cliquer avec le bouton droit sur action rapide et refactoring. Et je vais appeler ça les armes de réglage. Des armes. Vous, j'ai frappé Enter. Et maintenant, je peux commencer. Je ne vais pas changer de pistolet parce que je viens de remarquer que
cela ne fonctionne pas à moins que nous ayons la languette. Donc, tout ce que nous faisons ici c'est simplement régler le courant,
pour qu'il fonctionne immédiatement. Vous pouvez le définir sur 0 si vous le souhaitez. Mais supprimons cela et au lieu nous allons mettre en place l'interface utilisateur des armes. Donc, je vous mets des armes. Dès que nous commençons. Et permettez-moi de les sélectionner et de cliquer sur l'onglet
Maj quelques fois juste pour les rendre un peu meilleurs. Nous conservons que, comme je vous l'ai dit, la chose intelligente à faire est de changer cela et de le placer dans l'une des variables. Je vous recommande d'y aller. Et avec tout ce set, revenons dans notre jeu et essayons cela,
voyons si cela fonctionne depuis le jeu. Et non, ça n'a pas aidé au début. Pourquoi est-ce que c'est ? Après avoir fait quelques recherches, j'ai réalisé quelque chose et compris d'où vient le problème. Ici, nous essayons de définir l'interface utilisateur des armes, qui est ici, et nous essayons d'
accéder à l'instance Don du gestionnaire d'interface utilisateur. Le problème est, et j'ai remarqué que, ici même, si je lance le jeu, vous remarquerez que j'ai cette flèche ici. Et vous pouvez voir que la
référence d'objet n'est pas définie comme une instance d'un objet. J'ai donc double-cliqué et j'ai regardé ici et j'ai remarqué que, pour une raison quelconque ,
le script du lecteur est instancié ou démarre avant le démarrage du script d'interface utilisateur. Nous n'avons donc toujours pas de référence au gestionnaire d'interface utilisateur. Maintenant, ce que nous pouvons faire, c'est que nous pouvons
essayer de faire cela et
de nous réveiller au lieu d'un début et attendre le début un peu plus tôt que le début. Essayons cela et voyons si cela fonctionne. Si c'est le cas, nous nous sommes épargnés beaucoup de problèmes. Je ne suis pas sûr que ça marcherait, mais essayons de le tester. Donc, dans le jeu, lancez le jeu. Bon, donc on y va. Cela a fonctionné. Est-ce que c'est cool ? Qui nous avons économisé tant de temps, je n'étais pas sûr que ça marcherait. Une autre chose, c'est que le pistolet est écrasé. Nous pouvons accéder à l'image ici et nous
assurer de cliquer sur l'aspect de conservation. Vous pouvez voir que le pistolet restera le même. Je vais donc arrêter le jeu et les préréglages, sauvegarder ça et m'assurer d'appliquer les modifications. Alors maintenant, quand on court, tu y vas. Vous pouvez voir que le PESTEL est réglé correctement, mais quel est le problème ? Le problème, c'est que j'ai un fusil et ma main, mais le pistolet est représenté. Pourquoi est-ce que c'est ? Eh bien, parce que encore une fois, si nous y retournons, nous sauverons cela. Et à des fins futures, veillez
toujours à définir l'instance et l'éveillé au début. C'était donc une occasion incroyable pour vous de
comprendre la différence entre le début et l'éveillé. Eveillé commence juste un peu avant de commencer. Continuons, pourquoi
avons-nous le pistolet au début ? Tout cela est dû au courant disponible. Le canon actuel est donc réglé sur le nombre de points moins un, c'
est-à-dire le pistolet. Parce que le pistolet, comme vous pouvez le voir dans le joueur de Dooms, est le compte moins un, ce qui signifie l'élément deux. Alors, comment allons-nous y remédier ? Eh bien, ce que nous pouvons faire, c'est deux choses. Nous allons simplement régler le pistolet actuel pour qu'il soit. Je pense peut-être un. De cette façon, nous commencerons sur la bonne position. Donc, ici, nous allons diriger le jeu. Nous tenons un fusil et nous avons un fusil représenté. Et donc plus tard, je suis sûr que nous trouverons une solution plus intelligente à cela, mais pour l'instant, nous allons simplement faire ce qui fonctionne. J'espère que cette vidéo vous a plu. J'espère que vous dites tous vos dossiers et je vous verrai dans le prochain.
54. Réaliser un bouillon de caméra: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et dans celui-ci, chaque fois que nous commençons à tourner, nous n'avons plus cette chose ennuyeuse qui arrive. En fait, nous avons des tremblements. Alors, quand on tire, on y va. Vous pouvez voir chaque fois que nous le
devrions, nous avons une sorte de secousse, ce qui ajoute un niveau d'intensité. De toute évidence, l'intensité du fusil de chasse est trop forte, mais comme vous pouvez le constater, chaque arme a sa propre intensité. Remarquez donc le fusil, remarquez le pistolet et remarquez le fusil de chasse. C'est là que tu y vas. Vous pouvez donc voir que nous avons des intensités différentes pour différentes armes. Ne perdons donc plus de temps. Et commençons. Oh, d'accord, donc maintenant ce que nous voulons faire, c'est
que nous voulons ajouter un peu d' intensité à la façon dont nous tournons. Donc, à l'heure actuelle, tout fonctionne bien. Nous tirons avec nos armes. Nous pouvons les remplacer par différentes armes. Nous pouvons tuer des ennemis. Tout va bien, mais il y a toujours quelque chose qui
me dérange et c'est que le tournage n'est pas si excitant. Nous avons donc la fusillade, nous ne le ressentons pas vraiment. Nous le voyons. Cela n'a aucun impact, mais nous ne le ressentons pas en nous. Donc, ce que nous allons faire, c'est que nous allons ajouter un peu de secousses à la caméra. Et heureusement, il est extrêmement facile d'utiliser une machine pécheuse. Avant d'avoir une seule machine, il faudrait beaucoup quand vous voulez
faire trembler la came et cela ne fonctionnerait pas. C'est parfois le cas. Ne perdons donc plus de temps. Et passons à
la caméra virtuelle et ajoutons quelque chose appelé Berlin multicanal de base sous le bruit. Vous voulez donc me demander, quel est le berlinois multicanal de base ? Je n'en ai aucune idée, mais je sais que cela crée du bruit. Donc, si vous voulez vous plonger plus profondément dans ce faisceau, je suppose que je serais très heureux. Donc, elle est hors du chemin. Voyons ce qui se passe ici. Nous avons différents types de profils, le bruit, n'appelons plus ça sait. Et nous pouvons changer cela pour qu'il y ait différents aspects. Vous pouvez aller de l'avant et lire tous ces éléments. Je ne sais vraiment pas ce qu'ils font réellement. Je ne suis pas si profondément dans la machine SONA, mais ce que je sais, c'est que nous pouvons utiliser 60 secousses et nous avons l'amplitude et le gain de fréquence. Donc, si je dirige le jeu, vous remarquerez que nous aurons des tremblements en ce moment. Okay, donc tu y vas. Vous pouvez voir les petites secousses et voir la caméra comment elle tremble. Si j'augmente l'amplitude, vous y allez,
vous pouvez voir qu'au fur et à mesure que j'augmente, nous avons de plus en plus de tremblements jusqu'à ce que nous puissions le gérer. Pas de guerre. Définissons-le sur 0 pour l'instant, vous pouvez voir que je peux également créer un décalage. Donc, si je le mets à un et que j'augmente sur le Y, je pense que sur le Y, il y aura plus de secousses, mais gardons ça à 0. Nous pouvons également augmenter la fréquence, ce qui ajoutera à la fréquence des secousses. Donc, gardons ça à un seul moment. Ramenons-le à 0. Et trouvons un moyen de contrôler cette secousse chaque fois que nous tirons réellement. Pour ce faire, je vais créer un nouveau script. Je vais donc entrer dans le script, cliquons avec le bouton droit de la souris et créer un dossier pour les caméras. Parce que plus tard, nous aurons peut-être un contrôleur de caméra. Et allons de l'avant et créons un script « C sharp » et appelons ça le tremblement, le camp. Appuyez sur Entrée, attendez qu'il soit compilé. Et nous allons l'ajouter à la caméra virtuelle. Et on y va. Nous avons maintenant un script ici. Je vais l'ouvrir et nous allons faire quelques choses. Donc, d'abord, nous devons utiliser dans une machine. Cela nous permettra d'accéder à
différents éléments à l'intérieur de la machine, tout comme en utilisant l'interface utilisateur du document Unity Engine pour accéder aux éléments du canevas de l'interface utilisateur. La prochaine chose que nous allons faire est de
créer quelques variables. Maintenant, supportez avec moi. Ce sera un peu étrange, mais vous comprendrez tout. Tout d'abord, il est évident que nous avons besoin d'une référence à la caméra virtuelle. Je vais donc créer un péché privé, une machine. En fait, nous allons juste une caméra virtuelle, centrer la caméra virtuelle de la machine. Et je vais appeler ça ma caméra virtuelle pour que les choses soient très simples. Ensuite, nous allons créer une autre variable privée, qui sera le purlin multicanal. Et nous allons appeler cela le bruit. Comme nous l'avons dit, cette animation, berlinois multicanal basique. C'est la dernière fois que je vais sauver le monde de la chanson. C'est là, ici, et nous aurons besoin d'une référence à cela et au bruit. De retour ici, de quoi d'autre avons-nous besoin ? Eh bien, je pense que nous devrons
créer un exemple de cela parce que nous ne
voulons pas continuer à le chercher et nous en avons juste besoin d'une seule fois. Je crois. Donc, je vais rendre cela public statique. Et nous ferons de cette caméra un genre de caméra chancelante et chancelante. Et ça va être appelé instance en position. Et on y va. Et d'une certaine manière, dès maintenant, chaque fois que nous voulons instancier une instance, elle est toujours éveillée. Par conséquent, l'instance est égale à cela. Super. Ensuite, allons tout mettre en place. Et tant que nous sommes éveillés maintenant, réglons le bruit de la caméra virtuelle MD ici. Tout d'abord, ma caméra virtuelle, à quoi cela équivaut ? Eh bien, c'est très simple. Nous allons récupérer le composant, obtenir le composant et nous allons obtenir la caméra virtuelle. On y va. Nous avons donc maintenant accès à la caméra virtuelle. Ensuite, nous aurons besoin d'obtenir le bruit. Donc le bruit est égal à sortir ou à désoler, bruit est égal à mon point de caméra virtuelle. Et vous pouvez voir ici que nous avons cela dans un composant de machine. Alors, quel est le problème ou non, pourquoi avons-nous intégré un composant de machine et pourquoi ne pouvons-nous pas simplement obtenir un composant normal ? Eh bien, parce que si je vais ici et quatre, je le fais, laissez-moi remplir cette fin. Ce sera donc le purlin multicanal. On y va. Alors pourquoi utilisons-nous le composant Get Cinema Machine ? 12 machines à silane sont un peu délicates et c'est pourquoi je
vous recommande de consulter
les documentations et d'en apprendre tout. En passant,
vous pouvez vendre des machines pour créer des bandes-annonces et des scènes de découpe, etc. Il s'agit donc d'un outil très, très puissant. Vous apprendrez ce qu'il fait. Vous pouvez donc voir ici qu'ils sont différents, exemple des composants à l'intérieur de la caméra virtuelle. Et quel est le problème ici pour une raison quelconque. Ok, donc il ne s'ouvrait pas. A-t-on dit que nous avions besoin du corps ? Oh, d'accord. On y va donc. Pour une raison quelconque, cela n'ouvrait pas machine
Cinema et en faisait une caméra de 60. Gardez ça. D'accord, continuons. Maintenant que nous avons accès au bruit, nous allons tout
d'abord supprimer ou supprimer le démarrage et la mise à jour. Et nous allons créer une méthode pour commencer à trembler. Je vais donc créer un vide public et nous appellerons cela la caméra tremblante. Et à l'intérieur de la caméra tremblante, je vais prendre un flot d'intensité. Et cette intensité se traduira par le bruit. Donc, si nous regardons ici sous le bruit, nous avons le gain d'amplitude. Allons y accéder. Alors, l'amplitude gagne leur ego et nous avons le petit m derrière. Mais c'est le nom de la variable à laquelle nous accédons et nous allons la vendre comme intensité. Et pourquoi avons-nous ce paramètre d'intensité pendant ce temps ? Parce que chaque fois que nous tirons sur notre arme, nous voulons avoir une certaine intensité. Ainsi, par exemple, le fusil de chasse devrait ajouter un peu plus de secouer l'Arno, quoi qu'il soit, le fusil ajoutera un peu moins secousses, le pistolet ne devrait pas trembler presque du tout. Mais pour l'instant, allons-y et appelons cette méthode ici. Et nous allons aller de l'avant et tout d'
abord agir comme la caméra secouée, par
exemple, secouer la caméra. Et donnons-le pour l'instant 55. Nous allons donc créer des secousses en utilisant cinq intensités et nous verrons à quoi cela ressemble. Je vais donc attendre que cela soit compilé. Je vais diriger le jeu. Et maintenant, nous devrions le voir quand je tire. là que tu y vas. Vous pouvez voir que j'ai les secousses. Maintenant, il y a deux problèmes ici. La première, c'est que nous avons beaucoup de tremblements. La deuxième, c'est que si je me transforme en un autre pistolet, les secousses sont les mêmes. Si nous le testons, ce sera pareil. Fais-moi confiance. Cela ne semble pas comme ça, mais disons que j'ai essayé d'utiliser l'arme. Vous pouvez donc voir maintenant que lorsque je tourne, l'intensité est la même et nous ne voulons pas cela. Je vais donc vous lancer un petit défi. Vous allez faire trembler la caméra. Créez donc deux variables pour chaque arme. 14, l'intensité de la secousse, et une fois que nous continuons à trembler, nous ne voulons pas continuer à trembler éternellement. Deuxièmement, vous devez ajouter un paramètre à la méthode de forme qui prend le temps. De plus, vous devrez arrêter les secousses en utilisant une co-routine et vous devez appeler la méthode shake camp chaque fois que nous devrions devenir, je pense que le dernier point que nous avons déjà fait. Alors mettez la vidéo en pause maintenant et faites la fente peu profonde. Bon, bon retour. Alors, comment avez-vous eu tout ça ? Donc, la première chose que je vais faire, c'est ici que je vais créer un champ sérialisé de type float. Et ça va être une intensité de tremblement d'armes. Et les armes. Quoi ? Une arme ? L'heure de secouer Et retirons les armes et faisons en sorte que cela se produise. Nous avons donc maintenant l'intensité et le temps de secousse. La prochaine chose que nous allons faire, que devrions-nous faire ? Voyons le défi ou même oublié en tant que paramètre. Bon, donc nous retournons ici et nous ajoutons un temps de flottement ou de secousse. Le temps de tremblement, alors nous
devrons arrêter les secousses en utilisant une co-routine. Donc, ici, je vais créer un recenseur et ça
va s'appeler l'arrêt de secouer. Alors arrêtez de trembler et cela va prendre une variable ici qui n'a pas le temps d'attendre. Et comme toujours, nous allons céder, revenir. Nouveau, attendez, quatre secondes, heure, attendez. Et ici, une fois que nous aurons fini, nous allons encore obtenir le bruit, l'amplitude des points. Et nous allons le ramener à 0. Gardez ça. Et nous allons commencer la cour ici. Commencez donc la coroutine. Arrête de trembler, s'il te plaît Et nous allons secouer le temps. heure des tremblements. Dites que, enfin, il y a quelque chose ici. On y va donc. Donc, l'intensité du
tremblement de l'arme et le temps de secousse Gardez ça. Je crois que c'est tout ce que nous devons faire. On appelle donc, on obtient l'exemple de la secousse, on accède à la méthode, lui donne l'intensité de l'arme, on lui donne le temps nécessaire pour continuer à trembler. Et puis nous appelons cette méthode ici, qui prend en charge l'intensité du temps de secousse, nous
donne l'intensité du bruit. Il commence à secouer puis commence une chose froide qui arrêtera les secousses après un peu de temps. Cela étant fait, nous sauvegardons tout cela. Nous retournons ici, nous avons le Pourquoi le bruit continue-t-il de se fermer ? Avez-vous remarqué qu'à
chaque fois, pour une raison quelconque, il y
a quelque chose qui ne convient pas complètement à cela. J'espère que ça marche. Je vais donc le régler à 0. Gardez ça, lancez le jeu. Oh, et j'ai oublié d'ajouter à chacun des tremblements. Alors fusil de chasse, quelle est l'intensité de la secousse sur un fusil de chasse ? Allons en faire six. Et le temps est peut-être de deux secondes. Je ne sais pas. Je n'ai pas testé ça. L'intensité d'un fusil sera quatre avec un temps de secousse d'un. Et sur le pistolet va être un trois pour le temps de secousse de 0,5. Gardez ça, lancez le jeu. Et testons nos armes pour les secousses. Je vais donc maximiser le jeu pour le rendre beaucoup plus beau. Je crois que cela fonctionnera. Je ne pense pas que nous ayons une erreur. Alors maintenant, quand je tire avec un fusil, allez et moi, si je calcule, nous tremblons tout le temps, alors quand je choisis le pistolet, c'est un peu moins, donc 0,5 seconde et les secousses sont un peu plus petites. Et puis nous avons le fusil de chasse, qui devrait prendre beaucoup et pour le député. Alors, boum, on y va. Nous sommes en train de larguer une bombe nucléaire. Mais il est évident que tous ces éléments ont besoin d'être modifiés. Je vais faire un peu de peaufinage ici. Nous ne voulons pas avoir autant de tremblements. Nous en aurons un peu moins, mais cela vous revient toujours. À quoi voulez-vous que vos secousses ressentent ? Est-ce que ça doit être intense ? Ne doit-il pas être intense ? Nous allons commettre tous nos changements et nous allons appeler cela une caméra tremblante lorsque je tire. Commentez-les. Et voilà que tu y vas. Je pense que ce sera la dernière vidéo de cette section du système d'armes avancé. Nous avons ajouté nos armes plus tard, nous allons récupérer la somme. Nous verrons comment nous
allons trouver toutes nos armes. Nous avons appris à changer d'armes. Nous avons appris comment les ajouter à l'interface utilisateur. Nous avons ajouté une cadence de tir, nous avons créé un système de tir incroyable et j'espère que vous appréciez. J'espère que vous devrez revoir cela m'a
beaucoup aidé et je vous verrai dans la prochaine.
55. Section 9 : Système de santé - Configuration du système de santé des joueurs: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous allons en fait
ajouter un système de santé au lecteur. Donc maintenant, non seulement nous tuons les ennemis, mais aussi si nous sommes trop frappés par les épées, nous mourrons. Il y a évidemment des choses sur lesquelles nous
devrons régler la conférence, mais pour l'instant, nous ne faisons que mettre en place le système de santé de notre joueur, ce qui nous rapproche un peu plus de la réalité et Je me sens beaucoup mieux en ajoutant un peu de steak. Donc, avant cette vidéo, nous étions toujours en train de courir et de nous amuser et de tuer tout le monde sans inquiéter de quelque chose dans le monde. Mais maintenant, nous sommes en train de mourir. C'est un peu comme finir l' université et commencer un vrai travail. Vous allez dans le monde réel. Il y a beaucoup de choses en jeu. Donc, ne perdons plus de temps et commençons. Oh, l'affaire. Donc, actuellement, tout est configuré correctement. On peut tirer, on peut tirer dessus, on peut tout faire. Nous avons entendu l'ennemi, nous pouvons le tuer, mais quand l'ennemi nous tire dessus, ça ne fait pas autant de mal. Ce que nous allons faire dans cette section, et surtout dans cette vidéo, c'est créer un système de santé. Commençons donc par tout mettre en place. Tout d'abord, nous allons entrer dans les scripts, aller dans le lecteur, et nous allons créer ici un script C-sharp qui sera
le contrôleur de santé du joueur, ou qui aurait dû appeler Player Handler parce qu'il ne contrôle pas réellement la santé du joueur. C'est de la manipulation. Vous savez quoi ? Allons de l'avant et effectuons la suppression complète. Cela créera un gestionnaire de santé des couches parce qu'il gère qu'ils ont et ce n'est pas un problème si grave, mais j'aime toujours garder les choses leur gestionnaire de santé. Donc, parce que cela gère la santé du joueur, ne le contrôlez pas de quelque façon que ce soit. Je vais donc l'ajouter à la couche Doom et je vais appliquer toutes les modifications. Et je vais ouvrir le gestionnaire de santé du joueur. Alors, de quoi avons-nous besoin ici ? Bien évidemment, la première chose dont nous avons besoin, c'est un champ sérialisé qui représentera la santé actuelle. Et c'est juste à des fins de débogage. De toute évidence, nous ne voulons pas être en mesure de toujours voir l'état de santé actuel. Ensuite, nous allons créer une deuxième variable qui est la santé maximale. Et puis commencez, nous allons instancier la santé actuelle en tant que santé maximale. Ainsi, chaque fois que nous commençons une partie, chaque fois que notre joueur papyrus ou commence à jouer, nous aurons la santé actuelle comme santé maximale. Maintenant, l'étape suivante consiste à créer une méthode qui va réellement gérer les dégâts causés par les ennemis. Et cela va faire partie de votre défi. Votre défi consiste donc à créer une méthode pour supporter les dégâts. Créez donc une méthode qui endommagera le joueur. Il doit prendre un paramètre, la quantité de dégâts déterminera quel type le paramètre doit être à l'intérieur de la méthode. Supprimez la quantité de dégâts de l'état de santé actuel et vérifiez si la santé est inférieure ou égale à 0. Nous voulons rendre le joueur inactif. Mettez la vidéo en pause dès maintenant et relancez le défi. Bienvenue de retour. Je pense donc que c'était un défi assez facile. Je ne pense pas que ce soit trop dur. Je vais donc supprimer la mise à jour.
56. Canvas UI Health Bar Canvas: Bienvenue à mes collègues développeurs de jeux une toute nouvelle vidéo dans laquelle nous avons tout appris sur les sliders. Nous en apprendrons plus sur le prochain maillage Pro et nous créons également notre propre police. À quel point est-ce excitant ? Donc, ne perdons plus de temps et commençons. Oh, l'affaire. Il est donc temps d'ajouter un peu plus de saveur à la façon dont notre santé se détériore par les ennemis. Commençons donc. La première chose que nous voulons faire est de rendre la scène un peu plus grande. Et nous allons double-cliquer sur l'énorme canevas de l'interface utilisateur que nous avons. Nous pouvons donc voir que nous avons, ce qui se passe ici, l' image
décolorée que nous avons désactivée. Et nous allons
déplacer les armes juste un peu vers la droite. Et nous pouvons voir ici que ces images doivent être à 0,
0, sur le y et sur le x. Juste pour que nous les ayons au milieu de
la non-interface utilisateur et les déplaçons vers le bas. C'est juste un peu de réglage, et voilà. Maintenant, je vais
mettre l'arme à droite parce qu'à gauche, je vais ajouter quelque chose appelé curseur. Avant cela, je vais créer ici un objet de jeu qui représentera la santé. Appelons simplement ça la santé. On y va. Et sous la santé, je vais cliquer avec le bouton droit de la votre et créer quelque chose appelé le curseur. Nous allons donc ajouter le curseur. Comme vous pouvez le constater, nous avons créé un petit curseur. Et le curseur fait quelques choses. Il se déplace de gauche à droite. Il a un contexte. Si je l'ouvre, il a un arrière-plan, une zone de remplissage et un curseur de poignée. Si je clique sur le curseur ici, vous pouvez voir qu'il y a un
ou plusieurs composants de jeu sur le curseur. Et vous pouvez voir qu'il y a quelques choses. La couleur normale, la couleur surlignée, toutes ces bonnes choses. Mais la chose sur laquelle nous voulons le plus se concentrer, la valeur minimale, la valeur maximale et la valeur ici. Vous pouvez le constater, même si je l'augmente à partir de gauche à droite, et c'est ce que nous allons utiliser
pour représenter l'aide dont nous disposons. Mais évidemment, faire bouger le curseur gauche à droite est assez moche. Vous ne voulez donc jamais que votre santé soit représentée de cette façon. Nous voulons donc avoir une sorte de barre pour représenter la santé, comme nous l'avons fait dans les gains d'apparence professionnelle. Donc je vais
tout d'abord supprimer le curseur de poignée. Donc maintenant, nous n'avons plus ce petit ou pas ce qu'on appelle, quelque sorte, ce cercle qui
se déplaçait et maintenant nous ne voyons que la barre. La prochaine chose que je souhaite faire, c'est d'accéder à l'arrière-plan. Et le fond. Je vais cliquer ici. Vous savez quoi ? Avant cela, nous allons ajouter ces sprites, les éléments de
l'interface utilisateur que nous allons utiliser. Donc, dans les sprites, c'est ouvrir ce dossier et voyons ce que nous avons ici. Nous allons cliquer avec le bouton droit sur créer un nouveau dossier pour les éléments de l'interface utilisateur. Double-cliquez ici et allons dans les ressources. Comme vous pouvez le constater, je vous ai fourni quelques barres et vous pouvez utiliser la couleur que vous voulez. Vous avez également ici les boutons que nous utiliserons ultérieurement et la police. Je vais donc choisir la police, le curseur rouge et l'arrière-plan du curseur. Et je vais les faire glisser dans l'élément UI. Ok, super. Passons maintenant au curseur. Appelons ça le curseur santé. Et si nous cliquons sur l'arrière-plan, vous pouvez voir que nous pouvons modifier l'image source. Donc l'image source que je veux avoir ce curseur. Donc, quand je l'ajoute ici, vous y allez. Vous pouvez voir le curseur
maintenant si je le mets à la taille native, c'est un peu énorme. On va peut-être le rendre un peu plus petit. Mais le fait est que nous avons maintenant ce curseur d'arrière-plan. Et je veux m'assurer que lorsque je clique ici et
que je maintiens Alt enfoncée, il remplit toute l'image du curseur, pas seulement sur lui-même. Nous avons donc l'élément curseur santé. Si nous cliquons sur les outils de rack, vous pouvez voir les bords de celui-ci. Et avant que nous ayons cela, vous pouvez voir que les bords sont les bords. On y va. Ces quatre points, c' étaient les bords du curseur de santé, mais l'arrière-plan était beaucoup plus grand. Ainsi, lorsque nous cliquons, maintenez la touche Alt enfoncée et que nous
cliquons sur l'étirement, nous remplissons le curseur entier. Ensuite, nous avons la zone de remplissage. Maintenant, lorsque nous voulons remplir la zone, vous verrez qu'il s'agit d'une ligne blanche très moche. Ce que nous allons faire, c'est que nous allons accéder au remplissage. Et vous pouvez voir que nous pouvons aussi changer cette luminosité et je vais utiliser le curseur rouge. Maintenant, nous pouvons cliquer ici et vous
verrez que c'est beaucoup plus joli, n'est-ce pas ? Pas si vite, car nous voulons également nous assurer que la zone de remplissage lorsque nous cliquons ici, maintenez la touche Alt enfoncée, qu'elle s'étire tout autour de la zone du champ. Et ensuite, la zone de remplissage doit également s'étirer et jusqu'à l'arrière-plan. Mais parce que nous travaillons en arrière-plan. Et nous voulons voir le contexte. Je veux dire, nous allons le rendre plus petit et donc il s'inscrit exactement dans ce contexte. Ça a l'air assez bien. Je vais donc le déplacer un peu plus haut. Et d'accord, donc on y va. Nous pouvons voir que nous pouvons sélectionner le curseur santé et commencer à partir de 0 et l'augmenter jusqu'à ce qu'il devienne un. Maintenant, comment allons-nous changer la santé en fonction de notre propre santé ? Ce sera une vidéo pour plus tard. Mais pour l'instant, comme vous pouvez le constater, nous avons créé tout ce
dont nous avons besoin pour le curseur santé. Je vais faire un zoom arrière un peu. Et peut-être que je vais vraiment agrandir
le curseur. Augmentons donc la taille. Et comme vous pouvez le constater, parce que tout est ancré à ces points, ils se développent en douceur. Allons le rendre un peu plus épais. De toute évidence, cela va devoir changer un peu. Et je vais déplacer l'élément santé vers le bas, puis faire un zoom arrière, voir à quoi cela ressemble. On y va,
ici, je pense que c'est bien. Ou peut-être le déplacer un peu ou non, gardons ça ici. En bas, c'est bien ici. Zoomons avant. Peut-être que c'est un peu plus long. Au fait, toutes les choses que je fais dépendent de moi. Donc, si vous voulez créer quelque chose de différent, soyez mon invité. Je vous recommande d'essayer de créer votre propre type de curseur. Remplissons-le juste pour que nous
ayons les bonnes dimensions. Et voilà, à gauche, en haut et à gauche. Bon, donc on y va. C'est notre santé et ça a l'air vraiment beau, je pense donc si je maximise le jeu et que je joue au jeu, voyons à quoi ça ressemble. Bon, donc on y va. Nous avons la santé, nous avons le fusil. Il y a encore une chose qui manque, c'est-à-dire que nous voulons également représenter la santé à l'aide de texte. Tout d'abord, c'est ce que notre jeu de zombies, et je pense que c'est vraiment joli. Deuxièmement, ce sera un bon moyen de savoir à quel point nous sommes en train de changer et d'en apprendre davantage. Nous allons donc y ajouter un texte ici. Mais cette fois-ci, parce que nous allons ajouter notre propre police, nous allons ajouter non seulement un texte, mais nous allons ajouter un texte Mesh Pro. Donc, si je clique ici, vous pouvez voir que vous devrez importer quelques éléments essentiels. Il suffit de cliquer sur le premier et d'attendre qu'il soit importé. Si cela prend trop de temps, je vais réapparaître comme par magie. C'est bon, c'est fait. On y va. Nous avons maintenant quelque chose appelé le texte Mesh Pro. Et je vais appeler cela le texte sur la santé. Appuyez sur Entrée. Et déplacons-le un peu vers la gauche. Donc, ici, faisons-le audacieux. Et vous pouvez voir qu'actuellement la police utilisée dessus est le sens de la libération ou quelque chose comme ça. Mais nous voulons utiliser la police que je vous ai fournie dans les ressources, téléchargée depuis le font.com. Oh mon Dieu, ça de toute façon, comment allons-nous convertir cela en police ? Eh bien, si nous allons quelque part
ici dans le texte de Windows Mesh Pro, vous pouvez voir que nous avons l'option pour le créateur de polices. En cliquant ici, il vous demandera le fichier de police source. Faites-le glisser ici. Et il vous dira simplement de créer un Atlas sympathique. Économisez. Et il vous demandera où voulez-vous le sauvegarder ? Nous allons l'enregistrer à l'intérieur des polices ici. Ou dans l'élément UI. Gardez ça. Super. Donc maintenant, si nous abordons les éléments de l'interface utilisateur, vous pouvez voir que nous avons la place ici. Il y a un tas de propriétés dans lesquelles je ne vais même pas essayer d'entrer. Donc, les textes de santé font simplement glisser la police dans sa position. Et voilà, nous pouvons voir que nous
avons une police différente en ce moment. Maintenant, je le recommande car comme je l'ai dit plusieurs fois, je suis très mal en train de dessiner des choses. Et j'ai un très mauvais goût quand il s'agit de couleurs, de texte
et de tout ce qui est lié à faire paraître quelque chose de joli. Je vous recommande donc essayer
peut-être de trouver un meilleur texte que celui-ci. Mais pour l'instant, essayons de créer le type de système de santé et peut-être de le rendre automatique. La taille automatique signifie qu'elle va croître et se rétrécir avec la taille de celle-ci. Oui, on y va. Je vais donc le rendre plus grand, le rendre audacieux. Et ce qui est génial avec
texto Mesh pro, c' est que nous pouvons changer beaucoup de choses pour ajouter de l'éclairage, nous pouvons ajouter des sous-vêtements, nous pouvons ajouter une sorte de lueur et vous pouvez jouer avec ceux-ci. Nous pouvons également ajouter un plan. Donc si j'ajoute un peu d'épaisseur, vous remarquerez que nous avons le contour, nous pouvons changer le décalage, le carrelage, la vitesse, beaucoup, beaucoup de choses étonnantes. Et je vais faire un contour blanc juste pour que nous puissions tout voir plus clairement. Peut-être. On y va, cent cent. C'est ça l'aide. Nous pouvons changer beaucoup de choses que la couleur et ainsi de suite et ainsi de suite. Et tant que nous serons là, je vais aller de l'avant et vous lancer un défi. Votre défi consiste donc à configurer votre propre interface utilisateur. Faites donc quelques recherches et trouvez vos propres éléments d'interface utilisateur à utiliser pour votre jeu. Utilisez ces éléments pour configurer votre canevas d'interface utilisateur pour le lecteur et pensez à d' autres éléments que vous souhaitez afficher à l'écran. Par exemple, vous voudrez peut-être avoir nos opérations. Vous voudrez peut-être avoir un
compte à rebours pour le fusil de chasse. Vous voudrez peut-être juste le fusil de chasse pour l'arme, le fringant ou autre. Je ne sais pas ce que vous voudrez d'autre. Quoi que vous vouliez, pensez-y, j'ai essayé de l'ajouter. Vous, même si vous ne savez pas comment créer ce qui
devrait simplement le mettre là et ensuite l'écrire. Vous trouverez peut-être les scores au fur et à mesure. Ou peut-être que par vous-même, vous y trouverez une solution. Et il y a un défi supplémentaire. Je vous recommanderai d'aller de l'avant et de convertir le nom des armes que nous affichons sous le fusil de chasse. Mais je dois vous avertir qu'il faudra un peu de réglages avant que vous puissiez réellement changer
le nom de l'arme. Il s'agit donc de mettre en pause la vidéo dès maintenant et de relever le défi. Bon, bon retour. Cette vidéo est déjà un peu trop longue, donc je ne vais pas changer de nom pour elle maintenant. Plus tard, il est évident que nous allons le changer. Je vais aller de l'avant et appliquer toutes les modifications que nous avons apportées au canevas de l'interface utilisateur. Et maintenant, lorsque nous lançons le jeu, et maintenant nous pouvons voir que nous pouvons passer au pistolet, courir partout. Nous avons la santé, nous avons le pistolet et quelqu'un est coincé quelque part. Oh, donc nous sommes morts au, la lumière exactement sur ce point bizarre sur l'ennemi. Il y a donc un problème. De toute évidence, nous nous occuperons de cela plus tard. J'espère que ça vous plaira. J'espère que vous commettez vos changements. Et je vous verrai dans la prochaine vidéo, où nous allons effectivement accéder aux sprites de l'interface utilisateur et les mettre à jour. Alors, à ce moment-là. Hé Michael, venu du futur, tu pensais avoir fini avec moi ? Non. Vous ne l'étiez pas. Il y a donc quelque chose ici quand je suis venu pour commettre mes changements, et c'est le maillage des piles acides. Et si je vais ici, Où puis-je trouver cela dans les ressources, vous pouvez voir que nous avons créé ce fichier de maillage de texte et ce maillage de texte. Voyons les propriétés qui s'y trouvent. Est-ce que je peux voir la taille ? Non, je ne vois pas la taille, donc je pense que nous n'avons pas vraiment besoin l'enregistrer dans nos commits. Donc, ce que nous pouvons faire juste pour économiser un peu d'espace, je vais cliquer ici avec le bouton droit de la souris. Et nous allons ignorer tout ce qui trouve sous le texte des ressources Mesh PRO. Bon, on y va. Nous n'avons pas besoin de cela. scène tout et appelez cela des éléments d'
interface utilisateur ajoutés à Canvas pour représenter la santé et j'ai créé ma propre boutique. Je vais donc commettre ces changements et je vous verrai dans la prochaine. Je promets que je suis parti en ce moment.
57. Mettre à jour l'UI avec des scripts: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous n'avons pas seulement ce bar assis ici à l'air joli, quand nous serons frappés, vous verrez que notre santé diminue. Alors maintenant, quand on se fait frapper une autre fois, on
y va, on voit que nous mourrons. Il est évident qu'il y a ce petit problème nous ne parlerons pas maintenant, mais nous en parlerons plus tard. Donc, sans plus loin ni faire un, ne
perdons plus de temps et commençons. Bon, donc maintenant nous avons un curseur, nous avons le texte. Tous ces éléments représentent la santé du joueur, mais quand même, lorsque nous subissons des dégâts, la santé ne diminue pas. Ce que nous allons donc faire, c'est que nous allons modifier ce comportement en utilisant le gestionnaire d'interface utilisateur. Allons donc dans le gestionnaire d'interface utilisateur et voyons une référence à la fois au curseur de santé et au texte de santé. Ces derniers seront désormais publics. Et pourquoi sont-ils publics ? Eh bien, parce que nous allons les
gérer dans un scénario différent, c'
est-à-dire la santé du joueur. Je vais donc créer un Slider public, et ce sera le slider de santé. Et rappelez-vous, nous n'aurions pas pu utiliser ce curseur si nous n'avions pas le moteur Unity Ow.ly. Comme vous pouvez le voir, je l'ai commenté et vous pouvez voir que le curseur maintenant il n'existe pas. Donc, c'est continuer, avons-nous maintenant une référence au curseur santé ? Ensuite, nous avons besoin d'une référence
au texte de la santé vexée. Et ils sont très basiques. Maintenant, nous allons enregistrer cela et nous
rappeler que nous avons
une instance, une instance statique en veille. Je vais donc entrer dans le gestionnaire du joueur, la santé ici, puis commencer. Dès que je l'ai dit, l'état de santé actuel, je vais accéder à l'instance de point UI Manager, curseur de santé du point point la valeur maximale. Et je vais le définir comme la santé maximale. Et ensuite, je vais faire de même avec l'interface utilisateur. Où se trouve le gestionnaire d'interface utilisateur, l'instance, le curseur de santé et la valeur actuelle, qui est représentée par une valeur, seront l'état de santé actuel. On y va. Alors maintenant quand je lance le jeu, si je vais dans le joueur de malheur et que je vais définir sa santé maximale pour, disons, Oh, ok, mettons juste le courant ouvert parce que nous sommes déjà assis ici. Je vais juste commenter cela pour la raison d' avoir
une valeur maximale et des valeurs actuelles différentes. Je vais donc régler ça, disons à 20 ans. Donc, quand je lance le jeu, nous devrions voir que ce Health Bot bougera. Et ce n'est pas le cas. Parce que évidemment, nous pouvons voir ici la référence d'objet non définie et je saurai quel est le problème si je double-clique ici, nous n'avons pas dit le curseur de santé sur le canevas de l'interface utilisateur. Donc, dans le canevas de l'interface utilisateur, nous devons
évidemment définir cela ici. Donc la santé et le curseur, je vais faire glisser le curseur et la santé a fléchi. On y va. Non, pas le texte. Oh, d'accord, donc c'est quelque chose dont nous devons parler. Donc, les faits de santé ici ne sont pas seulement n'importe quel texte, c'est un texte Mesh Pro, donc nous ne pouvons pas utiliser, où est-il ? Où est le gestionnaire d'interface utilisateur ? On y va. Je vais donc le déplacer afin que nous ne puissions pas simplement utiliser le texte. Nous avons besoin d'un texto Mesh Pro, mais vous pouvez voir que nous n'avons pas le maillage de texte. Pourquoi ? Car avant de pouvoir utiliser le texte Mesh Pro, nous devons disposer de l'espace de noms approprié. Donc, en utilisant, voyons, je crois que c'est le maillage de points txt du moteur Unity. Donc, en utilisant le TMP, nous
y allons, hex mesh Pro. Et maintenant, ici, nous pouvons utiliser le texte, maillage de
texte par ligne. Et on y va. Nous sauvegardons cela. Revenons maintenant dans notre jeu. Et l'unité, je veux dire, nous pouvons aller de l'avant et entraîner la santé. Je veux dire, dans le canevas de l'interface utilisateur, nous pouvons faire glisser la santé vers le bas. Quel est le problème ? Je crois qu'au lieu de Text Mesh Pro, il devrait également
s'agir d'une interface graphique textuelle Mesh pro. Essayons encore une fois. Gardez cela maintenant dans notre jeu. Et aujourd'hui, maintenant, je vais laisser ça. Maintenant, on y va. Enfin, nous pouvons ajouter, donc nous sauvegardons cela. Nous gérons le jeu et nous devrions voir que la santé, oui, nous y allons. Nous avons donc réglé la santé actuelle à 20, V-Max Health à 100. Vous pouvez donc voir qu'il s'agit d'environ un cinquième du chemin. Nous savons donc que cela fonctionne. La prochaine étape consiste à faire en sorte que cela soit mis à jour
chaque fois que nous prenons un coup ou que nous commençons le jeu. Je vais donc le faire, et votre défi est de mettre à jour l'interface utilisateur de santé. Tout d'abord, créez une méthode qui met à jour l'interface utilisateur de santé. Nous parlons donc du livre, du curseur et du suivant, puis vous devrez l'
utiliser aux endroits appropriés. Vous devez donc réfléchir à où puis-je utiliser la mise à jour de l'interface utilisateur ? Assurez-vous également d'accéder au texte et
au, et de le mettre à jour. Enfin, je vais vous donner un aperçu de l'
endroit où vous pouvez utiliser cette interface utilisateur de mise à jour. Vous pouvez l'utiliser au début et lorsque le joueur est touché. Alors, avec cela,
arrêtez la vidéo dès maintenant et allez au Sharon. Oh, d'accord, bon retour. Je vais donc entrer dans le gestionnaire de santé du joueur. Et ici, je vais créer un vide privé, mettre à jour l'état de la couche. Et ici, ce que nous allons faire est tout d'abord, nous allons accéder au texte de l'
instance de points UI Manager , point de santé, texte de points. Et nous allons le régler en fonction de la santé actuelle. Ensuite, nous allons le concaténer. Je sais donc que vous ne l'avez pas encore fait, mais de cette façon, nous sommes en train de concaténer. Donc tout d'abord, nous prenons la santé actuelle, nous ajoutons ce tiret ici ou pas barre
oblique, c'est ce qu'on appelle, je crois. Et nous allons définir la santé maximale et ici aussi. Nous allons donc sauver ça. Mais non seulement cela, nous allons également modifier la valeur du curseur. Donc, ici, je vais également accéder à valeur de point
du curseur de l'instance de point de l'instance de point UI Manager. Et il va être égal au courant. Oups, désolé pour ça. Le courant. Donc, la santé actuelle, oui, c'était tout. Gardez ça. Maintenant, la question est où est-ce que l'on utilise réellement ? Il y a donc deux endroits. Tout d'abord, nous pouvons l'utiliser au début,
puis nous l' utilisons
déjà et le début parce que nous avons dit la santé actuelle, mais nous allons supprimer cette ligne et nous
allons simplement appelez l'état de santé Update Player. Et puis chaque fois que nous subissons des dégâts ici, après avoir supprimé le montant des dégâts, nous allons régler cela, mais je crois qu'il vaut mieux le vendre après avoir vérifié la santé de 0, peut-être pas. La seule chose qui m'
inquiète ici , c'est que la santé soit négative et que le bar aille dans l'autre sens. C'est la seule chose qui me dérange à ce sujet. Je vais donc aller de l'avant et peut-être l'installer ici. Donc, après avoir vérifié si nous sommes inférieurs à 0, cela peut aussi ne pas paraître très joli. Quand nous mourrons, nous avons toujours un peu de santé. Voyons voir, tu sais quoi ? Mettons-le ici. Ne vous inquiétez pas à ce sujet. Plus tard, nous ferons ce petit ajustement, il change où nous éteignons également la barre chaque fois que nous désactiverons le joueur. Donc, une fois cela fait, sauvegardez tout cela dans notre jeu. Et je vais laisser entrer C ici. Supprimons ce commentaire, sauf cela parce que nous avons maintenant une bonne santé. Je vais aller dans le lecteur de dôme et voyons voir. Supprimons l'état de santé actuel. C'est juste pour suivre la trace, nous veillerons à ce qu'il soit privé plus tard. Et que voulais-je faire ? Parce que l'arme que l'ennemi nous
lance inflige 50 points de dégâts, je crois. Faisons donc 300. La santé maximale du joueur est donc de 300. Je dirige le jeu. Et nous devrions voir que la santé maximale, vous pouvez voir que nous avons 300 sur 300. Je vais donc m'approcher de l'ennemi. Il dit : « On y va. Vous pouvez voir que la santé diminue lentement. Et enfin, le dernier, on meurt. Mais vous remarquerez qu'une petite erreur est
apparue et elle nous touche beaucoup. Je vais donc arrêter le jeu. Je vais le faire maintenant, nous devons consulter quand ceux que nous ne voulons pas être aussi proches de l'un d' entre eux et vous pouvez voir qu'il y a un problème. Et quel est le problème ? Tout d'abord, nous avons le contrôleur de balle ennemi ne trouve pas le joueur. Deuxièmement, nous l'avons fait, je crois. Ok, donc non, pas le problème ici. Eh bien, le problème, c'est que nous essayons toujours d'
obtenir une référence du joueur même s'il est mort. Nous essayons donc de modifier la diapositive de santé. Mais de toute façon, ce sont de petits ajustements que nous allons
évidemment nous occuper plus tard. Mais pour l'instant, j'espère que ça vous plaira. J'espère que vous comprenez et ressentirez à quel point notre jeu est agréable. Donc, tout est fait dynamiquement. Tout change automatiquement en utilisant le code et notre jeu prend vraiment forme. J'espère que ça vous plaira et je vous
verrai dans la prochaine vidéo. N'oubliez pas, bien sûr, de valider vos modifications.
58. Créer un écran de mort: Bienvenue, mes développeurs de jeux préférés. Et cette vidéo, comme vous pouvez le voir, le canevas de l'interface utilisateur comporte un élément supplémentaire, l'écran de mort. Alors maintenant, lorsque nous lançons le jeu, nous pouvons voir que nous sommes en bonne santé. Donc on se fait tirer dessus une fois, on nous a tiré deux fois, et c'est parti. Vous pouvez voir que vous allez mourir comme dans Dark Souls. Et nous avons cet effet qui apparaît. Est-ce que c'est cool ? Et non seulement cela, vous remarquerez que nous n'avons plus de genre instancié par l'ennemi après la mort du joueur, ce qui est vraiment un bon mécanicien que nous avons ajouté à la dernière seconde parce que je m'en souviens. Ne perdons donc plus de temps et passons à la création de l'écran. Oh, d'accord, il est donc temps de rendre la mort de notre joueur un peu plus excitante. Et j'ai changé les pixels par unité en 15 des tuiles. Maintenant, nous n'avons plus ces lignes bleues ennuyeuses. Je vais donc aller de l'avant dans le canevas de l'interface utilisateur et je vais créer une nouvelle image. Et cette image va être l'écran de la mort. On y va. Et nous allons simplement agrandir la scène et nous allons l'
insérer dans tout l'écran. Et comme nous le faisons toujours, nous allons aller de l'avant et le rendre complètement noir. Et ce que je vais faire, c'est que je veux les obtenir
pour que nous n'ayons pas encore utilisé ces trilles de blocs. Donc je vais juste prendre le 123 et le dernier, les
sélectionner tous. Et je vais le traîner en quatre. Nous le faisons, c'est dans les sprites. Créez un dossier pour l'écran de mort sanguine. C'est un beau cours, un très beau projet sur le sang sourd et autres. Voyons donc à quoi ça ressemble. Et maintenant, avant de faire cela, je pense
en fait que nous devons créer une image ici. On y va, l'image et je vais changer ça ici, et je vais la régler à la taille native. C'est donc un peu gros. Je vais juste faire de cette configuration un don de taille et peut-être simplement augmenter la taille de celle-ci. On va donc faire le tour. Je vais continuer à préserver le rapport hauteur/largeur. Nous pouvons donc maintenant le rendre un peu plus grand. On y va donc. Cela va donc éclabousser sur notre écran. Je vais créer une animation ici. Je vais donc aller sur les animations, créer et les ressources, les
animations, l'écran de la mort, l'écran, le sang. Et voyons, splash, beaucoup à l'écran. Gardez ça. Et je vais ajouter toutes ces images ici. Et voyons à quoi ça ressemble. Faisons d'abord, faisons-le autour d'une seconde. Voyez à quoi ça ressemble. Ok, ça m'a l'air assez bien. Gardez ça. Appelons ça le sang. Et modifions toutes les images et faisons en sorte qu'aucun filtre de point ne s'applique. Les images devraient donc être plus nettes en ce moment. Et regardons ça encore une fois. Pas trop pointu. J'aurais préféré le rendre un peu plus affûté que nous puissions
peut-être changer celui à 50. Maintenant, ils ne devraient pas devenir beaucoup plus grands. L'extrusion avec largeur. Bon, donc voyons quel est le problème ici. Classez ça, d'accord, donc maintenant nous avons le sang éclaboussé dès que nous commençons. Et ce que je vais faire, c'est que je vais aussi
ajouter une toile et ici. Quel est donc le groupe de campus appelé groupes
Canvas ou maintenant nous pouvons ajuster l'Alpha et nous pouvons bloquer la refonte. Ce n'est pas une mauvaise idée. Nous ne rendrons pas cela interactable. Et maintenant, je veux aussi aller de l'avant et peut-être déplacer le sang un peu vers le bas, peut-être le faire pivoter un peu. Maintenant, nous y allons. C'est le sang qui va apparaître. Et honnêtement, j'ai l'impression que ce n'est pas vraiment
beau parce que c'est plutôt granuleux parce que nous l'avons agrandi. Je pense que nous pourrions le supprimer plus tard, mais pour l'instant, ajoutons simplement un problème de maillage de texte ici. Sonde Text Mesh et vous mourrez ou majuscule. Et rendez-le audacieux. Voyons à quoi ça ressemble. Faisons en sorte qu'il soit un peu plus grand et une taille automatique. Et mettons-le au milieu. Et nous pouvons voir que la taille maximale ici, nous pouvons la rendre encore plus grande. On y va, tu es mort. Nous allons choisir une police différente, qui concerne le robot. Changeons la couleur pour le rendre rouge. Allons-le vers le haut. Voyons à quoi ça ressemble. Cela n'a pas l'air trop beau à cause des grandes lignes que nous avons. Nous allons donc modifier le plan pour qu'
il soit également lu ou peut-être simplement supprimer complètement le contour. Nous y allons donc sans contour. Ok, ça a l'air bien. Vous êtes donc mort. Si vous avez déjà joué Dark Souls, vous connaissez la référence et le, continuons. Je pense donc que c'est assez grand. Alors maintenant, quand le Seigneur est couché, nous y allons. Nous pouvons voir que nous obtenons le sang et que vous êtes mort à l'écran. Cela nous dit que le joueur vient de plonger. Quoi qu'il en soit, continuons maintenant, nous devons activer et désactiver cela. Donc, ce que nous allons faire, c'est que nous
allons toujours garder l'écran de la mort éteint. Donc tant que le joueur est en vie
que cet écran est éteint et quand il meurt, nous allumons l'écran. Allons donc dans le gestionnaire d'interface utilisateur. Et évidemment, nous allons changer l'alpha ici aussi. Nous ne voulons pas qu'il apparaisse simplement. Nous allons le ralentir apparaîtra. Et pour cela, nous allons également créer une animation ici et filtrer du sang. Appelons ça l'écran. Apparaissent. Gardez ça. Et changeons cela pour prendre environ 0,3 seconde et le mettre en une seule. Donc c'est en quelque sorte le, vous devez l'activer. C'est donc en quelque sorte ce qui se passe. Nous allumons donc l'écran, il commence à jouer. Et on y va. Et je vais simplement déplacer l'animation du sang
lorsque l' écran de la mort est complètement sombre. Nous commençons donc l'animation, il n'y a rien et le bloc devrait apparaître plus tard. Et en fait, nous pouvons aller de l'avant et le sélectionner ici et juste avoir un sprite vide. Nous commençons donc à vide. Voyons simplement à quoi ça ressemble. Et je vais complètement allumer ça. On y va donc. Non. Le sang coule ça. On y va. Et puis on fait apparaître le sang. Bon, Excellent. Je pense que ça va être vraiment joli. Enregistrez donc tout cela sur l'écran du bureau, réglez-le sur 0, éteignez l'écran, enregistrez tout cela. Et maintenant, passons à nos scripts. Et dans le gestionnaire d'interface utilisateur, je vais aller de l'avant et obtenir une référence à cet écran. Donc, un champ sérialisé, c'est un objet de jeu et ce sera l'écran de la mort. Et maintenant, nous allons aller de l'avant et créer une méthode qui nous permettra de l'activer. Ce sera donc un défi. Et votre défi consiste à activer l'écran de profondeur. Eh bien, quand nous mourrons. Vous devez donc créer une méthode qui définit l'écran de mort sur actif. Ensuite, vous devrez appeler les méthodes, la méthode lorsque le joueur meurt. Donc, pour créer cette méthode et est-ce que je gère et que je l'appelle à partir de la santé du lecteur géré avec cela dit, mettez la vidéo en pause maintenant et faites le défi. Bon, bon retour. Donc, ici, dans le gestionnaire d'interface utilisateur, je vais créer un vide public. Activez l'écran de mort. Et tout ce qu'il fera, c'est juste d'obtenir l'écran de la mort et de mettre actif à vrai. Et c'est tout. Ensuite, nous allons revenir en arrière et faire le gestionnaire du joueur et finir ici après avoir désactivé l'objet de jeu du joueur, nous allons accéder au gestionnaire d'interface utilisateur. Ou avant de le faire ici, l'instance du gestionnaire d'interface utilisateur, sourde, active l'écran de mort. Et on y va. Maintenant, nous allons commencer notre jeu. Allons au jeu, agrandissons le jeu. Allons voir le joueur DOM fixera sa santé à 100. Lancez le jeu. Alors maintenant, quand on se fait frapper une fois, on
y va, rien ne s'est passé, évidemment parce que chaque fois je dois oublier, tu sais, où ça va. Nous avons oublié d'ajouter une référence. Excellent. Maintenant, nous économisons, maintenant nous courons. Maintenant, tout devrait fonctionner. On y va. On se fait tirer dessus une fois, deux fois, tu es mort. Et évidemment, nous
oublions aussi ce que nous oublions toujours. Alors, les animations, où sont-elles ? Le sang ? Le sang ou la mort ? La mort. Ok, supprimez l'animation. Supprimez l'animation. Gardez ça du jeu pour la troisième fois, s'il vous plaît. Plus d'erreurs. Et maintenant on se fait tirer dessus une fois, deux fois, on meurt. Joli. Est-ce que c'est cool ? Mais il y a évidemment le seul problème qui prévaut
encore, c'est la soucoupe volante. Donc ce que nous allons faire, c'est nous allons nous assurer que l'ennemi
ne peut que trier ou devrait le projectile qu'il possède. Seulement lorsque nous sommes visibles ou lorsque nous sommes dans le jeu. Je vais donc aller dans le contrôleur NMI et ici,
et je vais faire défiler vers le bas et trouver où nous instancions la balle ou le projectile. On y va donc. Et le feu ennemi et le Colton ici nous instancions cela. Donc ce que je vais faire, c'est que je vais créer une condition ici qui vérifie si le joueur à chasser le point est un objet de jeu à points. C'est donc la portée de chasse aux joueurs. Donc, le joueur à chasser le point va bien. Par conséquent, le point d'objet de jeu est, le
point est actif ou actif et la hiérarchie. Ensuite, nous allons tirer. Si ce n'est pas le cas, nous ne le sommes pas. Cette hiérarchie active
définit donc si l'objet de jeu est actif dans la scène. Ce que nous faisons, c'est que nous
éteignons le joueur quand nous mourrons. Cela signifie qu'il n'est plus actif. Et la hiérarchie, cela signifie que nous n'
instancions plus le projectile de l'ennemi et que nous ne devrions pas avoir d'erreurs. Essayons encore une fois. Lancez le jeu. Et voyons voir, nous sommes aiguisés une fois, deux fois. D'accord, tu es mort. On y va. Nous pouvons voir que nous
n'avons plus d'erreurs et que les ennemis n'instancient rien. Et si je fais un zoom avant, où est-il ? Le malheur, ici, d'accord, donc nous ne pouvons rien voir, mais vous pouvez voir que nous
n'instancions donc nous ne pouvons rien voir,
mais vous pouvez voir que nous
n'instancions plus quoi que ce soit. Reprenons ça parce que je croyais avoir vu quelque chose ici quand on nous a tiré dessus. Oh, d'accord. OK. Non, tout va bien. On y va donc. Nous avons notre écran de mort. Nous n'avons plus les projectiles et les instanciations chaque fois que notre joueur meurt, veillons à ce que nous appliquions les modifications. Nous nous assurons de commettre nos changements, et nous nous assurons de laisser un avis pour Michael parce que cela l'aide beaucoup. Dans la vidéo suivante, nous sommes bien sûr, si vous appréciez la vidéo, évidemment, de toute façon, dans la vidéo suivante, nous allons créer le mécanisme de rendre le joueur
un peu invincible à chaque fois qu'il obtient c'est juste pour une période temporaire. Cela dit, j'espère que vous apprécierez et je vous verrai dans le prochain.
59. Ajouter l'invincibilité temporaire: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous allons devenir invincibles. Alors maintenant, quand on se fait tirer dessus une fois, la deuxième fois, nous sommes invincibles et vous remarquez que nous avons fait un petit flash, ce qui est très cool. Maintenant, nous allons également devenir invincibles lorsque nous faisons la torpille. Personne ne peut donc nous blesser pendant que nous faisons notre torpille. De toute évidence, nous n'y sommes pas arrivés, mais ne nous en inquiétons pas. Commençons par
créer nos mécanismes d' invincibilité. Commençons donc. Donc maintenant, chaque fois que nous sommes abattus,
si nous sommes, par exemple,
pris entre les trois squelettes ici,
cela pourrait être juste un
peu injuste pour le joueur qui joue
notre jeu. Donc maintenant, chaque fois que nous sommes abattus, si nous sommes, par exemple, pris entre les trois squelettes ici, cela pourrait être juste un
peu injuste pour le joueur qui joue qu'il meurt juste immédiatement et ne se rend même pas compte de ce qui s'est passé. Et une autre chose, une chose vraiment agréable que j'aimerais
ajouter en tant que mécanicien de jeu à notre jeu c'est que chaque fois que
nous sommes fringants, notre joueur est un peu invincible pour quelques secondes, peut-être même des millisecondes. Pour cela, nous allons mettre en œuvre cette mécanique qui consiste à faire notre joueur soit invincible pendant au moins quelques secondes. Allons donc voir notre responsable de la santé des joueurs. Et ici, je vais créer deux variables. Le premier sera
un champ sérialisé et ce sera un flotteur, et ce sera le temps de sensibilité. Combien de temps le joueur restera-t-il invincible ? Il va être ajouté en standard d'une seconde. Et puis je vais créer un livre privé et l'appeler invincible. Ainsi, lorsque le joueur est invincible, il y a deux choses qui vont se produire et quelques choses qui ne se produiront pas. Et l'une des choses qui ne se produiront pas, c'est que le joueur ne subira pas de dégâts. Ici, nous allons
vérifier avant de commencer à endommager le joueur. Si le joueur est invincible, nous allons vraiment savoir ce que je voulais faire, c'est s'incliner. Alors, ici, laissez-moi enlever celui-ci. Et une invitation à ces derniers. Ce que je voulais dire si le joueur n'est pas invincible, il n'est
donc pas invisible signifie que nous
ajouterons un point d'exclamation derrière cela, et cela changera tout cela. Donc s'il n'est pas invincible, est invincible est vrai, ce qui signifie que toute la condition est fausse à cause du point d'exclamation, cela signifie que nous n'y accédons pas. Cela signifie que chaque fois que nous sommes invincibles, est invincible, c'est vrai. Nous ne sommes pas blessés. Tellement excellent. Continuons. La prochaine chose que nous voulons faire est nous assurer que nous cesserons d'être invincibles après un certain temps. Pour cela, il va falloir créer un revêtement. Je vais donc vous le lancer comme un défi. Retournez donc le joueur à l'aide d'un revêtement. Vous devrez créer une chose de base qui retourne le joueur de son invincibilité, devrait utiliser la variable de temps d'invincibilité et vous devez appeler le revêtement
à l'endroit approprié. Donc, avec cette information de la vidéo en ce moment, et relancez le défi. Bon, bon retour. Comment avez-vous fait ça ? Vous savez, ce que j'adore
dans les défis, c'est que cela vous permet de rendre des comptes. Donc, si à ce stade, vous ne
saviez toujours pas comment un tribunal fonctionne après toutes les contestations, vous devrez apprendre à un moment donné parce que je vais
continuer à vous demander de faire
quelque chose jusqu'à ce qu'il soit enraciné en vous. Prenons donc la chose facile et allons de l'avant et créons ici un recenseur oculaire. Je pense donc que c'est assez facile maintenant. joueur est donc invincible. Ou revenons à ce que l'on appelle cette couche ? Appelons simplement que c'est invincible. Ils ne sont pas invincibles. Ok, appelons-le ça comme ça. Et ici, nous allons donner un nouveau poids de
retour pour une seconde. Je veux dire, à ce stade, ça devrait être comme juste éternuer ou respirer. Nous donnons donc un nouveau retour d'attente quatre secondes, le temps d'invincibilité. Et après cette invincibilité, le temps sera
invincible redeviendra faux. Et je veux aussi m'assurer que dès que nous commençons l'invincible est défini sur faux. Pour que nous ne soyons pas invincibles dès que nous commençons par le faire, je crois que c'est tout ce que nous devons faire. Je vais donc sauver ça. Je vais retourner dans notre jeu. Et lançons le jeu. Et voyons ce qui se passe. Alors quand je, d'accord, donc d'abord, il
faut ajouter quelques secondes de plus. Donc, le temps de malheur et de sensibilité, faisons-le deux, et lançons à nouveau. Ce sera donc le moment. On est donc frappés une fois. On y va. Maintenant qu'on l'obtient deux fois, on meurt toujours. Pourquoi est-ce que c'est ? Voyons quel est le problème. Rendons cela public afin que nous puissions voir clairement si nous changeons réellement ce qui se passe. Tout ce que nous n'avons pas commencé le froid ici. Je vais donc m'assurer que c'est le cas. Ici, où devrions-nous appeler ça 0 ? Donc, ce que je veux faire, c'est que chaque fois que
nous sommes frappés, nous devons aussi changer l'invincible en vrai. Il y a donc de nombreuses étapes que j'ai oublié de faire. Et une fois que nous l'aurons obtenu, je vais commencer la co-routine. Et la coroutine sera la couche, pas invincible. Il y a donc beaucoup de choses. Laissez-moi vous dire ce que j'ai oublié de faire. Et ici, dès que nous sommes touchés,
nous voulons rendre l'invincible vrai. Et une fois que nous serons invincibles, nous allons commencer la coroutine. Et parce que l'invincible est vrai, nous ne sommes plus endommagés. Cette ligne était donc cruciale. Et je ne sais même pas comment j' aurais pu oublier quelque chose d'aussi important, c'est l'essence même de rendre notre joueur invincible. J'espère que vous comprenez ce qui se passe. J'espère que vous n'êtes pas trop fâché
des erreurs que je commets parfois. Allons de l'avant et lançons le jeu. On y va, on se fait frapper une fois, on l'obtient deux fois. Vous y allez. Vous pouvez voir que la deuxième hanche ne nous a pas tués. Pourquoi ? Parce que nous avons eu le temps d'invincibilité. Nous pouvons donc voir ici que c'était le cas. Essayons encore une fois parce que je pense que nous aurions dû prendre un coup de plus. Nous y sommes donc invincibles et nous sommes morts. J'ai toujours l'impression qu'il y a quelque chose qui ne va pas vraiment et j'ai tout à fait raison. Donc 50. Nous allons donc nous assurer que cela fonctionne. Réglons-le sur cinq secondes et voyons si cela dure plus longtemps. Parce que je peux voir ici que ça ne change
pas 1234, d'accord, donc je sais que tout fonctionne, mais pour une raison quelconque, nous ne
voyons pas ce changement ici. Mais pas de soucis à ce sujet. Nous savons que cela fonctionne parce que lorsque nous
augmentons la taille du temps, nous sommes invincibles. Nous pouvons rester sur le visage de ce genre un peu plus longtemps. Ok, super. Maintenant, c'est très bien et dandy. Mais voici le problème. Nous ne savons pas que nous sommes invincibles pendant un certain temps. Ce que nous allons donc faire, c'est que nous allons essayer de visualiser cela. Alors, faites-le. Ce que je pense que je vais faire, c'est que je vais accéder au corps ici. Vous pouvez voir que nous avons les couleurs et quand on sera touché, je vais faire cligner des yeux au joueur. Donc je vais le faire cligner des yeux une, deux, trois fois, ou continuer à clignoter des yeux jusqu'à ce que le temps qu'on a soit terminé. Allons-y et faisons-le. Je vais donc entrer ici et je vais avoir une référence au sprite du joueur. Champ tellement sérialisé. Et ce sera le moteur de rendu de sprite. Et ce sera le sprite du joueur. On y va. Et ici, nous allons créer un numérateur. Et ça va être le clignotant. Et ici, ce que nous allons faire, c'est que nous allons commencer par déterminer le nombre de flashs que nous voulons avoir. Ensuite, nous créerons une boucle for. Attendez-le. Vous savez de quoi je parle ? Il va avoir l'int égal à 0, alors que je suis inférieur à combien de flashs voulons-nous ? Disons cinq flashs. Et moi en plus, en plus. D'accord. Alors, restez avec moi. Je vais vous quitter correctement. Je vais tout d'abord ajouter un peu
d' espacement ici, puis je
vais accéder à la couleur
du point de sprite du joueur qui sera égale à une nouvelle couleur. Ouvrez les crochets ou quel que soit leur nom. Et puis je vais écrire ici, nous garderons la même chose. Nous garderons le, laissez-moi juste dupliquer cette ligne deux fois. Nous garderons le A , puis nous aurons l'ordinal. Nous commençons par le rouge, rouge, le vert et le bleu. Enfin, nous aurons le dernier qui ne devrait pas prendre de virgule. peut voir ici que nous n'avons pas de virgule et ce sera le « a ». Mais dans notre cas, tout d'abord, nous voulons réduire la virgule. Alors, fixons peut-être 0,1. Ensuite, nous allons donner un nouveau rendement. Et nous allons attendre quatre secondes. Et c'est à quelle vitesse nous allons clignoter des yeux. Je vais donc le régler sur votre 0,1. Lorsque nous n'avons pas 0 ou simplement un point, cela signifie
que nous avons 0,1. C'est juste un moyen un peu plus rapide de faire les choses. Ensuite, nous allons revenir en arrière et copier cette ligne et la mettre ici. Et au lieu de 0,1, nous allions en avoir un. Et permettez-moi d'ajouter un onglet ici
à des fins de mise en œuvre. Il suffit donc de tout comprendre. Et ensuite, nous allons à nouveau
produire un retour de poids pour 1. Deuxièmement. Gardez ça. Et maintenant, nous devons commencer la coroutine quelque part. Quand on sera frappé juste après avoir défini l'invincibilité sur vrai, on va commencer la co-routine, qui va être un clignotant V avec les parenthèses aussi, on appelle
ça des parenthèses, je viens de me rappeler. Peut-être qu'ils vont faire du covoiturage et des parenthèses et comment nous
sauverons ce qui se passe ici. Tout d'abord, nous avons la boucle. Nous savons déjà comment fonctionne la boucle. Nous commençons à 0. Nous le faisons quatre fois, cinq fois, c'est en fait 4, 0, 1, 2, 3 et 4. Donc 5 fois, nous augmentons d'une chaque fois et nous allons passer en boucle. Alors, que faisons-nous ici ? Nous changeons la couleur. Nous gardons tout le rouge, le vert et le bleu identiques à l'exception de l'alpha. Et ici, nous faisons la même chose. Donc, le premier, nous réduisons à l'alpha à 0,1. Et le second, nous fabriquons l'Alpha 1. Et que faisons-nous ici ? Eh bien, nous savons déjà comment le rendement
rendement vous attendez quatre secondes fonctionne. Tout d'abord, nous avons l'alpha à 0,1. Nous attendons 0,1 seconde. Ensuite, nous en revenons à un. Nous attendons 0,1 seconde, puis redémarrons la boucle et nous continuons à le faire. Donc, nous y allons, d'accord, et nous continuons à faire cela et cela
créera un effet clignotant, pas croyez-moi, c'est tout. Je vais donc y retourner. Je vais lancer le jeu et voyons ce qui se passe. Je vais donc m'approcher de l'ennemi. Il me tire dessus et rien ne se passe parce que évidemment, chaque fois qu'on doit faire la même erreur qu'il faut ajouter le sprite du joueur. Ensuite, on traîne le corps, on sauve tout ça. Nous allons appliquer les modifications et nous allons courir. Et maintenant, nous devrions voir que nous, nous y allons. Vous pouvez voir que nous commençons à cligner des yeux. Lorsque nous arrêtons de clignoter des yeux, cela signifie que nous ne sommes plus invincibles. Maintenant, la seule chose ici, la seule astuce,
délicate, c'est que nous voulons nous
assurer que le temps d'invincibilité et le rinçage coïncident pour ne pas commencer clignoter et pour une raison quelconque, nous Arrêtez de clignoter, mais nous sommes toujours invincibles ou l'inverse, nous continuons à clignoter, mais nous ne sommes plus invincibles alors nous mourrons. Nous ne sommes pas sûrs de ce qui se passe. Il y aura donc un problème de synchronisation que vous
devrez modifier et vous assurer que cela fonctionne. Mais cela dit, je vais vous lancer un défi supplémentaire. Est-ce que c'est cool ? Je suis sûr à 100%
que vous ne l'avez pas vu venir parce que je veux rendre le joueur invincible quand il fait la torpille ou le tableau de bord ou quoi que vous l'appelez. Donc cette information, mettez en pause la vidéo dès maintenant et rendez le joueur également invincible lorsqu'il fait la torpille. Oh, d'accord, bon retour. Alors, que va-t-on faire ici ? Évidemment, nous avons le clignotant ici, mais nous voulons nous assurer que nous l'
appelons à partir d'une autre méthode, la manette du joueur. Quand nous sommes, où est-il,
où est-ce qu' il change de pistolet ? Le joueur fringant. Alors, nous allons ici, nous voulons nous assurer que nous appelons cela chaque fois que nous sommes fringants, comment allons-nous faire cela ? Eh bien, c'est assez facile. Nous devons commencer une co-routine. Nous allons donc regarder en arrière ici. Est-ce qu'on a une coroutine ? Nous allons aller de l'avant et obtenir le composant, la santé des joueurs. Alors que c'est le gestionnaire de calque. On y va. Et ici, nous allons commencer une coroutine
avant d'obtenir le composant. Et je pense que parce que celui-ci est quel est son nom ? Et il suffit de vérifier non, en fait, désolé pour ça. Coroutine de départ à point. Et ici, nous allons accéder au clignotant. Pouvons-nous savoir que nous devons le rendre public sur recenseur ? Si clignotant, ça ne me permet pas. Bon, je pense que nous devons le faire comme ça. Commencez donc la coroutine. Et on y va. Gardez ça. Comme vous pouvez le constater, même je ne savais pas trop comment cela allait fonctionner, mais apparemment, nous devons commencer la coroutine. Nous accédons au composant, nous obtenons le gestionnaire de santé du joueur et le gestionnaire du joueur NBA. On obtient le clignotant. Alors, sauvegardez ça. Essayons ça. De retour dans notre jeu. Nous gérons le jeu. Et maintenant, quand on fait le tableau de bord, on y va. Vous pouvez voir que nous clignotons. Est-ce que c'est cool d'un tiret phi ? Nous devrions voir que je ne comprends pas, d'accord, donc ça n'a pas fonctionné. Ne nous inquiétons pas à ce sujet. Il sera peut-être difficile de chronométrer
le temps où nous sommes invisibles avec le fringant, avec les tireurs ennemis. Ne vous inquiétez pas, car dans la prochaine vidéo, nous allons créer des pièges à pointes. Et c'est un excellent moyen de
tester notre invincibilité lorsque nous sommes fringants. Donc, si nous marchons à travers les sprites, ils mourront. Si nous traversons les sprites en fringant, nous ne mourrons pas parce que nous serons invincibles. C'est ce qui est dit. Il y a aussi une autre chose que même si nous
clignotons ici sur la manette du joueur, nous ne sommes pas invincibles. Et rendre le joueur invincible était le défi, et je viens de le remarquer avant de tout éteindre. Donc, pour éviter la confusion, ce que je vais faire est de retour et où en sommes-nous, le responsable de la santé du joueur. Je vais créer une méthode qui n'est pas un vide public. Rendre le calque sensé ce qui n'était pas invisible, ok, faites leur symbole d'inventer. Et ici, je vais tout
d'abord activer l'invincibilité. Il en est ainsi et invincible sera égal à vrai. Ensuite, nous allons
commencer la coroutine du flash. Et enfin, nous allons également commencer le revêtement. S'il vous plaît, laissez-moi commencer à courtiser
la marque jusqu'à ce qu'elle s'appelait ? Joueur non invincible. Joueur non invincible. Nous avons donc maintenant une méthode qui fait tout, une seule méthode pour tous les gouverner. Nous pouvons donc retirer celui-ci d'ici. Nous pouvons enlever le clignotant et le vrai. Et nous pouvons faire une chose, qui s'appelle rendre
le joueur invincible,
sauvegarder cela, puis mettre fin à la manette du joueur. Nous n'avons pas besoin d'appeler le clignotant manuellement. Nous pouvons simplement dire Get Component, Layer health handler, point, make, player invincible. On y va. Nous allons donc tester encore une fois. De retour dans notre jeu, lancez le jeu. Devrions-nous. On ne peut pas fermer une seule fois. Nous avons été abattus deux fois et nous sommes morts. Quel est le problème ? Est-ce qu'on n'a réussi qu'une seconde ? Passons à travers la R3. Trois secondes, lancez le jeu. Une fois encore. On nous tire dessus une, deux fois, trois fois. Bon, donc ça marche. Et puis, quand on fait le tableau de bord, on y va. Nous sommes fringants. Ok, on ne l'a pas testé correctement. Dans la vidéo suivante, nous nous en assurerons. Je suis désolé pour la durée de la vidéo. Encore une fois, c'est quelque chose de bien. Je crois que nous avons appris comment commencer une coroutine à partir d'un scénario différent. Et nous avons également appris à créer une méthode et à tout compacter en un seul endroit. Je pense que c'est une bonne habitude pour eux. Merci beaucoup d'avoir regardé. J'espère que vous appréciez, j'espère que vous commettez vos changements. Et je vous verrai dans la prochaine vidéo où nous allons créer des pointes. Nous avons également eu un défi supplémentaire, ce qui est très bon.
60. Ajouter des pikes sur la terre: Bienvenue, mes collègues développeurs de jeux. Comme vous pouvez le constater, nous avons créé quelques pointes ici. Maintenant, quand nous avons ces vélos, si je suis debout sur eux, nous y allons. Je suis endommagé. Et si je me tiens debout et que je reviens, je ne suis pas endommagé. Et si je reste debout, je suis endommagé. Mais maintenant, parce que je suis toujours invincible, je suis encore endommagé. Si je reste debout ici, pour que je puisse mourir, je vais m'en aller un peu et ne perdons plus de temps. Et commençons. Oh, d'accord, alors passons à la création de pics. Et j'ai déjà créé les pointes et tout. Maintenant, c'est quelque chose que je n'aime pas faire. Je n'aime pas faire les choses hors écran et ensuite vous le dire, mais parce que je voulais m'assurer que cette vidéo est aussi efficace que possible, c'est long et quelque chose devra être expliqué. C'est pourquoi j'ai créé toutes les animations et ainsi de suite. Je vais juste vous faire une visite rapide. Ce que j'ai fait, j'ai choisi l'un de ces trois pièges ici. Je suis retourné dans le jeu. J'ai sélectionné les sprites, je suis sûr que c'est 32 multiples, assuré d'éditer le sprite et d'en découper 32 par 32, fait le filtre, et ainsi de suite. Je suis ensuite allé de l'avant et j'ai créé ce piège à pointes, doté d'un moteur de rendu sprite. Un animateur y arrivera et un collisionneur de boîtes qui se trouve juste autour de lui, ce qui est également un déclencheur parce que nous voulons que le joueur passe dessus. D'accord ? Maintenant, j'ai créé également une animation pour le pic. L'un est inactif, l'autre est en train de sauter, donc le ralenti se tient là, ne fait rien. Il s'agit de l'animation par défaut. Et puis nous avons les pointes qui apparaissent ici. Vous verrez que j'en ai créé un pour faire passer ce privé. Alors, tu y vas. Vous voyez, et pourquoi est-ce que je rendrais ça un peu lent ? Je voulais juste donner une chance au joueur y réfléchir
à deux fois avant de repartir. Cela n'a donc rien à voir avec le joueur qui veut que le joueur s'arrête et qu'il commence à se déclencher. Et puis il a quelques cadres. Je peux déplacer ça ici. Il a quelques cadres pour réaliser son erreur, puis essayer de s'en enfuir. Avec cela,
parlons de l' animateur et de ce que nous avons fait ici. J'ai donc créé l'ival, en ai fait l'état de couche par défaut, puis j'ai créé les deux transitions, une allant de 21, à partir de. J'ai également créé ici un paramètre booléen pour les pics de BOP. Et une fois que les pointes pop sont vraies, nous passons des pointes inactives aux pointes Pops. Nous n'avons pas de durée de transition, nous n'avons pas d'heure de sortie. Mais lorsque nous revenons du bopping, nous avons un temps de sortie qui représente environ 90 % de l'animation. On peut même l'augmenter à un, peut-être jusqu'à ce que l'animation soit terminée, puis on y retourne. Je fais plutôt 0,57. Mais pour une raison quelconque, lorsque je l'ai configuré pour cela, l'animation ici disparaît. Je suis vraiment confus pourquoi cela se produit. Je n'aime pas ça du tout. Donc, 92 peut-être en 1906. 1907 fait simplement disparaître tout, qui est extrêmement agaçant. Et je ne sais pas pourquoi cela se produit. Mais de toute façon, nous avons un temps de sortie qui représente 96 % de l'animation. Ensuite, on y retourne. Eh bien, si vous en faites une, mettez en pause la vidéo maintenant, allez tout faire pour ça. Créez toutes les animations et ainsi de suite. Parce que je vais aller de l'avant et commencer dans les scripts en créant un, appelons ce dossier les pièges. Vous voudrez peut-être créer plusieurs pièges. Et ici, je vais créer les pointes. Cliquez avec le bouton droit de la souris, créez le point-C, et faisons en sorte que les pointes touchent Entrée, sélectionnez le piège à pointes. Et je vais traîner ces parcs ici. Maintenant, je vais double-cliquer et ouvrir et Visual Studio. Maintenant, avant de continuer, permettez-moi d'expliquer quelle est l'idée principale ou comment cette pointe va fonctionner. Parce que dans un peu, je vais lancer le défi et je veux que vous sachiez comment le pic fonctionnera. Le joueur se promène donc, alors que le joueur, il ne le fait pas, se promène. Puis soudain pendant que les pointes sont cachées, cachées, il marche sur les pointes et ils commencent à sortir. Donc, quand ils le frappent, ce que nous voulons, c'est que nous voulons que l'animation ait une sorte de système d' événements et que ce système d'événements endommagera la lame. Nous devrons donc avoir la variable de montant des dégâts devra obtenir une référence à cette couche et nous
devons ajouter un événement ici qui va l'endommager. Nous voulons aussi nous assurer que si le joueur est toujours debout sur les pointes, nous voulons continuer à l'endommager. Ne vous abîmez pas seulement une fois, puis sautez debout ici et ne ressentez rien. Nous voulons aussi nous assurer que lorsque le joueur active les pointes, il s'en va. Nous ne voulons pas qu'il continue à être endommagé parce que pendant que l'animation des pics
fonctionne et que le système d'événements sera toujours déclenché, ou vous verrez comment tout
fonctionne quand nous créons cela. Mais d'ici là, je vais lancer un défi pour endommager la couche profonde avec des pointes. Donc, tout d'abord, créez une variable pour les dégâts et le joueur que nous devrions endommager devra créer l'entrepreneur Enter. Vous devez démarrer l'animation et vous assurer qu'elle s'arrête. Donc, assurez-vous qu'il s'arrête signifie que nous
pourrions avoir besoin d'une sortie de sucre. Ensuite, vous devrez endommager le joueur à l'aide du système événementiel. Et enfin, je veux juste que vous
réfléchissiez à ce qui devrait se passer si le flou reste sur les pointes puis s'en sort. Donc, avec cela, suspendez la vidéo dès maintenant et relancez le défi. Bon, bon retour. Donc, dans notre script ici, nous allons d'abord obtenir un champ sérialisé qui sera de type entier et le montant des dégâts. Ensuite, nous allons créer un vide privé. Et il n'y a aucune excuse pour moi, pas un vide privé, un collisionneur privé 2D, et ce sera le joueur à endommager. Gardez ça. Maintenant, je vais supprimer le démarrage et la mise à jour si nous en avons besoin plus tard, nous pouvons les ajouter. C'est assez simple. Je vais créer l'entrée On Trigger à D. Je vais vérifier si cette balise
collision.com est la couche. Si c'est le cas, je vais obtenir le composant qui est la porte principale de fin. Et je vais aller de l'avant et définir le bool, qui sera la lettre car il s'agit d'une référence de chaîne. Nous allons acheter ces vélos. Bob Spikes, copiez ça. Et de retour ici. Et mettons ça en place. Vélos, économisez ça. Ensuite, nous allons créer
ici une méthode qui va endommager le joueur, qui est une couche de dégâts publics. Et il faut aussi que cela soit vrai. Gardez ça. Nous allons donc endommager le joueur. Que devrions-nous faire ici ? Nous allons juste amener le joueur à endommager le composant Dot get, le gestionnaire de santé du joueur. Et nous allons aller de l'avant et endommager la couche avec la quantité de dégâts. Et avant d'oublier, comment allons-nous avoir accès aux dégâts de
cette couche lorsque le joueur interviendra ici ? Quel est le problème ici ? Le nombre de donateurs n'existe pas. Oh, vraiment désolée. Montant des dégâts. Où ai-je eu le montant des dégâts ? Je ne suis même pas sûr de toute façon, ici, le joueur blessé que
le joueur blessé sera égal à la collision. On y va. Alors, sur Trigger Enter, on vérifie si c'est le joueur ? Oui, nous commençons l'animation Pop Spikes. Ensuite, nous avons réglé le joueur sur des
dégâts lors de la collision parce qu'elle est déclarée, nous savons que nous allons alors endommager le joueur. Et enfin, nous allons y retourner. Quel est le problème ? D'accord ? Rien d'animation et nous allons sélectionner dans la scène. Alors, tu y vas. Nous pouvons voir que cela commence, alors rien ne se passe. Et quelques secondes nous attendons, puis nous réservons ici, je vais ajouter l'événement et je vais choisir d'endommager le joueur. Nous allons sauvegarder ça pour lancer le jeu. Et nous verrons ici que nous aurons une vie de 600 fois que je m'arrêterai sur ces vélos. Oui. On y va. Il nous fait du mal. Cela ne nous endommage pas parce que si je retourne aux pointes, nous n'avons rien à endommager. Définissons-le à 100 pour l'instant, car la vie est de 600. Donc je pense qu'il peut prendre quelques coups sûrs. Maintenant, nous avons les pointes. Oui, on y va. Vous pouvez voir qu'il en supprime 100 à chaque fois. Et comme nous avons cette invincibilité pendant quelques secondes, la deuxième pointe n'affecte pas la couche. Mais le problème, c'est vous pouvez voir qu'il continue jouer et que je continue d'être endommagé. Le joueur est donc mort même s'il se tient à l'extérieur du périmètre des étincelles. Donc, ce que nous devrions faire, c'est d'abord que nous devons arrêter l'animation On Trigger exit 2D. Et ici, je vais juste faire la même chose que moi ici. Vérifiez la présence du joueur. Et si c'est le joueur qui vient de sortir de la collision, nous allons définir cette valeur sur False, sauvegardez-le dans notre jeu. Et c'est là que nous allons diriger le jeu. Alors maintenant, nous entrons ici, nous sommes endommagés, nous sortons dehors. On y va. Nous pouvons voir que l'animation s'arrête, mais il y a quelque chose quand je m'arrête et que je reviens, vous pouvez voir que même si je suis dehors, alors reculez. Je suis toujours endommagé. Pourquoi ? Parce que l'animation ici est toujours en cours de lecture. Le système d'événements est toujours en train de se déclencher et nous savons ce qu'est le joueur. Donc, pour éviter cela, je vais créer un livre public. Et ce livre public juste pour que nous puissions le voir dans l'inspecteur le mettra plus tard en privé. Et je vais appeler cela le joueur donné ou le joueur de dégâts,
ou je ne devrais pas endommager le joueur, je crois que c'est un meilleur nom pour cela. Les verbes devraient endommager le joueur. Et une fois qu'il est à l'intérieur, alors le joueur devrait endommager est égal à vrai. Quand il est à l'extérieur, le joueur devrait endommager est faux. Et puis, à l'intérieur de la méthode du joueur de dégâts, je vais vérifier si nous devons gérer le joueur. Ensuite, nous allons aller de l'avant et accéder au gestionnaire de santé du joueur et endommager le joueur. Donc, maintenant dans notre jeu, nous devrions voir que lorsque je lance le jeu, nous ne devrions pas endommager le joueur. Une fois que je suis entré ici, nous devrions endommager le joueur, nous sommes endommagés. Mais si j'ai activé et que je sors dehors, c'est parti. Vous pouvez voir que cela devrait endommager le livre du joueur, le livre. On y va. Vous pouvez voir que je ne suis plus touché. J'espère que cette vidéo vous a plu. J'espère que cette section vous a plu. J'espère que vous mettrez toujours en scène vos fichiers, commettez vos modifications, que vous créez des avis. Et ensuite, dans la section suivante, nous
verrons où ce voyage nous mène. Je vais donc dire
ici que j'ai créé des pointes, cette couche de dégâts, que j'ai commis les changements. Et je peux voir ici et les maîtres comment notre jeu évolue. Regardez ce que nous avons fait, et regardez à quel point nous devons encore faire. Ce jeu ne fait que commencer donc j'ai hâte. Ne perdons plus de temps et je
vous verrai dans la prochaine vidéo.
61. Section 10 : Préparer la santé: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, quand vous pouvez voir ici que nous avons ces micros écologiques. Ainsi, lorsque nous sommes touchés, vous remarquez que nous sommes en direct à 500 de plus de 600. Mais une fois que j'aurai pris cette santé, vous remarquerez que j'augmente ma santé et maintenant nous sommes de retour en affaires et nous pourrons abattre tout le monde. Donc, sans plus tarder, ne
perdons plus de temps. Je commets quelques erreurs dans cette vidéo. J'espère que vous apprécierez
leur leçon et ne perdons plus de temps. Et commençons. Oh, ok, alors ajoutons la capacité pour
le joueur de prendre un peu de santé pendant qu'il est endommagé. La première chose que je veux faire, c'est
que je veux créer le préfabriqué à partir du piège à pointes. Donc préfabriqué et ce qu'il devrait y avoir ici. Cliquez ici avec le bouton droit de la souris et
créons un dossier pour les objets de niveau. Donc, nivelez les objets. Et allons-y et ajoutons le piège à pointes
et ici, et gardons ça dans notre monde. Maintenant, la prochaine chose que nous voulons faire est d' aller dans les sprites. Où sont les sprites ? Et disons qu'ici nous avons
la prise en charge de la santé ou que vous savez quoi, appelons-les simplement les opérations PEC. Appuyez sur Entrée. Et ici, je vais aller dans les ressources et faire glisser l' intégralité
du PNG ou de l'image ou ce que vous voulez appeler. Et je voulais le faire à l'extérieur et le faire avant de commencer la vidéo. Mais j'ai pensé que certains d'entre vous auraient peut-être été fâchés d'avoir créé toutes les animations et les autres. J'ai donc pensé que nous allons les créer ensemble. Si vous le souhaitez, nous pouvons aller de l'avant et voir qui peut le faire plus rapidement. Donc 64 x 64 diapositives ou moins qui, d'accord,
évidemment, ce devrait être 32 par 32 tranches qui ont appliqué les changements. On y va. Maintenant, je vais en acheter un, les ajouter au monde ici. Il est extrêmement petit. Mettons-le sur le calque, calque. Il est encore extrêmement petit. Faisons en 32 et les pixels par unité appliquent les modifications, donc c'est encore un peu petit. Faisons peut-être 16 ans. Appliquez les modifications. On y va. Je pense que c'est bien. Et au fait, c'est l'un des micros
de santé les plus laides que j'ai jamais vus. Donc, si vous voulez maintenant, non, je ne voulais pas dire cela parce
que la personne qui a travaillé sur eux a peut-être eu du mal à
créer des ombres et ainsi de suite. Je suis désolée d'avoir dit cela, mais honnêtement, ils ne sont pas très bons. Je vous recommande donc de trouver vos propres sprites. Tout ce que je veux faire, c'est m'assurer que nous
avons la mécanique et la place du jeu. Il n'est pas nécessaire que ce soit extrêmement joli. De toute façon, nous ajoutons évidemment un collisionneur de boîtes. Voyons à quel point c'est énorme. Oui, je pense que c'est assez grand. Nous nous assurerons que c'est un déclencheur qui sauvera cela. Nous allons dans les scripts ici et cliquons avec le bouton droit de la souris et créons un script C-sharp pour la prise en charge de la santé ou de la santé. Appuyez sur Entrée. Et nous allons créer un dossier qui sera le pick-up. Donc, n'importe quel jour, ramassez et ajoutez le ramassage santé et faites les micros. Ensuite, nous ajouterons le ramassage santé dans le ramassage santé. Est-ce que c'est cool ? ramassage de santé obtient donc un nouveau composant, c'
est-à-dire le script de récupération de santé. Nous y allons, ouvrez-le dans Visual Studio et commençons. De quoi avons-nous besoin ici ? Tout d'abord, il est évident que nous devons connaître le montant que cela va guérir. Donc, champ sérialisé, nous allons en faire un entier et nous appellerons cela la quantité de talon sans fin. Il suffit de le mettre en place, je ne sais pas, peut-être dix. Je pense que dix est un nombre suffisant. Je vais supprimer le démarrage et la mise à jour pour le moment. Et je vais aller de l'avant et créer un
Trigger Enter à l' évidence que recherchons-nous ? Balise de comparaison. Je veux dire, désolé, nous
devons d'abord avoir la collision,
puis nous comparons l'étiquette et cette étiquette en tant que joueur. Vous avez déjà vu tout cela, je pense environ 1000 fois, mais de toute façon, c'est
ce que nous devrions vivre. Mais avant de faire cela, laissez-moi simplement créer l'animation pour la prise en charge de la santé. Donc, Animation, créez une animation. Créons ici un dossier qui sera le pick-up. Peut-être qu'on ajoute un peu plus de pick-up. Et ici, nous allons créer le ramassage santé juste pour nous assurer que tout est vraiment propre et facile à traverser. Maintenant, nous faisons monter, descendre, monter, baisser la santé. Ça va aux interrupteurs de sprite. Et où est-il ? Sauvegarde, prise en charge de santé. On y va. Ajoutons toutes ces images et nous le garderons comme couche par défaut exécutée. Ok, c'est extrêmement rapide, peut-être comme ça. Non, c'est ennuyeux. Comme ça. D'accord. Je pense que c'est peut-être suffisant. Oui, bien sûr. Pourquoi pas ? Donc, gardons ça à ça. Je pense. Oui, bien sûr. Tant que nous pouvons voir ce qui se passe et que ça bouge un peu. Ça peut être un peu plus lent. Non, c'est le premier. Je ne sais pas. Cela dépendra vraiment de vous. Comment voulez-vous que votre pick-up ressemble ? De toute évidence, certains d'entre vous ont des sprites de batterie, ont une meilleure compréhension de ce qui rend une animation jolie. Je vous le garderai aussi longtemps que nous aurons la prise en charge de la santé. Revenons ici maintenant. Et que voulons-nous faire ici après la collision du joueur nous voulons
évidemment augmenter la santé du joueur, mais il y a quelque chose
qui n'est pas tout à fait correct, c'est-à-dire que nous ne le faisons pas. je n'ai aucun moyen de le faire. Je vais donc vous lancer un défi pour créer une méthode qui ajoute de la santé. Tout d'abord, et le gestionnaire de santé du joueur crée une méthode qui ajoute de la santé au joueur. Il devrait prendre un paramètre qui est la quantité de talon. Vous devrez vous assurer que cela ne
dépasse jamais le maximum de santé que nous avons. Notre maximum est donc de 100. Nous ne voulons pas en avoir 120, par exemple. Enfin, et surtout, vous devez vous assurer de mettre également à jour le canevas de l'interface utilisateur. Donc, avec ces informations, mettez en pause la vidéo dès maintenant et relevez le défi. Gay. Bienvenue de retour. Comment êtes-vous arrivé là-dessus ? J'espère que ce n'était pas trop dur et j'espère que vous avez tout donné. Ici, là où nous blessons le joueur juste en dessous, nous allons créer un vide public. Et il va s'agir d'ajouter HB deux joueurs. Et il va prendre un paramètre entier, c'
est-à-dire la valeur du talon. Et que ferons-nous ici ? Eh bien, nous allons accéder à la santé actuelle et nous allons l'augmenter montant de santé. Maintenant, pour la partie délicate, si la santé actuelle supérieure à la santé maximale, que devrions-nous faire ? Eh bien, nous devrions définir la santé actuelle pour qu'elle soit égale à la santé maximale. Cela garantira donc que la santé actuelle ne dépasse jamais la santé maximale. Enfin, nous devons
mettre à jour le plan de santé du joueur, mettre à jour la santé du joueur. Oui, mettez à jour la santé du joueur. Vous savez quoi ? Double-cliquez ici, Contrôlez RR, Mettre à jour l'état du lecteur que vous êtes. Et le problème, c'est qu'il y a quelque chose, un conflit non résolu. Quel est le problème ? Oh, d'accord. Ici, il ne sait pas ce qu'il devrait utiliser. Et on y va. Nous mettons maintenant à jour l'état de santé du joueur que vous êtes. Et la dernière étape est évidemment d'entrer ici, nous allons aller à la collision, le composant Get, parce que nous savons déjà que c'est le joueur, donc nous ne ferons face à aucune erreur que ce qui a été appelé,
chez HP à joueur, chez HP au joueur. Et nous lui avons envoyé la quantité de talon de cet objet. Et enfin, et bien sûr, nous devons détruire l'objet du jeu. On y va. Je pense que c'est tout ce que nous devons faire et cela devrait fonctionner. Donc, dans notre jeu, lançons ça. Et voyons si cela a fonctionné. On va donc se tenir debout sur les pointes, se faire frapper une fois, allez, attrapez-le deux fois. On y va. On se fait frapper une troisième fois. D'accord. Maintenant, notre santé est de 300. Donc, maintenant, lorsque nous aurons repris cela, nous devrions en avoir 310. Nous en avons 320. Alors pourquoi pensez-vous que c'est arrivé ? Voyons quel est le problème ici. Le ramassage de la santé a donc été effectué, il n'y a pas d'animation. Il y a un collisionneur de boîtes, mais le problème, Oh, bon retour. Je crois donc qu'il m'a fallu une fraction de seconde pour savoir ce qui s'est passé à cause de la magie du montage. Mais j'ai traversé deux ou trois choses. Il suffit de comprendre si ma théorie était correcte et c'était le cas. Ce que je pensais, c'est que nous avons deux collisionneurs ici. Nous avons le collisionneur capsule du joueur, et nous avons le boxplaneur du joueur. L'un d'eux est 2. Assurez-vous de ne pas dépasser les murs. Nous en avons donc créé un petit pour avoir l'illusion que ce jeu est plus que deux. Ce sont le mur qui ne
nous rend pas vraiment incapables de le traverser un peu. Donc, si vous savez ce que je veux dire, je suis ici. Et puis le second est en fait de
pouvoir se faire tirer dessus du chapeau. Alors, le problème, que se passe-t-il ? J'essaie de vous montrer que je vais être touché par ces pointes. Et maintenant, si je marche avec ces deux collisionneurs, vous remarquerez que lorsque je choisirai l'un d'eux, vous verrez que j'en ai 20 parce que je ramasse avec les deux planeurs. Si je viens de le ramasser avec le collisionneur ci-dessus, regardez le 520, vous verrez qu'il n'y a que 530. Si je le ramasse uniquement avec ma tête, j'en ai 540. Donc 10, ce qui est bien. Et si je le ramasse sur le côté, vous y allez. Vous pouvez voir qu'il en a ajouté 20. C'est donc le problème que nous devons résoudre. Maintenant, je veux que vous preniez un moment et que vous pensiez à une solution à ce problème. Je vais donc simplement vous donner, ce n'est pas un défi, pas un défi efficace. Je vais juste vous donner un peu de temps. Ok, le temps est écoulé. Voyons donc ce que nous allons faire ici. Donc, tout ce que nous devons nous assurer, c'est que
cette prise de santé a été prise au moins une fois. Ce que nous allons faire, c'est que nous allons créer un livre privé, qui s'appellera « Pick it up ». Il a donc été repris. Et ici, nous allons dire que si c'est le joueur et qu'il n'a pas été récupéré, alors nous ajoutons le point d'exclamation, nous allons reprendre, mais nous allons également régler ce pick-up pour être vrai. Donc une fois que nous l'avons ramassé, une fois, c'est tout, nous ne pouvons plus le ramasser une autre fois. Alors, gardons ça. Revenons dans notre jeu et essayons ça. Donc on dirige le jeu, on se fait frapper par les pointes. Et puis quand on marche sur les côtés, on
y va, on en obtient 10. Donc, peu importe ce que nous essayons en ce moment, nous ne devrions jamais augmenter de 20. Alors maintenant, je passe à travers ça que tu vas sur les côtés, on en obtient toujours 10 et on n'en obtient jamais une vingtaine de plus. J'espère que ça vous plaira. J'espère que ça vous plaira. Et je n'étais vraiment pas sûr du problème résolu. Il m'a peut-être fallu environ deux à trois minutes, mais je me souviens quand j'ai
commencé ça m'a peut-être repris. Aujourd'hui, c'est pour comprendre ce qui n'
allait pas avec ces jeux ou pourquoi le grand début n'a-t-il pas été repris ? C'était il y a longtemps. Maintenant, à cause de mon expérience, je comprends les choses un peu plus rapidement et c'est ce que je veux que vous sachiez que parfois même si je sais que j'ai tellement d'expérience, je vous apprends les scores. Je fais aussi beaucoup d'erreurs et il s'est passé des
choses que je n'ai aucune idée de pourquoi, même si ce cours a réellement
créé ce jeu à l'avance et j'ai tout traversé. Mais j'ai rencontré ce problème, j'espère que ça vous plaira. J'espère que vous appréciez ma transparence et que je m' assure
toujours de vous montrer les erreurs que j'ai commises, même si certaines personnes ne l'aiment pas, ils disent que, comment un déstructuré peut-il commettre des erreurs ? Oh non, tout le monde essaie d'être parfait. Je sais que personne ne l'est. Fais-moi confiance. Tout le monde utilise Google pour déterminer quel était le problème. Et ce cas, je ne l'ai pas fait parce que je l'ai déjà rencontré et réparé à l'avance, donc j'espère que ça vous plaira. Assurez-vous de mettre en scène vos fichiers et je vous verrai dans la vidéo suivante.
62. Boutde objets aléatoires: 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.
63. Choisir des armes: Bienvenue, mes développeurs de jeux préférés. Je sais que c'est une longue vidéo, mais nous faisons beaucoup de choses. Nous apprenons beaucoup de petits trucs astucieux ici. Donc, lorsque nous lançons le jeu, vous remarquerez que nous n'avons le pistolet en ce moment et que le bras
d'arme que nous devrions utiliser le pistolet, tout fonctionne bien. Nous avons le fusil de chasse au sol. Que pensez-vous qu'il se passera quand nous l'aurons récupéré ? Alors je me suis dirigé, je l'ai ramassé. On y va. Nous pouvons voir que j'ai un fusil de chasse et nous pouvons voir la balle de ce fusil de chasse. On ne peut rien éteindre. Nous pouvons basculer entre le pistolet et le fusil de chasse, mais ne nous inquiétons pas. Tout va se passer. Tout sera réparé en temps voulu. Ne perdons donc plus de temps avec cette longue vidéo et commençons. Oh, l'affaire. Il est donc temps de mettre en place la façon dont nous récupérons nos armes. instant, la façon dont nous disposons nos armes est suffisante. Nous changeons, nous faisons tout, mais ce n'est pas comme ça que nous voulons que notre jeu fonctionne. Nous ne voulons pas simplement commencer par tous nos boutons et simplement passer
de l'un à l'autre. Nous voulons avoir une sorte de mécanique qui nous permette les
avoir ou de les acquérir d'une manière ou d'une autre. Et l'une de ces choses, c'est que nous pouvons ramasser nos armes à certains endroits et à certains niveaux. Allons-y et faisons-le. La première chose que nous allons faire c'est que nous allons entrer dans le doom player. Nous allons retirer
les armes que nous ne détenons pas. Je vais donc retirer le fusil, besoin d'ouvrir le script. Retirez donc le fusil, retirez le pistolet et revenez dans notre jeu. On y va. Maintenant, une chose dont nous devons nous assurer, c'est que nous les retirons également des armes disponibles ici. Je vais donc supprimer ces emplacements vides, sauvegarder ça, et voyons ce que nous avons ici. Bon, comme vous pouvez le voir, c'est aussi quelque chose que nous
devrons changer et je vais vous dire pourquoi. Sortons les choses du chemin. Donc, actuellement, nous réglons le pistolet actuel à un seul, puis nous réglons l'interface utilisateur de l'arme, mais un n'est pas disponible ici. Voyons donc ce qui se passe lorsque nous lançons notre jeu. Nous devrions voir que nous avons une flèche ici, et cette erreur est hors de portée. Je double-clique ici, ça m'amène à l'arme de réglage. Cela signifie que le canon actuel est hors de portée à l'intérieur des armes disponibles. Et bien sûr, c'est parce que nous réglons le courant
à un seul alors que nous n'avons qu'une seule arme. Donc, le seul index auquel nous pouvons accéder à un 0. Je pourrais régler ça à 0 si je le voulais. Mais ce qui arrive c'est que chaque fois que nous commençons le jeu, nous avons, par exemple, le fusil de chasse et le fusil, et le fusil est allumé alors que le pistolet actuel est différent de ce que je veux dire. L'index ne sera donc à sa place et c'est quelque chose que nous n'avons pas pris en charge dans la dernière vidéo. Je vais donc vous montrer ce qui se passe même si cela prendra un peu de temps à comprendre, mais pas de soucis. Je veux m'assurer que tout est bien compris et pourquoi nous faisons toutes ces choses. Donc, pistolet, fusil de chasse, fusil, appliquez les changements. Par exemple, disons que j'éteins le pistolet et que j'éteins le fusil. Alors maintenant, ce que nous devrions avoir comme fusil de chasse au début. Je vais donc faire ça. On y va. Nous avons le fusil de chasse, mais j'ai le pistolet et l'interface utilisateur. Si je clique à nouveau dessus, j'ai le fusil de chasse que j'ai le fusil. Comme vous pouvez le constater, les choses sont bizarres au début. Donc, au lieu de faire cela, ce que
nous allons faire, nous allons supprimer cela et nous allons créer une boucle for. Donc quatre et moi égaux 0, je suis inférieur au nombre de points d'armes disponibles,
compte parce que nous utilisons des listes et moi plus, plus. Et ici, je vais vérifier si l'arme disponible,
la position où j'ai pointé le point GameObject actif dans la hiérarchie, c'est-à-dire qui apparaît et avons-nous réellement choisi d'être disponible pour le joueur ? Ensuite, nous allons régler le pistolet actuel sur I.
Et de cette façon, tout devrait fonctionner parfaitement bien. Donc, si je retourne ici, j'ai le fusil de chasse. Je dirige le jeu. L'arme doit être correcte ici. On y va, fusil de chasse. Essayons ça sur le fusil. Alors, éteignez ça, lancez le jeu. Maintenant, nous devrions avoir le fusil. Et voilà, tout fonctionne correctement. Et enfin, nous avons testé
le pistolet et retirons le fusil, lancez ça. Et nous devrions avoir le pistolet. Très bien, donc tout fonctionne bien. Maintenant, je me suis un peu amusé à faire ça. Pas de soucis, mais tant que c'est impossible, car ce
sera important lorsque nous commencerons à ramasser des armes. La première chose à faire est donc de créer l'objet de ramassage avec lequel nous allons interagir. Et j'ai créé ces trois sprites ici. Et la différence entre
les sprites ordinaires et les fusils et ceux-ci, c'est que j'ai ajouté un peu de couche
blanche autour de la console. Nous pouvons les voir dans le monde entier. Je vais donc aller dans les sprites, cliquer avec le bouton droit ici, créer. Non. Créez un nouveau dossier qui
sera la sauvegarde des armes. Appuyez sur Entrée, ouvrez-le. Ou nous aurions pu ajouter aux micros, mais pas de soucis à ce sujet. Avoir plus de dossiers ne fait de mal à personne. Comme vous pouvez le constater, il y a un contour blanc autour du fusil de chasse. Donc, si je l'ajoute ici,
mettez-le sur le lecteur. Et je vais juste faire valoir tous ces 32 et les faire valoir. Appliquez les modifications. On y va. Comme vous pouvez le constater, le fusil de chasse a ce contour blanc autour de lui pour que nous puissions le voir et le travailler correctement. Ce n'était pas si important quand nous tenions l'arme parce que nous avons le joueur comme arrière-plan. Mais maintenant, nous devons nous assurer que nous pouvons voir visiblement et facilement le fusil de chasse ou n'importe quel pistolet et arme. Et si ça ne vous plaît pas, honnêtement ,
il m'a fallu une heure pour faire ça dans Photoshop. Je n'ai aucune idée à quel point c'est bon ou mauvais. Peut-être que certains d'entre vous crient au travail, mais personnellement, c'était mon meilleur. Continuons un. Donc, ce que nous allons faire ici c'est de garder ça comme fusil de chasse. Nous allons ajouter un composant. De toute évidence, ce sera le collisionneur. Donc, un collisionneur de boîte 2D. Voyons à quel point c'est énorme. Et peut-être que nous pouvons augmenter un peu
la taille sur le x et le y. Ne pas avoir à frapper l'arme entièrement adaptée pour la ramasser. Donc, juste un peu et prenez-le comme déclencheur. Nous sauvegardons cela. Et la prochaine chose que nous allons faire est évidemment un comportement. Je vais donc entrer dans les scripts, aller dans les micros, cliquer avec le bouton droit ici et créer un nouveau script C-sharp qui sera la sauvegarde des armes. Appuyez sur Entrée des armes, ramassez, attendez qu'elles soient compilées dans le pick-up du fusil de chasse. Et ouvrons le script et voyons ce que nous allons faire ici. Ok, donc la première chose dont nous avons besoin, car nous avons besoin de savoir quel pistolet ce sera. Le fusil de chasse va évidemment nous donner le fusil de chasse. Je vais donc créer un champ sérialisé ici, qui sera le système d'armes de type système urbain qui sera
l' arme réelle que nous allons ramasser. Gardez ça. Maintenant, la prochaine chose que nous voulons faire, c'est
que nous voulons pouvoir ramasser cet objet. Et avant de pouvoir réellement ajouter cet objet au joueur, nous voulons nous assurer qu'il
n'a pas déjà cet objet. Je ne veux donc pas porter une dizaine de fusils de chasse. Je n'ai besoin que d'un seul pistolet pour être disponible. Laissez-moi d'abord tomber comme ça. Allons au préfabriqué, passons aux armes, et ajoutons le fusil de chasse ici comme arme. J'espère que vous avez compris ce que je veux dire. Je ne veux pas prendre un fusil de chasse alors que j'ai déjà un fusil de chasse. Je ne veux prendre un fusil de chasse que s'il
n'est pas retenu dans mes armes disponibles. Et c'est votre défi de
regarder à travers les canons à couches. Donc, tout d'abord, vous devez créer un entrepreneur Enter et vérifier si nous sommes entrés en collision avec un joueur. De toute évidence, nous ne voulons pas que nos squelettes nous attaquent, c'était des fusils. Qui alors vous devrez créer
une variable à l'intérieur de la méthode
pour savoir si nous avons trouvé l'arme ou non sur le joueur. Vous devez passer par tous les pistolets en profondeur et vérifier évidemment si nous
portons l'arme,
vous avez pris le nom du GAN, donc nous aurons besoin du nom de l'arme et du téléphone pour
accéder au nom de l'arme et pour accéder aux armes disponibles, vous devrez créer quelques méthodes supplémentaires. Il s'agit donc d'un grand défi, d'un défi très difficile, mais je sais que vous êtes à la hauteur de la tâche. Prenez votre temps, jouez, faites des erreurs, ne vous inquiétez pas. Je serai là pour vous aider après avoir essayé. Donc, vous ne perdez rien. Mettez la vidéo en pause maintenant et partez à Alan. Kay, bienvenue. Donc, la première chose que je vais
faire est de supprimer le démarrage et la mise à jour. Je vais créer l'entrepreneur en 2D. Et ici évidemment, nous vérifions si le tag
collision.com est le joueur. Et maintenant, nous pouvons continuer. Maintenant, la prochaine chose et quelque chose ici, peut-être que nous aurions pu immédiatement faire en sorte que tous les micros aient un certain calque et qu'ils n'interagissent qu'avec la couche de lecteur qui aurait été un peu intelligente et peut-être ne pas avoir toutes ces conditions à chaque fois que nous voulons utiliser un pick-up. Donc, juste un silence, je l'ai oublié. Vous pouvez peut-être le faire vous-même. Cela dit, continuons ensuite. Que voulons-nous ? Eh bien, évidemment, nous voulons cette variable booléenne qui dira cette arme sur le joueur. Et cela sera défini sur faux. La prochaine chose que nous devons faire est de
créer une boucle foreach qui vérifie. Et ça va chercher des armes ou des armes. C'est donc le système d'armes. L'arme à vérifier. Et où recherchons-nous ces derniers ? Eh bien, nous recherchons les armes disponibles sur le joueur. Sur la manette du joueur, son objectif, il est dit ici. Nous allons donc examiner les canons disponibles, mais évidemment les armes disponibles, mais il s'agit évidemment d'un champ sérialisé. Nous ne voulons pas le rendre public et accessible à tous. Donc ce que nous allons faire, c'est ici, nous allons créer et là vous pouvez voir l'erreur que nous avons commise. Nous allons créer une liste publique de systèmes d'armes de type. J'espère que vous avez essayé ça, excusez-moi. Et nous allons appeler ça les armes
disponibles sur la couche. On y va. C'est un nom long. Et ce que nous allons faire, c'est simplement retourner les armes disponibles. On y va. Maintenant, ce que nous pouvons faire ici, et parce que nous pouvons y accéder
immédiatement à partir de la collision, que nous sommes entrés en collision avec le composant Obtenir. Et comme nous savons déjà que c'est le joueur, nous pouvons accéder à la manette du joueur. Et à partir de la manette du joueur, nous pouvons obtenir les armes disponibles sur le joueur. Super. Ce que nous avons fait ici, nous avons créé les armes disponibles dans le ghetto en ayant le simple retour, qui renvoie une liste. Et parce qu'il s'agit d'une liste, nous pouvons l'ajouter ici. Nous vérifions donc les armes à vérifier. Maintenant, comment allons-nous savoir si l'arme est là ? Ce que nous allons faire, c'est que nous allons créer une condition si. Et ici, nous allons vérifier si l'arme qui se trouve ici indique le nom de l'arme. Donc évidemment, si je vais au système d'armes, si c'est ici quelque part, le système d'armes, nous avons le nom de l'arme, mais encore une fois, c'est un champ sérialisé. Donc, tout va bien. Nous avons donc le nom d'armes, UI. D'accord. Ne vous inquiétez pas. C'est tout ce dont nous avons besoin. Oui, c'est tout ce dont nous avons besoin. Donc ici, nous allons vérifier que nom de l'
arme figure sur les armes ou non, en fait, nous n'avons pas besoin de cela. Obtenez le nom d'arme que vous êtes. Et si c'est égal à l'arme de
vérifier le point, obtenir le nom de l'arme UI. Donc peut-être que UI n'était pas le nom parfait ici pour la méthode, peut-être est-il préférable de l'appeler simplement parce que nous l'utilisons d'une manière différente. Nous pouvons double-cliquer sur créer notre R et simplement utiliser la largeur et le nom GetWidth. Appuyez sur Entrée. On y va. Maintenant, nous avons changé tout cela, même dans le système d'armes. Ici, vous pouvez voir à quel point c'est cool. Donc, contrôlez, doublez
ou , ou, si c'est le cas, cela signifie
que l'arme est déjà dans les armes disponibles. Nous allons donc mettre le pistolet sur une couche vraie. Et une fois que nous aurons fini de regarder tous les canons disponibles, nous allons le faire après cet enregistrement ici, si le pistolet V sur le joueur n'est pas vrai, donc cela signifie que c'est toujours faux. Nous n'avons pas l'arme, honnête. Ce que nous allons faire, c'est d'aller de l'avant et d'instancier l'arme sur le composant de collision dot get. Et ce sera la manette du joueur. Et pourquoi est-ce que je fais toutes ces étapes ? Eh bien, parce que je veux vraiment fabriquer cette arme. Si nous revenons ici, vous pouvez voir que l'arme est en fait un enfant du bras de l'arme. Nous devons donc faire en sorte que nous
puissions voir ici même qu'une instanciation, nous pouvons définir l'enfant. que nous allons donc faire et nous avons besoin d'une référence aux armes utilisées. Donc, si je fais défiler vers le haut et ici vous pouvez voir que nous avons un bras d'arme. Donc, tout ce qu'il faut faire défiler vers le bas et, encore une fois, créer un public. Et qu'est-ce que c'est ? C'est une transformation, je crois. Oui, dites « Transformer ». Nous devrons donc créer une transformation publique et obtenir un bras d'armes. Et nous allons simplement revenir, retourner les armes. sont. On y va. C'était donc un défi difficile, je sais, mais j'espère que vous essayez au moins de passer à mi-chemin. Alors, prends des armes. Il n'apparaît pas parce qu'il s'agit d'une transformation publique. Mettez des armes. Donc, le contrôleur du joueur a une arme. Oh, donc la manette de balle du joueur. Ok, donc le contrôleur du joueur a un bras d'arme. Et on y va, on sauve ça. Nous retournons dans notre jeu. Et voyons comment cela fonctionne. Nous avons donc l'histone et le fusil de chasse au sol. Nous prenons le fusil de chasse, l'arme disponible dessus,
sauvegardons cela , nous lançons le jeu. Et maintenant, lorsque nous nous approchons du fusil de chasse, rien ne se passe car si je double-clique ici, nous pouvons le voir, d'accord. Et à part ça, ici, on peut vérifier. D'accord. Bon retour. Pour une raison quelconque, je n'ai rien changé. Je viens de lancer le jeu maintenant et ça semble fonctionner. On y va. Vous pouvez voir que nous avons pris deux fusils de chasse. Pourquoi est-ce que c'est ? Eh bien, évidemment à cause
des deux collisionneurs que nous avons sur nous. Et ne détruisez pas ce fusil de chasse. Mais comme vous pouvez le constater, nous sommes toujours ramasser le fusil de chasse plusieurs fois, même si nous pouvons regarder à travers cela et voir que nous avons le fusil de chasse déjà honnête maintenant. Avant de continuer,
la première chose que nous devons faire est créer le booléen privé, comme nous l'avons fait dans le ramassage de la santé. Nous pouvons donc simplement copier ceci, le coller ici et dire que le pick-up est vrai chaque fois que nous prenons le pistolet. Donc, ici, c'est immédiatement vrai. Et nous vérifions également si nous n'avons pas encore pris l'arme. Comme vous le savez, c'est parce que nous
avons les deux collisionneurs sur nous. Alors sauvegardez-le dans notre jeu. Voyons comment cela fonctionne. Maintenant, nous gérons le jeu. Nous avons le fusil de chasse. Oh, et nous devons aussi détruire l'arme, excusez-moi. Et une fois que nous l'avons ramassée, si nous instancions l'arme, où est-elle pour chacune d'elles ? Ainsi, ici, vous pouvez choisir si vous voulez le détruire dans tous les cas. Je pense que nous devrions le détruire de toute façon. Donc, même si nous ne le prenons pas réellement, il n'a pas besoin d'y rester. Je vais donc détruire l'objet
dès que la couche profonde dirige cet objet. Alors, ici, lancez le jeu. Et on y va. Nous prenons l'arme, et maintenant nous avons le fusil de chasse et notre main. Comme vous pouvez le voir, le fusil de chasse tire et nous ne pouvons pas allumer et sortir les armes entre le fusil de chasse ou le pistolet. Pourquoi est-ce que c'est ? Eh bien, parce que nous n'avons pas vraiment ajouté le fusil de chasse ici dans les armes disponibles et c'est quelque chose que nous devrons corriger dans la prochaine vidéo. C'est également la raison pour
laquelle nous avons vu ici que plusieurs fusils de chasse étaient
ramassés sans que l'arme soit détruite. Ce problème sera corrigé dans la prochaine vidéo où nous
commencerons à ajouter l'arme ramassée dans les armes disponibles. Cela dit, j'espère que ça vous plaira. Assurez-vous de valider vos modifications et je vous verrai dans la prochaine.
64. Ajouter des armes préparées: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous avons commencé à ajouter le fusil de chasse, fusil et le pistolet, qui sont les armes à nos armes disponibles. Maintenant, lorsque nous lançons le jeu, vous remarquerez que lorsque nous tous, nous avons ajouté un peu de rotation, ce qui rend notre jeu beaucoup plus cool. Maintenant, quand je prends le fusil de chasse, on y va. Vous pouvez voir que j'ai le fusil de chasse dans ma main. Non seulement cela, si je vais dans le Doom Player, vous pouvez voir qu'il est déjà là. Et pas seulement cela, quand je prends le pistolet, par
exemple, on y va. Vous pouvez voir que même s'il est détruit, pas vraiment le ramasser. Et enfin, le fusil et le ramasser. Il est ici dans nos armes, dans nos armes disponibles. On peut basculer entre elle, ça fait ça automatiquement, à quel point est-ce cool ? Tous les mécaniciens sont parfaits. Alors, ne perdons plus de temps et commençons. Oh, d'accord. Alors, pendant que vous vous déplacez entre les vidéos et que vous me laissiez des critiques parce que cela m'aide beaucoup. J'ai créé deux autres armes, ramassage 14, le pistolet 14 le fusil, et évidemment c'est très facile. Tout ce que j'ai fait, c'est juste dupliquer le fusil de chasse, prendre le sprite et ajouter l'arme et le ramassage des armes. Je vais donc aller dans les Prefabs, voir et entendre les micros. Et appelons cela le dossier ou vous savez
quoi, ce qui permet aux fusils de chasse, au
pistolet, au fusil de sauver ça. Super. Maintenant, l'étape suivante consiste à commencer à ajouter le joueur aux armes disponibles. Nous devrons donc créer une méthode pour y parvenir. Et ce sera votre défi de
créer une méthode qui s'ajoute aux canons disponibles. Vous devrez donc créer une méthode qui prend un paramètre, les inconvénients à ajouter, le pistolet à ajouter ou l'arme pour ajouter ce que vous voulez appeler, doit l'ajouter à la liste des armes ou armes disponibles. Ensuite, je vais vous donner un petit indice la façon dont vous pouvez ajouter à n'importe quelle liste que vous avez et utiliser simplement l'ajout de points à l'intérieur. Vous pouvez également parcourir les documentations de Je vous ai laissé la liste de documentation sur façon de pointer vers une liste. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Comment avez-vous fait ça ? Je vais donc aller de l'avant et faire défiler vers le bas. Et ici. Et nous gardons ces méthodes seules et nous créons ici des méthodes. Ce n'est qu'un critère d'organisation pour moi, peut-être que vous avez quelque chose de différent et de différentes manières. Vide public. Ajoutez deux armes disponibles et ouvrez les supports, comme je l'ai dit, le système de bâtons et d'armes. Et nous avons l'arme à ajouter. Ouvrez les cercles ici. Et nous allons simplement obtenir le disponible, ouvrir l'annonce et nous avons l'arme à ajouter. On y va. C'est tout ce que nous devions faire. Et enfin, lorsque nous récupérons l'arme ici, nous instancions l'arme. Nous obtenons également le
composant collision get , le contrôleur de couche. Et nous ajoutons deux armes disponibles. Qu'est-ce que nous ajoutons ? Eh bien, nous voulons ajouter l'arme que nous avons créée ici. Je vais donc obtenir une référence à l'échange qui va être
de type système d'armes. Là, nous allons voir l'arme à ajouter est égale à cela. Donc, arme à ajouter, sauvegardez-la dans notre jeu. Lançons ça. Et maintenant, d'un jour à l'
autre, ils exécutent ça. Et maintenant, nous devrions voir que nous avons le pistolet et lui, ils viennent maintenant. Et enfin, nous avons le pistil. Maintenant, nous prenons le fusil de chasse pour voir que nous pouvons passer au fusil de chasse ici et que vous pouvez le voir dans les armes disponibles. Enfin, nous avons essayé de ramasser le pistolet. Comme vous pouvez le voir, nous n'avons pas le pistolet, nous n'avons que le fusil de chasse et maintenant nous prenons le fusil. Nous avons le fusil. Nous pouvons basculer entre eux. Et comme vous pouvez le voir ici, il y a eu un léger problème que vous n'avez peut-être pas remarqué. Tout d'abord, quand je lance le jeu, laissez-moi vous montrer encore une fois. Quand j'ai pris le fusil de chasse, d'accord, c'est bien. J'ai le fusil de chasse, c'était moi. Mais quand je prends le fusil, on voit que dès que je commence à tirer, nous avons tout d'
abord le pistolet et le fusil. Les deux travaillent, puis je dois
passer d' une manière ou d'une autre à l'autre pour le ramasser. C'est donc quelque chose que nous devrons réparer. Et pour ce faire, je vais revenir dans la visite. Donc, aux armes disponibles. Et ici, je vais m'assurer de
régler le pistolet actuel et ce qu'il devrait être. Alors, réglez le pistolet actuel. Et que doit-il être ? Eh bien, je vais juste l'écrire et ensuite je vais vous expliquer. Donc les armes disponibles comptent moins 2, puis je vais changer d'arme. OK ? Et au fait, changez d'arme. C'est lequel ? Lequel ? Okay, donc je change. Comme vous pouvez le constater, cela ne fonctionnera pas. Pourquoi ? Parce que le commutateur a disparu nécessite
en fait d'appuyer sur la touche Tab. Donc, si nous accédons à cette méthode et essayons d'utiliser la touche Tab, cela ne fonctionnera pas. Donc, ce que nous allons faire, c'est plutôt que nous allons extraire toute cette méthode. Cliquez avec le bouton droit ici. Action rapide et refactoring, extrayez la méthode. Et ce sera le, appelons-le simplement l'interrupteur de pistolet. Appliquez la modification, sauvegardez-la. Nous pouvons donc maintenant faire le changement de pistolet ici. Et j'espère que c'était clair pourquoi nous avons fait cela. Parce que encore une fois, cela peut juste vous montrer que nous avons des petits. Nous avons essayé d'appeler le pistolet de commutation, mais le pistolet de commutation ne
fonctionne pas à moins d'appuyer sur la touche Tab. Ce que nous allons faire, c'est que nous allons simplement extraire cette méthode ici. Donc maintenant, l'interrupteur a disparu fonctionne complètement bien. Mais la seule chose que nous
avons , c'est que nous pouvons réellement changer l'intestin, l'interrupteur du pistolet. Alors, ici, où est-ce que le vrai peut changer ? Pourquoi avons-nous le nombre de points d'arme disponible moins deux ? Voyons tout d'abord si cela fonctionne réellement. Donc, dans notre jeu, nous gérons le jeu. Et prenons le fusil de chasse. On y va. Vous pouvez voir que le fusil de chasse est la seule arme qui fonctionne. Et maintenant, quand on prend le fusil, on y va. Ce qui est juste, c'est la seule chose qui fonctionnait. Et j'appuie sur la touche juste en dehors des réactions ou essayons à nouveau. Devenez le fusil de chasse, ramasser le fusil est le seul à fonctionner. Super. Maintenant, ici, pourquoi avons-nous le nombre de points d'armes disponibles ? Réfléchissons un instant à cela. Disons que nous prenons une arme. Disons donc que nous n'avions que le pistil, que nous avions 0, que nous n'avions qu'une seule arme et que le décompte était une. Cet indice de pistolet était de 0. Disons que nous prenons le fusil de chasse. Nous prenons donc le fusil de chasse. Maintenant, le nombre est égal à 2 et nous avons le fusil à pompe en position 1. Alors, comment allons-nous nous
assurer que nous n'avons que le fusil de chasse ? Nous obtiendrions le nombre de points d'armes disponibles, qui est actuellement d'environ deux, en supprimera deux. Cela signifie que nous sommes à 0, puis nous effectuons le commutateur réel et le commutateur réel dès qu'il démarre. Si nous regardons ici, vous pouvez voir que dès que nous commençons, nous
obtiendrons le pistolet actuel plus, plus. Nous avons donc augmenté d'un et cela fonctionnera dans tous les cas. Disons donc que nous avons également ramassé le fusil. Donc maintenant, le décompte est de 33 moins deux, c'est un. Cela signifie que nous en sommes à un, c'
est-à-dire le fusil de chasse. Mais quand nous faisons réellement le pistolet de commutation, nous augmentons. Nous en avons deux et nous obtenons le fusil de chasse disponible. Je sais. C'est déroutant, n'est-ce pas ? Vous pouvez revoir ce que j'ai dit. Je suis presque sûr d'avoir tout dit correctement. C'est donc juste un moyen de s'assurer que nous obtenons toujours la bonne tasse. J'espère donc que vous avez apprécié dans la prochaine vidéo, nous voulons simplement ajouter un peu plus d'excitation, disons. Chaque fois que nous voulons prendre une arme, nous ne voulons pas seulement avoir les armes dans notre monde. En fait, nous voulons avoir non, peut-être une sorte de poitrine, de
poitrine qui s'ouvrira lorsque nous nous
approchons de lui ou que nous appuyons sur un certain bouton lorsque nous en sommes à proximité et
que l'arme apparaîtra à partir de lui. Je pense donc qu'il me reste quelques minutes dans cette vidéo. Il a été court. Ce que je vais faire, c'est que je vais chercher le ramassage du fusil ou le fusil de chasse. Et je vais créer une animation ici. Donc, pour rendre un peu plus agréable de continuer où il se trouve, cliquez ici avec le bouton droit de la souris. Créez de nouvelles armes. Sauvegarde. Appuyez sur Entrée, vous tournez l'arme, la rangée, la chose, l'arme, le ramassage. Et ce n'est rien de nouveau. Nous allons juste le faire, c'est que vous
verrez un peu pour le truc, l' arme, le ramasser, le sauver. Prends le fusil de chasse. Arrêtez l'enregistrement. Et je veux avoir une rotation vers le deuxième pour parler de ça. Oui, bien sûr. Donc 90. Et aux deuxième, deuxième, deuxième, deuxième, deuxième, la rotation devrait être d'environ 180. On y va. Ensuite, ajoutez les trois secondes. Nous devrions être à 270, près de 70 ans. Et enfin, au deuxième quatrième rang, nous en avons 362. Voyons à quoi ça ressemble. Ok, ça semble assez bien. Il s'agit donc de l'arme tournante, mais nous pouvons également faire quelques choses ici si nous les choisissons tous
avec le bouton droit de la souris et vous pouvez voir que nous pouvons créer une sorte de tangente. Nous pouvons choisir à la fois la tangente et la rendre peut-être linéaire. Maintenant, la rotation, nous allons juste changer un peu. On y va. Vous pouvez voir qu'il continue de tourner, vraiment agréable. Nous pouvons également faire la même chose et ici. Je vais donc vous laisser le reste. C'est juste une façon d'avoir un jeu un peu plus agréable. Maintenant, vous pouvez voir que nous avons ce fusil à pompe que nous allons devoir récupérer. On y va. Nous le ramassons. Tout fonctionne parfaitement bien. J'espère que ça vous plaira. J'espère que vous mettrez en scène vos fichiers et je vous verrai dans la prochaine vidéo où nous créons un qui vient d'ouvrir et de nous obtenir, nos marionnettes. On se voit alors. Vous pensiez que vous étiez débarrassé de moi, mais non, nous avons encore un peu de temps pour quelque chose et j'étais juste inquiet pour une chose que vous voudriez créer une animation pour chaque arme. Mais non, vous n'avez pas besoin d'aller ici avant le fusil de chasse. Vous pouvez simplement cliquer sur ces trois petites touches ici, ou sur des boutons ou sur ce que vous voulez appeler. Et vous pouvez voir que vous pouvez
copier l' intégralité de ce composant. Alors, quand vous le copiez, laissez-moi retourner dans le pistolet. J'ai déjà fait ce Remove Component, pièce de composants. Donc, sur le fusil de chasse ici, nous copions le composant. Nous allons dans le micro pistolet qui ne tourne pas. Nous cliquons sur n'importe quel composant que nous voulons. Et vous pouvez voir ici que nous pouvons coller le composant comme nouveau. Donc, quand je clique sur le Coller, on y va. Vous pouvez voir qu'il a maintenant le contrôleur du fusil de chasse. Et vous pourriez penser ici que ce n'est
peut-être pas une bonne idée. Nous aurions dû être appelés quelque chose de différent du pick-up de fusil de chasse, mais ne vous inquiétez pas. Ce que nous
recherchons , c'est l'animation ici, qui n'affecte que la rotation. Il ne change donc pas les sprites, cela n'affecte que la rotation d'un objet de jeu. Nous n'aurons donc pas à nous inquiéter de ce que les sprites changent et c'est un moyen plus rapide pour nous. Ajoutons ça aussi à la carabine. C'est donc un moyen très rapide pour nous d'
avoir des objets en rotation et de ne pas avoir à créer d'animations à chaque fois. Alors copiez-le, lancez le jeu maintenant, nous devrions voir que toutes les armes l'ont écrit autour. Nous y allons sans
rien changer et ils travaillent toujours comme liste. On va au fusil, on ne se fait toujours pas
ramasser parce que nous avons déjà le pistolet avec nous. Est-ce que c'est cool ? J'espère que vous avez apprécié. Désolé d'être revenu. Je sais que vous êtes déjà très agacé. Il s'agit d'une étape pour vous
épargner quelques minutes, quelques
heures, peu importe ce qu'il vous faut pour créer une animation. J'espère que vous apprécierez le levier de vous. Je vous verrai dans le prochain. Cette fois pour de vrai.
65. Créer un coffre qui Ouvre: Bienvenue, Mes développeurs de jeux préférés dans cette vidéo et cette longue vidéo, encore une fois, nous allons apprendre à créer un coffre. Mais c'est vraiment cool parce
que quand on s'en approche, on peut appuyer sur le E pour ouvrir la poitrine. Si nous appuyons sur le E, vous verrez que la poitrine est ouverte. On y va. C'est donc tout ce que nous avons fait. Donc, ne perdons plus de temps et commençons. Oh, d'accord, bon retour. Nous savons maintenant comment ramasser des armes. Nous pouvons les ajouter facilement au joueur, nous pouvons tirer avec eux. Nous mettons à jour l'interface utilisateur, tout fonctionne parfaitement, mais comme nous l'avons dit, nous voulons ajouter un peu plus de saveur à la façon dont nous obtenons ces armes. Et la façon dont nous allons le faire, c'est d'avoir des coffres et nos niveaux sur lesquels nous pouvons cliquer. Ils s'ouvrent, ils nous donnent l'arme, nous la ramassons, nous continuons notre jeu. Allons-y et faisons-le. Je vais supprimer le ramassage des trois armes. Je vais aller dans les sprites et avant de les supprimer évidemment, nous devons les avoir comme préfabriqués. Ensuite, nous allons aller dans les sprites. Nous allons cliquer avec le bouton droit de la souris ici, créer un dossier pour le coffre. Double-cliquez ici et accédez à la visite dans les ressources, faites glisser les coffres. Évidemment, si vous pouvez le trouver par leurs coffres, je vous recommande d'y aller. Je vais le rendre multiple. Je vais le faire par point. Le mode filtre va à cette fierté, s'applique évidemment. Et maintenant, allons-y et tranchons ça. Je pense que l'automatique devrait parfaitement fonctionner. Nous y allons, appliquez les modifications. Quelle boîte voulez-vous choisir ? Je vais choisir celui d'or. Donc, celui-ci et celui-là quand il s'ouvre. Nous aurons donc besoin de deux sortes de sprites ici, 140, un coffre ouvert 14, celui fermé. Je vais faire glisser et l'ajouter dans le monde juste ici et le placer sur la couche du joueur. De toute évidence, c'est extrêmement petit. Je vais donc changer cela du coffre au trésor au coffre à armes,
et allons le rendre un peu plus grand. Donc, je crois que 16 peut-être 16 est trop gros. C'est un coffre trop grand. Non, je pense que c'est assez bien. Maintenant, nous allons passer aux scripts, cliquez avec le bouton droit ou non, avons-nous quelque chose de ramassé, de niveau de flux ? Est-ce que nous avons un dossier adapté au Nope, nous n'en avons pas. Je vais donc cliquer avec le bouton droit de la souris pour créer un dossier pour les armes. Il suffit de copier ça à l'intérieur d'ici. Où sommes-nous allés ? Des armes. Mais nous sommes désolés pour cela. L'arme va bien. Pour une raison quelconque. Je viens d'ouvrir un dossier différent toute façon, nous créons ceci. Ce sont les armes, la poitrine. Appuyez sur Entrée, attendez qu'il soit compilé. Et chaque jour, nous l'ajoutons aux armes réelles, et ouvrons le script. Bon, alors qu'est-ce qu'il faut avoir ici ? Tout d'abord, nous
voulons que cela nous donne des armes aléatoires. Donc, ce que nous allons faire, et c'est juste un mécanicien que je veux avoir. Peut-être voudriez-vous créer quelque chose de différent, mais pour l'instant, le champ sérialisé, le ramassage des armes. Et ce sera
un ensemble avec les armes potentielles. Donc, les armes
potentielles, je vais créer un moteur de rendu de sprite privé. Qu'est-ce que c'est, n'est-ce pas ? moteur de rendu. Et ce sera la poitrine comme R. et vous comprendrez tout. Mais pour l'instant, continuons. Le rendu du sprite sera évidemment, nous avons besoin d'une référence à la largeur. Vous comprendrez un peu. Maintenant, je vais créer un autre champ sérialisé, vais
juste devenir un sprite. Et ce sprite va être le sprite ouvert. Ensuite, nous allons avoir une sorte de texte. Et parce que nous devons utiliser Unity Engine Wi, nous pouvons
maintenant accéder au texte et ce sera le texte de la clé ouverte. Ouvrez les textes clés. Et je ne veux pas dire par clé, la clé qui nous permettra d'ouvrir la poitrine. Eh bien, en quelque sorte, mais la touche, quelle touche faut-il appuyer sur le clavier pour ouvrir la poitrine ? Maintenant que j'y pense, peut-être pour ça qu'ils ont nommé le Key Vault. Et en privé, enfin, nous avons besoin d'un booléen pour nous assurer que nous pouvons ouvrir. Cela signifie que nous allons être
à proximité de cela. Et la poitrine. Et pourquoi avons-nous d'abord, a-t-elle demandé, pourquoi avons-nous besoin du rendu de sprite thoracique et pourquoi avons-nous besoin du sprite à poitrine ouverte ? Eh bien, parce que quand on ouvre la poitrine, on y va. Quand on voit le sprite, juste une seconde. Lorsque nous voyons que nous avons deux sprites, un pour le proche 1, 1 pour le sprites ouvert. C'est pourquoi nous avons besoin d'une référence au moteur de rendu de sprite pour changer cette luminosité lorsque nous ouvrons réellement la poitrine. Je vais donc y ajouter
le sprite à poitrine ouverte, les armes potentielles. Je vais ajouter ça et juste verrouiller ça pendant une seconde aux Prefabs. Des micros, des armes V3. Ou même si vous le souhaitez, vous pouvez ajouter l'utile. Donc, peut-être que vous recevez l'aide de la poitrine et courte, faisons-le. Ajoutons aussi la santé juste pour s'amuser. Oh, d'accord. Il s'agit donc d'un ensemble de ce que fait le système d'armes. Donc, ou désolé, les armes ramassent ou nous ne pouvons pas ajouter les souris santé. C'est quelque chose que je n'ai pas réalisé. Mais de toute façon, continuons et commençons. Nous devons obtenir une référence au moteur de rendu de sprite. Ainsi, le coffre comme r est égal
au moteur de rendu sprite du composant de dette. On y va. Nous avons donc maintenant une référence à ce sujet. Et lorsque nous ouvrons réellement la poitrine, nous voulons changer le sprite par quelque chose de différent. Avant de continuer, je me souviens du petit indice que j'ai donné dans la vidéo précédente. Nous ne voulons pas créer à chaque fois la balise si la balise est le joueur. Nous allons donc créer un nouveau calque. calques. Oh, d'accord, il faut donc enlever ça. Et nous allons créer les micros. Appuyez sur Entrée. Et maintenant où nous pouvons aller et configurer tous ces micros pour qu'ils fonctionnent ou tous ont les micros de calque. Enregistrez cela et allez maintenant dans Modifier,
désolé, Modifier les paramètres du projet. Où est-il ? physique, la 2D et les micros, tous interagissent avec le joueur. Je vais donc tout éteindre, sauf le PLR. Nous sauvegardons cela, nous y retournons. Maintenant, nous allons nous assurer que même la poitrine, nous pouvons nous assurer que
nous devrions le faire aussi comme pick-up. Il interagit donc uniquement avec un joueur et nous n'avons pas besoin de
vérifier le tag à chaque fois. Alors, qu'est-ce que ça fait aussi ? Alors maintenant, que devons-nous faire d'autre ? Eh bien, nous devons créer une toile pour ce coffre qui aura une sorte de mot ici ou des textes qui s'afficheront. Par exemple, appuyez sur E pour ouvrir la poitrine ou appuyez sur C ou autre. Je vais donc cliquer avec le bouton droit sur les armes, descendre à u i et créer une toile. Vraiment sympa. Maintenant, vous pouvez voir que nous avons une autre toile énorme. Que va-t-on faire ? De toute évidence, nous ne voulons pas que ce soit aussi grand. Donc, ce que nous pouvons faire, nous pouvons le définir comme espace mondial ici même. Et cela nous permettra de changer l'échelle ici même. Je vais donc définir l'échelle sur 0,01 sur le x, 0,01 sur le y. Et gardons simplement la valeur à 0 ou le Z à 1212 facteurs. Je vais changer la position à 0. Et vous pouvez voir à quel point la toile est petite,
ce petit carré ici. Et je vais changer le x et le y en 0. Maintenant, je double-clique sur les armes et voilà. Vous pouvez voir que nous avons la toile ici. Maintenant, je vais ajouter un autre 0 et ici, et peut-être un autre sur le Y. Ok, c'est trop petit. Et essayons peut-être de bien. C'est trop. Désolé. Et peut-être que nous faisons juste autour de 35, ok, cinq sur le y et sur le x. Excellent, donc maintenant nous l'avons, c'est réinitialiser sa position sur ces 000, peut-être augmenter le gabarit de hauteur. Et nous appellerons ça la toile de poitrine. Et comme vous pouvez le constater maintenant, c'est une toile très petite et nous devons nous assurer que c'est l' espace
mondial et qu'il s'ouvre maintenant. Et sur la poitrine Canvas, je vais créer un texto Mesh pro. Et ce texte beaucoup Pro va dire ouvert, appuyez sur la touche,
appuyez sur E pour ouvrir la poitrine et entrez cela un peu vers le bas. Rendez-le audacieux, créez la police de robot que nous avons et faites-la taille automatique. Et voyons à quoi ça ressemble. Je vais faire un zoom arrière et agrandir ça un peu. Où est la couleur du texte ? Alors que le texte de toute façon, je ne peux pas le voir. Oh, l'affaire. Ce que nous devons donc faire, c'est que nous
devons également modifier cette couche de tri. Et nous y allons, nous pouvons voir que le texte est, et ici, et je teste cela sur la 2D. Je me demandais ce qui n'allait pas. Et j'ai pensé que si nous sommes en 3D, je pourrais peut-être changer la position Z. Mais non, il s'avère que sur la toile réelle. avoir dans l'espace mondial. Vous pouvez choisir le calque de tri et nous le ferons sur la couche du lecteur. Et je vais m'assurer que c'est audacieux, de taille automatique. Et nous allons déplacer un peu le texte vers le haut, donc c'est là qu'il apparaîtra. Et je vais augmenter la taille et nous veillerons à ce que le maximum soit plus grand. Ok, alors augmentez le maximum autant que possible et nous pouvons le redimensionner à votre convenance. Combien voulez-vous, quelle taille voulez-vous le faire ? Quelle taille voulez-vous le faire ? Il revient à vous. Je vais donc le mettre en place ici, sauf ça. La prochaine chose est que nous allons entrer dans les armes, ajoutons
juste quelques collisionneurs. Le premier sera un collisionneur qui veillera simplement à ce que nous gardions les choses intactes. Et puis assurez-vous que nous ne traversons pas simplement la poitrine et ensuite nous ferons un deuxième collisionneur. Et celui-ci sera un déclencheur. Et je vais changer de taille pour être à peu près oui, donc plus grand que la boîte réelle. Ou si nous sommes dans cette position, nous pourrons ouvrir la boîte. Alors, gardez tout cela, assurez-vous que c'est un déclencheur. Maintenant, ce que nous allons faire, c'est vous poser un défi. Et votre défi est de savoir ce qu'il y a dans la boîte. Si vous connaissez cette photo, vous le savez. Si vous ne connaissez pas la référence, c'est votre problème. Ensuite, j'ai ouvert la boîte sous certaines conditions. Nous voulons donc ouvrir la boîte. Nous voulons faire pression sur l'aile. Nous devons nous assurer que nous voulons être à côté de la boîte lorsque nous l'ouvrons. Donc, lorsque nous ne sommes pas à l'intérieur de la boîte, nous ne voulons pas pouvoir l'ouvrir. Assurez-vous également d'afficher le texte lorsque nous sommes à côté de la boîte. Il faut donc avoir deux façons. Que nous soyons près de la boîte ou que nous ne soyons pas près de la boîte, nous afficherons le texte et nous pourrons ouvrir si nous sommes à côté ou non. Donc, la formation du motif avec ces conditions dans votre esprit, mettez en pause la vidéo tout de suite et procédez comme suit. Bon, bon retour. Je vais donc commencer parce que nous avons déjà perdu beaucoup de temps sur des détails et des méthodes simples. Nous sommes sur le Trigger Enter. Nous ne chercherons pas le tag joueur pour l'instant. Et nous allons nous assurer que les points
GameObject points de texte à clé ouverte sont actifs est vrai. Nous allons donc l'éteindre et ce n'est que lorsque nous serons à l'intérieur du collisionneur que nous allons ouvrir et sur la sortie 3 de la gâchette de bras, nous aurons la même chose et nous allons juste la mettre ici. Au lieu de vrai, ça va être faux. Excellent. Maintenant, la prochaine chose que nous voulons faire, c'est que nous voulons nous assurer que nous pouvons ouvrir et que c'est vrai. Et si ce n'est pas le cas
, l'ensemble peut s'ouvrir. Je fais juste de ça une parenthèse. Non, peut ouvrir z égal à vrai et peut ouvrir est égal à faux. On y va, on sauve ça. Et nous allons juste faire une mise à jour ici. Nous l'avons supprimé et nous allons juste être en train de déboguer. journal des points peut s'ouvrir égal à peut ouvrir. On y va. Nous sauvegardons cela. Quel est le problème booléen dans un objet ? Pour une raison quelconque, j'ai juste oublié tout le contexte et le monde. Bon, une fois que c'est fait, revenons en arrière et nous allons nous enregistrer. Ici. Nous gérons le jeu. Nous avons dans notre console. C'est faux, faux, faux, faux. Quand on entre dans la boîte, on
y va, on obtiendrait une erreur. Excellent. Pourquoi est-ce que c'est ? Parce que nous avons évidemment oublié de définir le résultat baisse, descend le texte. À quel point est-ce génial ? O, et nous avons également oublié de le faire, j'espère que certains d'entre vous ont pris sur cette sonde DTM. Et ce n'est pas n'importe quel texte, c'est un texte Mesh Parole Gui. Alors sauvegardez-le, revenez ici et maintenant nous devrions voir que nous ajoutons le texte, sauvegardez-le, lancez le jeu. Oh, et encore une chose, excusez-moi. Nous devons nous assurer que nous retournons le texte. Il suffit de sauver ça. Une fois encore. Faisons en sorte que cela soit un peu plus grand. Donc, nous avons faux, faux, faux peut s'ouvrir. Ensuite, on court ici, on peut ouvrir vrai. Nous avons la presse Chest E. Et enfin, la dernière étape, nous voulons une mise à jour ici. Enlevons ça. Nous savons ce qui fonctionne. Nous allons nous assurer que si le
point d'entrée descend la touche, nous ouvrons ce code de touche haut, le e. Donc quand nous appuyons sur E et que nous pouvons ouvrir, nous allons obtenir la poitrine comme sprite. Et ça va être égal au grand jour. Juste un sprite. Sauvegarde ça dans notre jeu. Maintenant, nous gérons le jeu. Nous sommes à côté de la poitrine. Si nous appuyons sur la touche E ici, non, nous ne pouvons rien faire si nous aimons juste ici. On y va. On peut ouvrir la poitrine. Est-ce que c'est cool ? J'espère que vous avez apprécié ce petit tutoriel sur la création de coffres. Dans la vidéo suivante, il y aura des armes à chaque fois que nous ouvrons la poitrine. Je vous verrai alors m'assurer de valider vos modifications. Et je vous y verrai.
66. Quoi de créer: Bienvenue, mes collègues développeurs de jeux dans cette vidéo, quand nous lançons le jeu ne sont tout simplement pas ouverts. Il s'ouvre et nous donne une cartographie aléatoire. Nous allons le ramasser et nous commencerons à tirer. Et le meilleur, c'est que si nous continuons à appuyer sur l'Ike, nous n'avons plus d'armes. Vous comprendrez pourquoi c'est une chose si incroyable à faire. Et quelques minutes, donc ne perdons plus de temps. Et commençons. K. Maintenant, nous avons l'ouverture de la poitrine. Nous voulons vraiment engendrer une sorte d'arme. Ce que nous allons faire, c'est que nous allons instancier l'une des armes potentielles. Où est-ce que c'est sur les armes juste ici. Maintenant, il y a une autre chose que nous devons prendre en considération, et c'est à ce moment que nous engendrons un de ces micros. Il est immédiatement sur la poitrine et la poitrine est solide. Ce que nous allons donc faire, c'est que nous allons créer un point d'apparition de
spam, de spam, de spam ici. Et nous appelons point d'apparition. Et on va juste le déplacer un peu vers le bas. Et c'est là que je peux simplement agrandir la situation. Et c'est là que le pistolet va
apparaître pour nous et nous allons le mettre ici. Et si vous le souhaitez, vous pouvez également ajouter à chacun de ces pistolets le pick-up, la couche D. Je pense que c'est une bonne idée car si le joueur se tient juste devant la poitrine, on ne verra même pas ce qu'était le pistolet. C'est donc une bonne idée. C'est assez facile. Il suffit d'ajouter le script. Nous le ferons peut-être plus tard. Mais pour l'instant, restons concentrés sur ce que nous avons. Nous allons dans les armes juste et ici nous allons créer un champ sérialisé supplémentaire qui est de type transformation, et ce sera le point d'apparition. Regardez-le dans Unity,
attendez qu'il se compile et que les armes soient juste là. Le point que maintenant ce que nous allons
faire , c'est ici que nous voulons créer un nombre aléatoire, ou du moins lorsque nous appuyons sur la touche créera un nombre aléatoire. Et à partir de ce nombre aléatoire, nous instancions l'un des gamètes potentiels. Je vais donc vous le lancer comme un défi, donc vous devrez dépenser les armes à ramasser. Ici. Nous devrions avoir une prise en charge. Vous devrez donc créer un nombre aléatoire. Vous devrez instancier l'une des armes potentielles. Et vous devez vous assurer qu'il est sur la position du point d'apparition. Cela étant dit, mettez en pause la vidéo dès maintenant et relancez le défi. Bon, bon retour. Donc, après avoir changé le sprite, nous allons créer un int, une arme aléatoire, un numéro d'arme, et il est égal à une portée aléatoire. Et la plage va de 0 à la longueur potentielle des points d'armes
potentielles. Et ici, nous allons aller de l'avant et instancier. Instanciate ouvre quel est l'objet ? Il s'agira des armes potentielles sur la position, numéro d'arme
aléatoire, la position du point de spam et du point de spam 0, 0, 1. Gardez ça. Et maintenant, revenons à notre jeu. Je pense que c'est tout ce que nous devons faire. Bon, revenons en arrière. Faisons en sorte que cela soit un peu plus grand. Lancez le jeu. Tenez-vous à côté de la poitrine, frappez l'aile. On y va. Est-ce que c'est cool ? Maintenant que nous avons le fusil de chasse, nous pouvons le ramasser et commencer à tirer. Il y a maintenant une autre chose que nous devons prendre en considération. Et puis je peux engendrer de l'argent, des armes que je veux, c'est quelque chose que vous pourriez penser être bon. Mais en réalité, ce n'est pas le cas. Peut-être voulez-vous avoir ça, peut-être pas. Et je vais vous donner l'
occasion de le faire vous-même. Si vous le souhaitez, mettez la vidéo en pause. ne s'agit pas d'un défi officiel. Je vais vous donner quelques secondes. pause la vidéo, découvrez comment nous pouvons arrêter cela. Oh, le temps est écoulé. Donc ici, je vais ajouter un, un autre booléen qui est ouvert. Il s'est ouvert, ouvert. Et ici, après avoir ouvert le coffre, l'ouverture est égale à vraie. Et une autre condition ici, si elle n'a pas été ouverte, sauf cela, et je veux l'ajouter à un autre endroit. Et c'est ici que nous avons remis la Vicky à la réalité. Donc, ici, je vais dire, excusez-moi, c'est beaucoup. S'il n'a pas été ouvert
, nous allons l'activer. Gardez ça. Et si nous sommes sortis, nous allons simplement le définir sur false et n'
ouvrirons jamais de compte. Nous ne voulons donc pas continuer à voir le texte lorsque nous avons déjà ouvert ce coffre. Nous gérons donc le jeu. Nous avons la poitrine. Nous l'ouvrons. Nous avons le fusil de chasse qui a essayé de s'ouvrir une autre fois. Non, nous ne pouvons pas si nous y retournons, c'est tout. Nous ne le voyons pas parce que nous avons déjà ouvert et que nous prenons notre application et nous tournons autour. Nous avons une arme incroyable qui fraie, ouvre
la poitrine, ramasse mécanicien qui fonctionne parfaitement bien. J'espère que ça vous plaira. Et si vous voulez avoir un défi supplémentaire sur le côté, créez
peut-être une sorte d'animation pour le coffre où il peut y avoir des vacillations à gauche et à droite avant qu'il ne s'ouvre. Ou je ne sais pas, peut-être ajouter une sorte d' animation
supplémentaire si vous avez besoin de trouver le coffre sur vous-même. Cela étant fait, assurez-vous de toujours valider vos modifications si vous ne l'avez pas déjà fait, vous connaissez l'exercice. Je m'aide beaucoup quand vous laissez un avis positif 1, bien
sûr, un avis sur le cours Atlas, la plateforme. Sachez que je suis l'auteur de ce cours vaut la peine d'être regardé, vaut la peine d'être montré à d'autres personnes et que j'ai rejoint la discorde évidemment, si vous ne l'avez pas déjà fait, et j'espère que cette section vous a plu. C'était vraiment sympa. Nous avons beaucoup appris. Et la prochaine, je ne suis pas sûr de ce que nous allons faire, mais je suis sûr que nous le découvrirons par eux. Ne perdons donc plus de temps et passons à la section suivante.
67. Section 11 : Musique et SFX - Parlons de musique: Bienvenue à mes collègues développeurs de jeux l'une des parties les plus excitantes. C'est peut-être un peu plus petit quand il s'agit de la longueur des vidéos. Je suis dans toute la section, mais ça fait beaucoup plus de différence dans notre jeu. Alors maintenant, quand nous lançons le jeu, vous y allez. Vous pouvez voir que nous avons en musique, nous nous promenons, nous tirons sur nos ennemis. Nous avons essayé de tuer le squelette, et pour une raison quelconque, nous mourrons. Tout mon dieu. Oh mon Dieu. Combien ressentez-vous la pression maintenant que nous avons appliqué des champs si effrayants que nous sommes morts. Non seulement nous avons l'écran noir pour vous mort, mais nous avons aussi la musique qui change sur nous, ce qui ajoute une atmosphère très effrayante. D'accord, peut-être pas tant que ça, mais vous ressentez beaucoup plus la gravité de votre mort en ce moment. Donc, sans plus tarder, ne
perdons plus de temps et commençons. Bon, il est donc temps d'ajouter un peu de musique et d'effets sonores. Bien sûr, j'adore cette partie du jeu car c'est là que nous ajoutons de la magie au jeu,
où nous le rendons un peu plus étonnant. Tout d'abord, je vais aller dans les Prefabs et je vais
juste préfabriquer les armes et les ajouter au Sure. Ajoutons-le aux micros. Pourquoi pas ? Pourquoi pas ? Ou bien les objets de niveau, peut-être que les objets de niveau
auraient été un meilleur endroit pour les mettre. Je vais donc les déplacer vers les objets de niveau. Ok, super, déplacez ça du chemin. Allons dans les actifs. Cliquons ici avec le bouton droit de la souris et créons un son. Il suffit de double-cliquer ici. Et je vais créer deux dossiers, un pour la musique et l'autre pour les effets sonores. Appelez-le simplement comme f x. Pour un certain fait, je vais aller dans les ressources. Et ici, vous pouvez voir que nous avons ces quatre musiques. Allons de l'avant et ajoutons-les tous. Je ne sais pas trop lequel nous allons utiliser, je vais
donc tous les ajouter à la musique. Attendez ça. Si cela prend trop de temps, je vais utiliser la magie de l'édition 0. Et maintenant, passons aux effets sonores. En tant que renard, je vais
tous les sélectionner , sauf ces deux-là. Je ne sais pas pourquoi ils sont toujours là, mais je vais les ajouter jusqu'
aux effets sonores et attendre ils soient ajoutés. Ok, super. Double-cliquez sur la musique et voyons ce que nous avons ici. Donc, si je clique à la volée et si j'essaie d'allumer le volume de celui-ci sur mon ordinateur, je peux l'écouter. Écoutez-en un aperçu. OK. Donc, évidemment, vous pouvez l'entendre. Maintenant, ce que nous allons faire, c'est que nous
allons jouer cette musique et notre jeu. Et c'est assez simple. Chaque fois que vous voulez jouer de la musique, vous pouvez simplement la faire glisser ici. On y va. Vous pouvez voir que maintenant, réduisons ça. Vous pouvez voir que j'ai la mouche ici. Et l'une des choses intéressantes que nous pouvons faire c'est que nous pouvons simplement partir du jeu en ce moment. Et vous pouvez voir que nous avons ici une option qui est de jouer sur éveil et la boucle. Je vais donc le mettre en boucle parce que nous ne voulons pas que la musique se termine à la fin de la chanson. Alors maintenant, quand je dirige le jeu, il ne se passe évidemment rien. Pourquoi est-ce que c'est ? Eh bien, parce que la musique n'est pas vraiment éveillée. Oh, d'accord. Il m'a donc fallu environ trois à quatre minutes pour comprendre quel est le problème. J'étais tellement confus et j'avais l'humeur de la vôtre. Alors maintenant, quand je l'éteins, quand nous lançons le jeu, on y va. Vous pouvez voir que nous commençons à jouer de la musique. Je vais juste refuser ça. Et comment jouons-nous cette musique ? Je veux que vous fassiez attention à ce que nous avons ici. Nous utilisons quelque chose appelé la source audio. Et la source audio, vous pouvez voir qu'il y a un clip audio dessus. Donc, le clip que nous allons lire une sortie dont nous parlerons plus tard lorsque
nous ajouterons un mixeur audio , nous avons la priorité , le volume, la plage,
etc. , le volume, la plage,
etc. dont nous parlerons plus tard lorsque
nous ajouterons un mixeur audio, nous avons la priorité , le volume, la plage,
etc.
vous pouvez jouer avec. Comme vous pouvez le constater, dès que nous ajoutons de la musique à notre jeu, nous pouvons la jouer immédiatement. Mais ce n'est évidemment pas comme ça que nous voulons que les choses fonctionnent. Nous voulons pouvoir contrôler tout cela. Ainsi, ici, nous pouvons voir que nous avons plusieurs vols ou essayons le vol et voyons comment cela sonne. Ou l'industrie. Et je pense que je vais utiliser cette mouche et je vais appeler ça la musique de niveau et utiliser la mouche comme musique de mort. Donc, de la musique, on y va. Vous pouvez voir maintenant que c'est la musique de niveau. Il s'appelle toujours la mouche. Et le Fly One sera le succès de la musique de la mort Enter. Et maintenant, nous avons ces deux sons. Donc, avant d'entrer dans les effets sonores, allons créer quelque chose appelé Audio Manager. Je vais donc tout d'abord enlever la mouche ici. Je vais cliquer avec le bouton droit de la souris pour créer un vide. Et ce sera un objet de jeu. Et je vais l'appeler,
je l' appelle sérieusement le GameObject, gestionnaire audio. Je vais réinitialiser sa position. Peu importe où il se trouve, mais je vais le réinitialiser dans tous les cas. Et dans les scripts ici, je vais aller dans les gestionnaires qui ont un dossier pour les managers. Non, nous ne le faisons pas. Je vais donc cliquer avec le bouton droit de la souris pour créer un script C-sharp appelé Audio Manager. Appuyez sur Entrée et cliquez avec le bouton droit de la souris, créez un dossier pour les responsables. Qu'est-ce qui n'a pas changé ? Les gestionnaires, s'il vous plaît. Responsable. Alors, oh, d'accord. Nous avons déjà un dossier Optima Managers qui supprime cela. Donc, les gestionnaires. Oh, il y avait un dossier pour les responsables. Pourquoi n'ai-je pas eu de toute façon ? Ouvrons les gestionnaires, laissons le gestionnaire audio
au gestionnaire audio et
double-cliquons au gestionnaire audio et pour voir ce que nous allons faire ici. Maintenant, l'AudioManager, quelque chose que nous allons beaucoup appeler. Je vais donc en créer une instance. Donc publique, statique ou votre instance de gestionnaire. Et je vais créer l'éveillé et l'incidence est égale à cela. Super, nous pouvons maintenant accéder
au Gestionnaire audio quand nous en avons besoin. Deuxièmement, nous avons besoin d'une variable ici qui va représenter toute la musique qui aura un champ sérialisé, le clip audio. Alors pourquoi s'agit-il d'un clip audio ? Parce que comme nous l'avons vu ici, où l'unité, lorsque nous avons ajouté la source audio qui joue notre musique, la musique ici, disons que nous ajoutons la musique de niveau. Vous verrez qu'il s'agit des clips audio, ou nous avons besoin d'une référence
aux clips audio réels que nous allons lire. Revenez donc et écoutez les clips audio et ce sera notre musique. Dans ce cas, nous ferons la première lettre de la majuscule variable. Ensuite, nous allons faire deux ou trois choses. Donc ce que nous allons faire, comme vous l'avez vu ici, s'il finit de compiler un jour à l'autre, vous vous souviendrez que lorsque nous avons ajouté la musique à notre scène, nous avons créé la source audio. Donc, pour cela, nous allons créer ou ajouter un composant qui est la source audio, mais quelque chose que je n'ai pas mentionné, et c'est comment écouter réellement ? Donc évidemment, si vous voulez
écouter de la musique, vous avez besoin d'oreilles. Vous avez besoin d'un auditeur. Et où est notre auditeur ? Bien que notre auditeur soit généralement positionné sur la caméra principale, vous pouvez voir ici agit d'un petit composant de la caméra appelé écouteur audio. Et je peux vraiment l'éteindre et l'allumer et vous pouvez voir qu'il n'a pas de propriétés. C'est juste un écouteur audio. C'est extrêmement simple. Il est toujours sur l'appareil photo par défaut, alors gardez-le là. Il fonctionne. De retour dans le Gestionnaire audio, nous avons
maintenant une source audio dessus. Et ce que nous ferons alors que nous allons
ajouter la musique que nous avons ici, la mort et le niveau. Et nous allons les ajouter ici. Et chaque fois, par exemple, nous commençons un niveau. Nous jouerons le niveau de la musique et chaque fois que nous
mourrons, nous retirerons le clip ici et ajouterons les nouvelles sourdes. Nous aurons donc besoin d'une référence à la source audio. Donc, source audio privée, et elle va s'appeler la source audio, tout simplement comme cette source. On y va. Et maintenant et commençons, nous allons obtenir la référence à la source audio est égale pour obtenir Component Audio Source. On y va. Très simple. Créons maintenant une méthode qui nous permettra d'aller avant et de jouer n'importe quel type de musique de niveau. Ce que nous allons faire, c'est que je
vais entrer ici et je vais
créer un vide public, jouer de la musique de niveau. Et je vais ouvrir ici. Ces deux-là, j'oublie toujours comment on les appelle. Et puis, ici, je vais dire que la source audio parsèment le clip. Vous pouvez donc voir le clip audio par défaut à lire ici. Clip est égal à la musique. Ouvrez les deux supports. Et ici, nous pouvons choisir la musique que nous voulons jouer. Nous pouvons donc voir ici que la musique, le premier élément est la mort, le second est l'amour de la musique. Je vais donc en choisir un ici, et ça va jouer la musique. Mais une autre chose que nous devons faire est d'aller de l'avant
et d'accéder à la source audio et aller
de l'avant et de jouer, sauf cela. Nous allons maintenant commencer à jouer cette musique. Sauvons ça. Et voyons ce que nous allons faire. Nous devons également nous assurer que
dès que nous commençons le jeu ici, nous allons de l'avant et appelons le joueur que j'appelle cela la musique au niveau du joueur. Je voulais dire jouer de la musique de niveau. Alors jouez de la musique de niveau, de niveau laïque. Gardez ça. De retour dans notre jeu. Donc maintenant, si nous regardons le Gestionnaire audio, vous verrez que nous n'avons pas de clip, mais quand nous commencerons le jeu, nous y allons. Vous pouvez voir que maintenant nous avons ce clip audio et nous pouvons courir partout. On y va. Maintenant, ce n'est évidemment pas la musique de jeu la plus excitante. Je crois que vous trouverez une meilleure chanson à jouer, mais je pense que c'est assez bon et excitant pour jouer et explorer. Donc, mais cela hors du chemin, permettez-moi d'arrêter ça. Et vous pouvez, par exemple ici, modifier la priorité. Quelle est donc la priorité entre cette source audio et une autre ? C'est trop détaillé. Nous n'allons pas entrer là-dedans. Nous pouvons modifier le volume. Par exemple, fixez-le à 0,68. Si vous pensez que la musique est trop élevée,
changez la hauteur ,
changez le panoramique stéréo , etc. Mais maintenant, par exemple, quand nous sommes morts, si je joue et que notre vie est cubique, permettez-moi de sélectionner le calque et de retirer celle-ci ici. Alors qu'ils ne nous jouent pas sur la santé des Mac. Mettons-le à 50. Lancez le jeu, et maintenant nous devrions mourir immédiatement. On y va donc. Tuez-moi, s'il vous plaît. On y va, on meurt. Mais la musique continue de cligner des yeux. Nous voulons donc trouver une solution à ce problème. Je vais vous le montrer comme un défi. Votre défi est donc de jouer le jeu sur de la musique. Cherchez donc de la musique à jouer lorsque
le joueur meurt d'un jeu d'art ouvert. Et vous pouvez également trouver beaucoup d'autres niveaux. Et je ne l'ai pas mentionné parce que je
n'ai vraiment pas pris la peine de passer beaucoup de musique. Je veux juste m'assurer que nous
comprenons le concept et que nous ne prenons pas vraiment beaucoup de chansons et que nous jouons. Vous pouvez, par exemple, entrer ici et au lieu de simplement jouer de la musique, vous pouvez ajouter ici un entier qui représentera la musique que nous devrions jouer, par exemple, puis jouer cette musique et pour tous les niveaux J'ai une sorte de musique que nous jouons. Plus tard, vous verrez comment, dans Level Manager, nous pouvons gérer tout cela. Mais pour l'instant, cherchez de la musique à jouer, surtout lorsque le joueur meurt ou que vous pouvez utiliser celle que je vous ai fournie. Créez une méthode qui joue le jeu sur chanson et appelez la méthode lorsque nous mourrons. Donc, avec ces informations, mettez en pause la vidéo dès maintenant et faites la fin peu profonde. Bon, bon retour. Comment avez-vous eu tout ça ? Donc ici, je vais aller de l'avant et jouer désolée, nul public. Jouez au jeu. Oh mon Dieu. Jeu terminé. Musique. Ouvrez le Do comme ils ont appelé. Et puis ici, la source audio, ce clip est égal à la musique 0. Et ici, je vais dire à la source audio de jouer. Alors, sauvegardez ça. Et il y a encore une chose que nous devons faire, et nous devons l'appeler chaque fois que le joueur lance un dé. Donc, si je vais voir le responsable de la santé du joueur, si je regarde ici et que je trouve où nous mourrons. Ici, vous pouvez voir allumer l'écran de la mort. Et nous avons dit que le jeu était inactif. Et nous obtenons également le gestionnaire audio, instance de points, le point, le jeu sur la musique. Gardez ça. Au fond de notre jeu. Et ici, attendez que cela soit compilé. Lancez le jeu pour la source de carburant. Maintenant, quand nous mourrons. Oui, c'est génial ? Sérieusement ? Sérieusement, prenez un moment pour apprécier à
quel point ce que nous venons de créer n'ajoute pas plus de profondeur au jeu, n'ajoute pas plus de profondeur au jeu,
n'ajoute pas plus de sentiment d'effroi de mourir. Vous vous sentez, oh mon Dieu, je viens de mourir. C'est tellement mauvais à cause du léger changement de musique. Je n'ai jamais vraiment ressenti ce sentiment quand je suis mort dans ce jeu. Maintenant, qu'est-ce que la musique
changeait avec l'ambiance changée ? J'ai l'impression que je viens de le détruire
parce que j'aime vraiment le changement de musique. J'espère que vous avez ressenti cela aussi. J'espère que vous avez apprécié et quelque chose que nous devons
faire ici lorsque nous effectuons nos changements. Et le jour maintenant, s'il vous plaît, je peux me montrer. Alors, n'importe quel jour, voyons ici que nous avons les changements engagés que nous voulons faire. Mais nous devons nous assurer d'ignorer tout ce qui se trouve sous tous vos atouts. Donc, si j'ignore tout ce qui se trouve sur les ressources, tout le monde le fait parce que nous ne voulons pas enregistrer l'audio. Il prend juste beaucoup de place et n'est pas si pratique. Maintenant, nous mettons en scène tout, commettons nos modifications et créé et tout votre manager qui joue musique ou joue de la musique
et de la musique de niveau en utilisant toute votre source. Nous y allons, nous commettons nos changements. J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo où nous
jouerons les effets sonores, ce qui est peut-être un peu plus amusant que la musique. Je vous verrai donc.
68. SFX In Unity: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons ajouté quelques effets sonores. Donc, lorsque nous lançons le jeu, vous remarquerez maintenant que lorsque nous tirons, nous avons le son de l'oiseau. Si on ouvre la poitrine, on obtient un fusil. Nous avons un son différent. Et si nous essayons de briser cela, nous y allons. Vous pouvez voir que nous avons également un effet sonore pour cela. Donc, ne perdons plus de temps et commençons. Bon, il est donc temps de jouer des effets sonores et de rendre le jeu encore plus vivant. Alors, qu'allons-nous faire ? La première chose est évidemment que nous avons besoin d'une référence à tous nos effets sonores. Donc, ici, je vais dupliquer ça. Et au lieu de la musique, je vais appeler cela les effets à Enter. Oups, n'entre pas. On y va. Nous avons donc maintenant une référence aux effets sonores. Mais il y a un problème. Si je veux utiliser la même méthode que celle que j'ai utilisée pour jouer notre musique
, nos effets sonores vont remplacer notre musique. Et c'est un non-non. Nous ne voulons pas que les effets sonores remplacent la musique. Ce n'est tout simplement pas logique. Nous avons donc quelque chose de différent que nous pouvons faire. Et c'est une méthode qui consiste à jouer un clip au point. Et je vous recommande d'ouvrir les ressources de la source audio et de
parcourir tout ce que vous pouvez trouver. Vous pouvez donc voir que vous pouvez changer le jeu en mode éveillé, le pitch, le MUX en utilisant le froid. Et c'est un cours complet à part entière. Si vous voulez accéder à la source audio, comment manipuler la musique, manipuler différents effets sonores et toutes ces bonnes choses. Mais pour l'instant, concentrez-vous sur le clip de lecture. Au point de départ. C'est comme ça que vous l'appelez. Vous avez besoin d'une position, d'un volume si vous avez besoin d'un clip. Et vous pouvez voir dans la description qu' il lit un clip audio à une position donnée dans l'espace mondial. C'est donc ce dont nous avons besoin. Mais vous pouvez voir ici que la position dans l'espace mondial , où pensez-vous la meilleure position pour jouer notre musique ? Eh bien, je vais vous dire maintenant que le meilleur endroit pour jouer est exactement sur la caméra principale, exactement sur l'auditeur. Nous pouvons donc l'entendre de la meilleure façon. Parce que je clique sur la 2D ici, nous pouvons voir que nous avons cette 3D. Et sur l'auditeur audio, si je devais voir comment cela fonctionne, comment puis-je vous montrer ? Peut-être sur le gestionnaire audio, sur une sorte de, eh bien, accord, pour l'instant, je ne vais pas vous montrer, ou du moins nous pouvons voir ça ici. C'est donc la plage dans laquelle nous jouons notre musique. Et pour l'instant, nous jouons sur la source audio, donc ce n'est pas mal. Mais si nous jouons le clip hors point et qu'il est loin de l'auditeur, nous ne pourrons pas l'entendre correctement. C'est pourquoi nous allons jouer le son sur la caméra principale. Est-ce que c'était hors du chemin ? Revenons à notre code ici. Et nous allons aller de l'avant et créer un vide public, jouer comme fax. Et cette fois, nous allons lui donner un entier qui est le numéro de télécopie. Et ici, je vais
aller de l'avant et ouvrir les crochets. Et je vais dire que la source audio, la lecture par
points, le clip, la lecture, connaissent
tous la source réelle, non pas la source audio à laquelle nous avons une référence, mais la source audio réelle. Donc celui qui a
le a comme majuscule qui joue le clip à un moment donné. Et ici, nous allons lui donner un effet sonore ou un clip audio, qui sera le numéro des effets. Bon, alors, gardez ça. Et quel est le problème ici ? Eh bien, il faut évidemment
ajouter la position et quelle est la position ? C'est la caméra principale. N'oubliez pas que nous pouvons accéder au domaine de points de la caméra, point transforme la position. Et honnêtement, je ne suis pas sûr que nous ayons couvert ça. Je vais donc juste vous dire que si nous écrivons une caméra, cette principale, nous
obtenons immédiatement une référence à la caméra principale. Et à partir de là, nous pouvons utiliser la transformation de cette position. Si nous n'avons pas couvert cela, je suis désolé, j'ai dit : Eh bien, nous le savons déjà, mais peut-être que nous l'avons déjà fait. Dans tous les cas, c'est ainsi que nous accédons à la caméra principale. Alors maintenant, allons essayer de casser des boîtes ou de ne pas casser les boîtes essayées de casser celles de Roberta. Donc, dans notre jeu, nous pouvons voir que si nous allons à la rupture, si cassable, ou s'agit-il des créances ? Nous y allons dans le brisable, si nous sommes fringants, nous avons dit que la gâchette était cassée. Par conséquent, ici, nous pouvons
appeler immédiatement ou nous pouvons aller de l'avant et créer une méthode. Disons, par exemple, la méthode va être un vide public. Jouez, cassez comme les effets. Et ici, si vous voulez. Maintenant, il y a deux types
de réflexion différents à ce sujet. Si vous le souhaitez, nous ne pouvons avoir qu'un seul son
cassable pour tous nos produits cassables. Ou si vous le souhaitez, vous pouvez aller avant et créer ici, par exemple, un entier public ou non public, le champ sérialisé est quelque chose beurre entier et ce sera
le numéro de télécopie ASA pour jouer, par exemple. Ensuite, vous pouvez choisir celui que vous jouez et vous pouvez l'envoyer ici. Accédez donc à l'instance de points du gestionnaire audio, jouez des
points en tant qu'effets et envoyé au numéro de télécopie pour la lecture. Fermez ça. Et puis, lorsque nous entrons ici, après avoir déclenché l'animation, nous pouvons aller de l'avant et jouer le break comme effets. Et on y va. C'est tout ce que nous devons faire. Ou, si vous le souhaitez, il existe un autre moyen de lire les effets sonores à l'aide de l'événement d'animation si vous le souhaitez. Donc si nous allons dans le bot vers le bot, non, acheté, le cassable acheté si nous allons aux animations, nous pouvons choisir ici d'avoir une sorte de système d'événements. Par exemple, ici on détruit, on peut jouer ça ici. Dès qu'il se brise ici, nous ajoutons cet événement d'animation. Peut-être le déplacer un peu vers la gauche. Nous jouons l'événement d'animation. Nous jouons la pause comme des effets. Et sur le robot cassable, vous
remarquerez que nous avons le numéro de télécopie que nous voulons jouer. Et si nous allons au gestionnaire audio, accord, nous avons déjà ajouté les effets sonores. Cliquez ici tous vos effets sonores, sélectionnez tous ces effets et faites-les glisser vers les effets sonores. Comme vous pouvez le constater, nous avons 12 effets sonores. L'un d'eux est le casse de la bouteille, donc c'est ce que nous allons utiliser. Alors, écoutons ça. Bon, je pense que c'est assez bien. Une cassure de bouteille en tant qu'épidémie. Quelle est donc la position sur le gestionnaire audio ? C'est le 0. Je vais donc au cassable. Je l'ai réglé exactement 0. Il nous attendait donc. Excellent. Et 0, sauvez ça. Lancez le jeu. Et nous devrions voir, oups, on y va. Et vous pouvez légèrement ici comment ça a vraiment cassé. Donc, avec tout cela, avec toutes ces façons intéressantes nous pouvons jouer des effets sonores. Je vais vous lancer un défi. Et votre défi consiste à ajouter tous les effets sonores. Trouvez donc tous les effets sonores dont vous avez besoin pour vos jeux. Tout le tir, le sang, le fusil de chasse,
le pistolet , le pistolet, tout ce que vous voulez, et appelez la méthode et tous les endroits appropriés et jouez si bien les faits sonores que hors de la route, mettez la vidéo en pause juste maintenant. Je ne ferais pas tous ces effets sonores. Je vais juste en voir quelques-uns et vous laisser le reste. Donc, avec cela, suspendez la vidéo dès maintenant et relancez le défi. Oh, d'accord, bon retour. Ce que je vais faire, c'est que je vais
entrer dans le système d'armes. Et ici, je vais
créer un champ sérialisé, qui sera entier ou entier. Et alors que la cassable, cassable, je vais juste utiliser la même variable ici, même variable basée ici. Et nous allons créer un
public ou un public quel qu'il soit, nous pouvons le rendre privé. Ça n'a pas d'importance. Vide public et jeu. effets sonores d'arme en fait. Et ici, nous allons accéder à l'ancien instance de point de
votre gestionnaire en tant qu'effets. Et nous allons lui envoyer le numéro de télécopie pour jouer, sauvegardez-le dans Unity. Examinons notre gestionnaire audio et ce que nous avons. Donc, AudioManager, voyons voir. Le pistolet jouera le fusil de course, tir du
pistolet, qui est quatre. Donc pistolet comme numéro de fax pour sauver que nous pouvons même appliquer les changements à l'arme pistolet et à tout. Appliquez les modifications. Maintenant, si je vais dans les Prefabs, si je vais dans l'endroit où en sommes-nous ? Des armes ? Fusil, et voyons ce que nous avons ici. Je vais donc vérifier le gestionnaire audio. Le son de la carabine est le sept. Donc sept, le son du fusil de chasse est le fusil de chasse. 99. Gardez ça. Et je vais rendre notre musique un
peu moins bruyante. Donc, le volume, réglons-le sur 0 pour lancer le jeu. Et maintenant, nous devrions voir que lorsque nous tirons avec le pistolet, nous n'avons pas de son pour une raison quelconque, car de
toute évidence , nous avons même oublié de l'appeler. Donc, ici, après avoir instancié la balle, on va
aussi jouer l'arme comme effets. Nous y allons, sauvegardez-le dans notre jeu. Nous gérons le jeu. Et maintenant, quand nous étions à quel point c'était cool ? Nous avons donc maintenant un pistolet en cours de tir. Voyons ce que nous avons ici. Le fusil. Vous pouvez donc voir si nous avons essayé de
filmer parce que nous sommes de l'autre côté de la caméra. C'est donc la caméra principale si nous sommes à droite. Plus on va plus loin. week-end dernier, voici les prises de vue parce que nous jouons à la position principale de
la caméra et que la caméra principale a besoin d'un peu de temps pour rattraper le joueur. Essayons donc encore une fois. Peut-être qu'on a un fusil de chasse cette fois. Est-ce que c'est cool ? Maintenant, nous avons des sons pour nos armes. Il y a beaucoup plus d'effets sonores que vous pouvez ajouter. Je ne vais pas tous les ajouter. Je vais juste le garder tel quel. Mais pour l'instant, allons-y et le préfabriqué, le gestionnaire audio. Et ajoutons-le ici à côté du joueur. Peut-être pourrions-nous même créer un dossier pour lui seul. J'espère que ça vous plaira. J'espère que vous commettez vos changements. Et je vous verrai dans la prochaine vidéo où nous ajouterons
peut-être une sorte de mixeur audio. Alors, à ce moment-là.
69. Utiliser un Mixeur audio: Bienvenue, mes développeurs de jeux préférés. Comme vous pouvez le constater, nous sommes devenus DJ dans cette vidéo, nous avons nos mixers. Maintenant, lorsque nous lançons le jeu, vous remarquerez que nous pouvons jouer avec la musique, rendre plus élevée, la réduire et nous pouvons également contrôler la puissance des effets sonores. Donc, d'accord, c'est à peine. Vous pouvez voir que lorsque nous
augmentons le son, nous pouvons mieux l'entendre. Lorsque nous diminuons le son, nous l'entendons moins. Ne perdons donc plus de temps. Et passons à mélanger 0 cas. Ajoutons donc un mixeur audio et mélangeons les choses. Pourtant, faisons le défi ou quelque chose comme ça. Quoi qu'il en soit, audio, mixeur audio, donc audio de fenêtre, mixeur audio. On y va. Nous avons la table de mixage audio ici. On va le vendre dans la scène. Et comme vous pouvez le constater, c'est une sorte d'objet. Et si nous examinons la source audio sur le Gestionnaire audio, vous remarquerez qu'elle a un critère de sortie
et qu'il s'agit d'un objet ou d'un préfabriqué du Gestionnaire audio, mais vous ne l'avez pas vu,
mais mon Unity s' est écrasé après que je J'ai terminé la vidéo. Il y a donc beaucoup de choses bizarres. Si vous voyez quelque chose de bizarre, c'est probablement à cause du crash. Quoi qu'il en soit, mixeur audio, qu'est-ce que nous avons ici ? C'est une façon de lire tout sur les mélangeurs. Mais d'une manière générale, il s'agit d'un moyen de contrôler le son de chaque audio que nous avons dans notre monde. Maintenant, nous avons la musique, nous avons les effets sonores. Nous allons donc tout d'
abord créer un mixeur. Et ce mélangeur sera le mélangeur principal. Il suffit de cliquer sur Entrée. On y va. Nous avons créé une table de mixage principale, et vous pouvez voir ici, dans les ressources, nous avons créé un objet de jeu de mixage principal ou ce que vous voulez appeler,
pas un objet de jeu et une manette de mixage audio. Ainsi, tout comme nous avons un contrôleur d'animateur, nous avons également le contrôleur de mixage principal. Et nous pouvons l'ajouter dans les Prefabs ici. Vous pouvez donc le voir clairement. La prochaine chose que nous avons, c'est que certains groupes, vues et instantanés ne vont pas entrer dans les détails, l'atténuation et tout cela. Je sais à peine ce que sont tous ces éléments. Tout ce que je sais, c'est que je peux créer un groupe ici sous les maîtres et appeler ça la musique. Ensuite, sélectionnez les maîtres. Une fois encore. Veillez à ne pas sélectionner les maîtres de sélection musicale. Et puis créez ici les faits de l'ASA. Peux-tu t'en sortir, s'il te plaît ? On y va. Ainsi, l'effet sonore, pour que vous puissiez voir le maître contrôle à la fois la musique et l'effet sonore. Ensuite, nous pouvons modifier le niveau de musique et d'effets
sonores à notre guise. Donc, si je vais dans le gestionnaire audio ici, vous pouvez voir que je peux modifier la sortie et choisir l'une de ces deux. Donc, parce que nous utilisons cette source audio 40, je vais choisir la musique. Et on y va. Nous pouvons voir que maintenant les clips audio qui sont lus à l'aide de
cette source audio utilisent la musique. Démonstrons comment cela fonctionne. Je vais donc aller dans le, où est-il ? Le volume ici ? Je vais le remettre à un. Et maintenant, quand je dirige le jeu n'importe quel jour, maintenant, tu y vas. Vous pouvez voir à quel point c'est fort, mais je peux réduire le son en mode lecture. là que tu y vas. Vous pouvez voir que je peux réduire le son à l'aide de cette table de mixage ici. Même le rendre plus haut qu'il ne devrait l'être. Gardez donc à l'esprit que c'est en mode lecture, donc quand je reviens en arrière, je dois le changer. Mais comme vous pouvez le voir maintenant, parce qu'il est lu à travers le mixeur audio du groupe et de la musique ici, cela signifie
que je peux changer les
choses et les ajouter comme je le veux. Je vais donc arrêter ça. Et on y va. Vous pouvez le constater, parce qu'il avait ce bouton rouge, cela signifie
qu'il était enregistré et qu'il l'a maintenu à un très bas niveau, 20 ou peu importe, 28 décibels. Ok, super, c'est génial. Mais maintenant, nous voulons ajouter des effets sonores. Mais comment les effets sont-ils produits ? Alors que si je lance le jeu, c'est quelque chose que nous n'avons pas géré dans la dernière vidéo. Je devrais faire une pause ? Je ne l'ai pas fait plus vite, et je
ne devrais pas faire de pause. Et voilà que tu y vas. Vous pouvez voir que c'était un seul coup que vous, et qu'il a la source audio
seule et qu'elle joue, et cela fonctionne. Mais il n'y a aucun moyen pour nous d'accéder à la source audio. Je veux dire, désolé, la sortie de cette source audio, croyez-moi, j'ai beaucoup essayé d'y accéder. Il n'y a absolument aucun moyen de le faire, mais j'ai trouvé un moyen de contourner cela. Je suis sûr que personne ne l'a jamais fait auparavant. C'est la première fois que je vois ça, mais je l'ai essayé et ça marche. Alors, faisons-le. Donc, la première chose ou la première compréhension que nous devons changer à ce sujet, c'est plutôt d'avoir simplement les clips audio. Nous allons les convertir en objets de gain. Et puis chaque fois que nous
tirons, nous allons instancier cet objet de jeu. Et puis nous allons
changer évidemment la sortie de cela, ou changer la table de mixage sur cet objet de jeu qui aura la source audio. Je pense que personne n'a rien compris. Nous allons donc montrer comment cela fonctionne et vous le verrez. Revenons donc aux effets sonores. Je vais sélectionner tous mes effets sonores. Je vais les faire glisser dans ma hiérarchie. Vous pouvez maintenant voir que chacun d'entre eux est un objet de jeu avec une source audio. Ce que je vais faire, c'est que je vais sélectionner tous ces éléments. Donc, du saut de bouteille à l'arme équipée et sélectionnez la sortie ici et
faites-la sous le mélangeur principal de l'effet sonore. Ensuite, nous irons au préfabriqué. Cliquez avec le bouton droit de la souris, créez ici un dossier qui
sera les effets saisis, ouvrez-le. Et puis, un par un, nous ferons tous un prédilection. Excusez-moi. On y va. Joueur toujours le joueur qui est touché, tir à la carabine,
courir, fusil de chasse, tir de tireur d'élite, arme équipée. Et maintenant, nous pouvons tous les supprimer et nous les avons tous comme objets de jeu. Faisons du gestionnaire audio un objet de jeu. Gardez ça. Et maintenant, nous devrions modifier la façon dont nos effets sonores sont joués dans le Gestionnaire audio. Alors, faisons-le. Je vais ouvrir le gestionnaire audio ici. Et comme nous utilisons déjà ce type de système où nous obtenons le paramètre, nous pouvons le conserver tel quel. Mais au lieu d'avoir ces effets sonores sous forme de clips audio, je vais changer cela en tableau
d'objets de jeu et l'enregistrer. Ici, nous aurons une erreur. Nous allons simplement commenter cela, sauvegarder ça. Et maintenant, dans Unity, vous remarquerez que nous
avons les effets sonores qui sont des objets de jeu. Et je vais définir cette valeur sur 0 Enter. Notre liste est donc vide. Je vais aller dans le dossier des effets sonores, et je vais verrouiller cela, les
sélectionner et les faire glisser dans l'effet sonore. Comme vous pouvez le constater, ils ont toujours le même arrangement. Nous pouvons donc changer ce que nous voulons dans le pistolet cassable, par
exemple, et tout restera le même. La mise en œuvre de la méthode restera la même. Maintenant que nous avons tout cela à l'écart, appliquons nos changements. Revenons dans le code et voyons ce que nous allons faire. Maintenant, je vais vous lancer un défi. Je pense que c'est un
huit sur dix assez solide au niveau de difficulté. Je vais donc vous donner un petit indice. Ce n'est pas un indice important, ou simplement créer un objet de jeu privé, qui sera V en tant que télécopie. Et c'est parce que nous serons des cerceaux. Plus tard, nous supprimerons cet objet de jeu et nous avons besoin d'une référence à celui-ci. Je vais donc sauver ça et je vais vous amener à relever votre défi. Votre défi consiste à instancier les effets sonores. Convertissez donc le jeu de méthode en Effets. Vous devez instancier VV. Le bon GameObject comme effets. Vous devez vous assurer que le parent est la caméra principale pour que nous écoutions correctement. Pourquoi la caméra principale ? Eh bien, évidemment parce que nous avons dit que nous voulions que l'effet sonore soit instancié auprès de l'auditeur le plus proche. Vous devez détruire l'effet sonore après un certain temps. Et nous allons utiliser quelque chose appelé l'invoque. Nous avons donc fait des coroutines, nous n'avons pas encore fait d'invocations. Et je vais juste vous montrer un peu ce que nous invoquons. Quoi qu'il en soit, c'est l'invocation ici, qui est un comportement mono. Et vous pouvez voir que vous pouvez utiliser l'appel à l' aide de la chaîne de nom de méthode et utiliser un temps de flux. Et si l'heure est définie sur 0, c'est dans le livre. Quoi qu'il en soit, pour de meilleures performances, vous pouvez utiliser des coroutines à la place, mais je voulais juste vous montrer que cela invoque fonctionne. Vous pouvez voir ici et l'exemple comment cela fonctionne. Et enfin, je vais vous donner un petit indice. Utilisez les planches à pince pendant le temps d'attente. Donc, avec ces informations, je sais que c'est l'une des vidéos les plus difficiles. Les défis, je veux dire, si vous trouvez impliqués très délicats, et même je devais le faire plusieurs fois pour que les choses soient correctes à 100%. Vous pouvez toujours utiliser des coroutines, c'est très bien. Je veux juste que vous connaissiez ou ayez cet outil dans votre propre arsenal juste au cas où vous en auriez parfois besoin. Pour éviter tout de suite, mettez la vidéo en pause et relancez le défi. Bon, bon retour. Comment êtes-vous arrivé à ça ? J'espère qu'il n'a pas fait trop chaud. Donc ici, ce que nous allons faire, c'est d'abord que
nous allons aller de l'avant et instancier. Et qu'est-ce que nous instancions ? Nous instancions le FX au numéro de télécopie qui nous a été envoyé. Et nous devons choisir le parent. Et ce parent va être la caméra, mais le Maine, et il va être transformé. Je ne suis donc pas sûr que nous ayons déjà accédé à la caméra principale. Peut-être que nous l'avons fait, peut-être pas. J'espère que ce n'était pas un défi trop difficile, mais de toute façon. C'est ainsi que nous le faisons en tant qu'enfant de la caméra de jeu, vous avez la caméra principale. Et après cela, nous allons créer une méthode ici, qui sera un vide privé. Détruire comme affecte l'objet gain. Et ici, nous allons détruire, mais qu'allons-nous détruire ? Vous voulez détruire ces effets sonores ici. Je vais donc créer un objet de jeu Via ou non, désolé, désolé pour ça. Je ne voulais pas créer l'objet du jeu. Je l'ai déjà créé. Donc v as f x sera égal à l'objet de jeu que nous avons instancié. Et nous allons détruire les effets américains. Et c'est tout ce que nous devons faire. Ensuite, nous avons l'invocation. Donc, invoquez ou non, ce n'est pas celui dont nous avons besoin et que nous invoquons, c'est celui dont nous avons besoin. Ici. Nous devons lui donner le nom de la méthode, donc je vais copier le nom de la méthode. Mais entre ces deux petites citations, puis nous avons besoin de temps et, comme je l'ai dit, nous devons utiliser le temps de l'éclipse. Alors, comment allons-nous faire cela ? Eh bien, nous pouvons utiliser les effets. Ensuite, nous pouvons obtenir le composant, qui est la source audio ou la force o. Et à partir de là, nous pourrons accéder au clip. Et à l'aide du clip, nous pouvons accéder à la longueur de ce clip. Alors, je vais garder ça, que se passe-t-il ici ? Tout d'abord, nous instancions
les effets sonores en fonction
du numéro d' les effets sonores en fonction effet sonore que nous obtenons. Nous obtenons ensuite la caméra ou nous en faisons un enfant de la caméra principale en accédant au
point de la caméra principale transformée. Je crois que nous sommes passés par là. Je ne me souviens pas où. Mais de toute façon, nous en faisons un enfant de la caméra principale. Pourquoi ? Parce que nous voulons que le son soit exactement sur la caméra principale. Ensuite, nous invoquons une méthode qui
détruira l'effet sonore après un certain temps. Parce que rappelez-vous que les objets une fois instanciés doivent être détruits. Et nous ne voulons pas que notre hiérarchie soit remplie effets
sonores que nous n'utilisons plus ni même objets de
jeu que nous n'utilisons plus. Et puis nous avons créé cet objet de jeu d'effet sonore
détruit l'effet sonore v que nous avons instancié ici. Donc, bien que la façon de sauvegarder cela dans Unity, ouvrons cela, lançons le jeu. Sauvez tout ça parce que j'ai
peur que ça ne s'écrase à nouveau. Maintenant, lorsque nous
lançons le jeu, ouvrons la caméra. On peut voir ici les principales caméras. Alors, quand nous devrions faire une pause, regardez cela. Maintenant, nous avons le tir du pistolet. On y va. Continuons donc. Vous pouvez voir que nous avons 1234 et tous. Et vous pouvez voir apparaître dans les effets sonores
que les effets sonores apparaissent. Essayons ça. Bon, on a eu le même flingue. Ne vous inquiétez pas. Essayons encore une fois. On se retrouvera peut-être. Nous récupérons encore le pistolet, s'il vous plaît. Puis-je avoir un fusil de chasse, s'il vous plaît ? Ou un fusil ? C'est assez bien. Alors maintenant, quand on tire, tu y vas. Vous pouvez voir que tous les tirs ont été instanciés ici et qu'ils sont joués. J'espère que ça vous plaira. J'espère que vous commettez vos changements et je vous verrai dans la prochaine vidéo car vous pourrez voir notre gain encore mieux maintenant avec les effets sonores. Pour ce faire, je vous verrai dans le prochain. Si vous n'avez pas déjà vu le levier, je vous verrai. Ensuite.
70. Section 12 : Types de ennemis multiples - Différents types de ennemis (conception de jeux): Bienvenue à mes développeurs
de jeux préférés une toute nouvelle vidéo. Et celui-ci, nous aurons l'introduction et l'ensemble de la vidéo ensemble parce qu'il n'y a pas besoin d'intro. Nous ne ferons aucun codage, nous ne ferons aucune unité, mais nous parlerons un aspect très important dans développement de
jeux et la conception de jeux. Nous commençons donc toujours par créer les principales caractéristiques ou la mécanique de base. Ce sont, par exemple, la marche, le saut, le tir, la visée, les balles, toutes ces choses, le noyau, la mécanique de base de notre jeu, doivent être très bien... et il est très important de les configurer correctement avant de commencer à créer d'autres choses telles que, par
exemple, les animations ou les ennemis. Pourquoi ? Parce que disons que vous en avez, je ne sais pas, bien sûr que vous avez vécu ça. Peut-être avez-vous des jeux incroyables avec beaucoup de bâtiments qui tombent et je ne sais pas, beaucoup d'ennemis effrayants. La fusillade est très mauvaise. Donc, même si n'importe quel type d'ennemi ou quelque sorte que ce soit, je ne sais pas, mettez à niveau le système que vous avez. Si le tir est ennuyeux, vous ne voulez pas jouer au jeu. Si la marche et la course sont ennuyeuses, vous ne voulez pas jouer au jeu. Il est donc important de commencer par
se concentrer sur les principales fonctionnalités de votre jeu et ensuite vous pouvez commencer à créer la deuxième chose la plus importante, qui sont, par exemple, le, je ne connais pas les ennemis, les types d'ennemis que nous allons faire, n'est-ce pas ? Ou pas, même les types d'ennemis, seulement les ennemis. C'est la deuxième chose la plus importante. Avoir des ennemis, avoir des transitions de niveau, avoir Arnaud peut-être un bon ensemble d'animations, un bon plan de niveau, par
exemple, ceux-ci sont également très importants. Imaginez un niveau incroyable, mais la marche est si mauvaise que vous ne pouvez pas en profiter. Il est donc très important de commencer par vous concentrer sur les éléments les plus importants qui sont les caractéristiques principales, puis vous concentrerez sur les deuxièmes choses
les plus importantes comme les ennemis, sprites, les animations, etc. Et puis la troisième chose la plus importante sur laquelle se concentrer, par
exemple, la variété ennemie. Je ne sais pas. Peut-être que le type d'armes que vous possédez, la couleur des balles, par
exemple, sont les troisième choses les plus importantes. L'éclairage, ce qu'il est. Donc, les choses qui rendent votre jeu un
peu meilleur, les petites mécaniques qui
ne font que peaufiner, les micros ou la santé. Ce sont toutes les troisième choses les plus importantes, les principales caractéristiques, les deuxièmes choses les plus importantes, les caractéristiques extérieures et la troisième. Nous avons donc déjà créé un très joli jeu. Nous avons nivelé la transition, nous marchons bien, nous sommes fringants. Nous avons plusieurs et plusieurs ennemis, désolé, plusieurs armes, plusieurs balles qui fonctionnent toutes différentes les unes des autres. Nous avons de bonnes animations. Nous avons les bonnes transitions du rebelle. J'ai déjà dit des transitions. Quoi qu'il en soit, nous avons créé un jeu vraiment sympa, mais il est maintenant temps de se concentrer sur le deuxième, troisième aspect le plus important de notre jeu. Et nous allons commencer par avoir différents types d'ennemis. Tout d'abord, nous aurons l'ennemi lâche. Actuellement, nous avons déjà un type d'ennemi, le squelette qui se trouve juste là. Et dès que la couche passe à une certaine portée, il commence à lancer les couteaux. Et si on s'approche trop, il commence à nous poursuivre et puis si on
s' en va, on peut reculer. Il s'agit donc d'un type. Le deuxième type est celui qui s'enfuit lorsque le joueur se rapproche et commence à tirer à distance. Le défi de ce type, c'est que nous essayons de les attaquer. Nous avons essayé de les tirer dessus. On s'approche pour obtenir un tir précis, mais il ne cesse de s'enfuir. Alors nous devons nous rapprocher et tout le temps il tire des flèches. C'est donc très ennuyeux, ce qui est un bon type d'ennemi. Et j'ai utilisé les sprites squelettes sur toutes ces pièces parce que je ne sais pas laquelle je vais utiliser ces parties que nous possédons. Ensuite, nous avons le Wanderer, qui se promène dans des directions aléatoires sans but mais poursuit le joueur s'il s'approche. Et nous allons essayer d'ajouter une sorte d'attaque malaise. Ou si le joueur est dans les environs ou le suivant, cet ennemi, il commencera à se blesser. Nous ne nous concentrerons pas beaucoup sur, principalement parce que nous allons le faire. Et dans la section boss, nous n'ajouterons pas d'attaques de mêlée à nos ennemis en ce moment, peut-être que nous allons ajouter une sorte de cercle autour de l'ennemi. Si le joueur se rapproche, vous commencez à vous blesser toutes les deux secondes. Mais l'attaque du mailer sera plus au centre de nos préoccupations. Le système de point de vente. Et enfin, nous avons le pétrole. Et ce type passe de 1 à l'autre et attaque le joueur s'il s' approche et si le joueur s'enfuit, alors il retourne patrouiller. Vous avez donc vu tous ces types d'ennemis. Celui qui s'enfuit puis tire de loin, un qui se promène sans but. Mais quand il voit le joueur, il court vers lui et tente de le tuer. Et puis enfin, nous en avons un petit qui patrouille
juste la région, roches de 1 à l'autre que nous lui donnerons un spécifique nous lui donnerons des points spécifiques qu'il devra entrer. Et quand le joueur se rapprochera, il commencera à le pourchasser si le joueur peut s'enfuir, puis ce gars retournera à sa position. Donc, avant de continuer et de vous lancer le défi, je vous ai déjà montré les ennemis que je vous ai fournis avec les ennemis dans les Ressources, vous pouvez aller de l'avant et trouver le vôtre. Évidemment, je vais créer tout le set d'animation, tous les sprites parce que nous l'avons tous déjà fait beaucoup de fois. Je ne veux donc pas continuer à perdre du temps découper des sprites et à créer des animations. Ce sont donc des choses que vous devriez être bien équipé jusqu'à présent. Si vous avez encore des difficultés,
revenez en arrière, regardez quelques vidéos peut-être là où nous créons les animations, mais je pense que nous l'avons tellement fait maintenant que vous avez une compréhension assez solide, Si vous le voulez, je vais voir comment je les ai créés aussi rapidement, comment j'ai mis en place les sprites et ainsi de suite. Mais je pense que c'est assez facile. C'est comme le premier ennemi. Je veux dire, peut-être que je vais juste le copier
et le coller et utiliser la même mécanique, presque tout. Cela dit, je vais lancer un défi avant partir et il est temps de réfléchir. Donc. Vous m'avez regardé tout le temps. Vous avez copié ce que je fais maintenant, il est temps pour vous de réfléchir. Donc. Où est-il ? Merci aux autres mouvements que vous aimeriez avoir ou ajouter à vos ennemis, utilisez des jeux vidéo auxquels vous jouez. Donc, peut-être voulez-vous une sorte d'ennemi qui disparaît et apparaîtra ailleurs. Peut-être voulez-vous une sorte d'ennemi qui se précipite vers le joueur et qui le traverse et l'endommage. Peut-être que vous voulez, je ne sais pas, à cause de choses. Même si vous ne savez peut-être pas comment créer ces mécanismes, il suffit de les noter. Pensez à utiliser votre imagination quel type d'ennemi vous aimeriez avoir, même si vous ne savez pas comment faire, c'est impératif. Vous pensez peut-être que je ne sais pas comment créer un ennemi qui disparaît. Michael, comment vais-je faire ça ? Eh bien, ne pensez pas comme ça. Pensez à ce que je veux créer un ennemi qui disparaît et je ferai tout ce qu'il faut pour y parvenir. Même si je n'ai pas toutes les informations en ce moment, vous
devrez penser à différentes attaques. Vous aimeriez avoir des ennemis. Donc, comme nous l'avons dit, peut-être que cet ennemi vous traverse et vous inflige des dégâts. Peut-être que cet ennemi lance quelque chose. Peut-être que cet ennemi saute au-dessus de vous. Peut-être cet ennemi, je ne sais pas ce qu'il fait. Peut-être qu'il crée une sorte de
tremblement de terre ou quelque chose vers vous, n'
êtes pas, utilisez votre imagination, amusez-vous, profitez. Enfin, vous pouvez aller le partager sur notre chaîne Discord. Donc, si jusqu'à présent vous ne savez toujours pas, ayez une discorde. Vous vivez peut-être sous un rocher ou quelque chose comme ça. Nous avons en fait un canal de discorde. C'est une communauté incroyable, elle grandit, je crois qu'en ce moment, nous comptons près de 200 membres. Et au moment où vous regardez cette vidéo, c'est probablement plus de 300. Beaucoup de gens regardent. Beaucoup de gens ne se contentent pas de poser des questions, mais aussi d'aider d'autres personnes. Et c'est très important, croyez-moi, quand j'ai commencé à créer des cours et à répondre aux gens, ma connaissance de l'unité est passée par le toit parce que chaque jour j'ai des gens qui me posent
des questions que même moi ne le faisons pas. Je connais la réponse à. Je vais donc faire des recherches et créer ou simuler le problème sur mon PC ,
puis comprendre quel est le problème. Et à partir de là, j'ai pu utiliser la mécanique et toute la résolution de problèmes que j'ai apprises en répondant aux élèves pour créer un jeu meilleur, meilleur et même meilleur à chaque fois. Je recommande donc la chaîne Discord, y aller, regarder certaines personnes qui sont les questions sans réponse, poser des questions et partager votre jeu. Partagez ce que vous aimeriez avoir dans votre jeu, quel type d'ennemi vous souhaitez implémenter. Vous y trouverez peut-être même des amis qui vous
aideront ensemble à créer un jeu. Nous sommes déjà vus comme trois personnes qui ont formé une équipe là-bas. Et tellement génial. Leurs noms sont marqués de fromage et une sorte de BD, je ne sais pas. Mark, Jesus et NVD travaillent donc ensemble pour créer une sorte de jeu fou. Quoi ? Je n'ai même pas essayé de me mettre dans la conversation parce que j'ai déjà beaucoup de choses dans mon assiette. Mais comme vous pouvez le constater, c'est une communauté incroyable, endroit
incroyable pour apprendre. Cela étant dit, mettez la vidéo en pause maintenant. Pensez, prenez au moins, donnez-vous au dix à 15 minutes pour écrire des choses. Amusez-vous, profitez-en. Et cela dit, je vous verrai dans la prochaine vidéo.
71. L'ennemis de de Cowardly: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et dans celui-ci, comme vous pouvez le voir, nous avons créé un petit démon flippant volant, mais cette fois, il n'est pas très courageux. Il est un peu lâche, alors il commence à s'enfuir quand on s'approche. Alors maintenant je me promène, je m'approche et comme vous pouvez le voir, il commence à s'enfuir et à nous jeter son caca, je pense, ou de la saleté ou je ne sais pas ce que c'est. Comme vous pouvez le voir, nous avons essayé de le tirer dessus. On a essayé de se rapprocher, évidemment son stock près du mur, mais on voit que lorsque nous
approchons d'une direction différente, toujours son stock sur le mur, mais pas de soucis à ce sujet. Vous voyez qu'il s'enfuit de nous. Donc, ne perdons plus de temps et commençons. Bon, comme vous pouvez le voir, j'ai créé pour plus d'ennemis, les lâches volants, moi, le gobelin émerveillant. Je ne sais pas pourquoi ça s'appelle Wonder One, mais de toute façon, c'est son nom. Et bien sûr, nous avons le squelette et enfin nous avons le champignon qui patrouille. Nous allons donc utiliser tous ces éléments dans chaque vidéo. Et comme je l'ai dit, je ne veux pas
suivre ce processus avec vous. Tout ce que j'ai fait, c'est que je viens de dupliquer le squelette, de
changer le sprite corporel , de changer l'animateur, l'animation et tout ça. Je me suis aussi assuré de changer et ici l'animation et ainsi de suite. Maintenant, ils poursuivent tous et font de même. Mais ce que nous allons faire, c'est que nous allons
enlever le lâche ou le gobelin Wanderer, le champignon patrouillant et l'ennemi squelette. Et nous allons juste faire voler le lâche moi, et c'est ce que nous utiliserons pour créer notre lâche ennemi. Donc, sans plus tarder, allons de l'avant et ouvrons le contrôle. Au fait, j'ai également créé un projectile pour chacun d'entre eux. Chacun a donc son propre projectile. Je l'ai aussi créé. Mais de toute façon,
ouvrons le contrôleur ennemi ici. Commençons par quelques chèvres. La première chose dont nous avons besoin, c'est d'aller ici et d'ajouter un peu d'espace. Et nous allons dire que ce sont les ennemis qui s'
enfuient et que cela signifie qu'ils s'enfuient. Et ici, je vais créer deux champs sérialisés qui vont être booléens pour s'enfuir. Et puis un autre champ sérialisé pour la plage de fuite flottante. Donc la plage R1 way. Et évidemment parce que nous voulons avoir une certaine portée à laquelle l'ennemi va commencer à s'enfuir. Maintenant, il y a une autre chose que nous devons ajouter car nous créons des ennemis qui devraient s'enfuir. Nous devrions également connaître les ennemis qui devraient courir après le joueur. Je vais donc en créer un autre ici, qui va être le, ou savoir ce que nous avons créé quelque chose ici. Et il a fait de l'attaquant dans la nouvelle que pourtant le joueur bouge la direction, joueur pour chasser le joueur chasse range. Ok, donc ici je vais créer ça et avoir les ennemis du joueur d'échecs, ennemis qui poursuivent la couche. Et ici, je vais également créer un champ sérialisé pour le booléen. Il va y avoir le joueur qui devrait chasser. On y va. Nous avons donc maintenant la possibilité de choisir l'une de ces deux options. Et voyons ce que nous devons faire avant de continuer. Nous devons ajouter que cela devrait chasser la condition du joueur. Alors, où l'ajoutons-nous ? Tout d'abord, nous devons l'ajouter évidemment lorsque nous donnons de la vélocité. Donc ici, nous
mettons à jour l'ennemi animateur se dirigeant vers le joueur. Nous y allons donc, nous nous dirigeons vers le joueur. Et ici, nous devons nous assurer que nous y sommes également et nous devrions chasser le joueur. Nous obtenons donc ici la direction dans laquelle le joueur doit chasser la position moins la position actuelle de l'ennemi. Et puis nous y sommes allés et nous avons dit qu'il était en train de courir après. Et ici, comme vous pouvez le voir, j'ai du code redondant. Ces deux lignes sont exactement les mêmes. Ce que je vais faire, c'est que je
vais créer une variable ici, qui va s'appeler, donc la distance est un flotteur. Nous allons donc créer un flotteur, qui sera le joueur de distance, la
distance, l'ennemi. Et cela va être égal à la distance vectorielle, et cetera, et cetera. Et au lieu de cette longue ligne, je vais dire que c'est l'ennemi de la couche de distance. Ajoutez un peu d'espace. On y va. Et maintenant double-cliquez ici, copiez-le, collez-le ici, c'est pareil, n'est-ce pas ? Donc, transformez la position, la position du point de
poursuite du joueur , exactement la même. On y va. Nous sauvegardons cela. Et ici aussi, nous devons nous assurer qu'il est poursuite et qu'il est le joueur devrait chasser. On y va, sauve ça. Et cela étant fait, continuons et voyons ce que nous avons. Maintenant, ici. Nous savons déjà ce qui se passe si nous devrions poursuivre le joueur. Mais que se passe-t-il si nous
devrions fuir le joueur ? Je vais créer une condition distincte ici, ce qui va dire. Si nous devrions nous enfuir ou si nous devrions nous enfuir. Et où est-ce que ça met fin à la distance ? L'ennemi du joueur est inférieur à la portée de la fuite. Le joueur est donc à portée de
main, puis nous allons créer la direction à suivre. Mais cette fois-ci, au lieu d'obtenir la direction du joueur vers la
position
de poursuite vers la position de transformation, ce que nous allons faire est de définir la position du point de transformation moins le joueur pour chasser le point contre joueur pour chasser ses heures, joueur pour chasser la position des points. Ce que cela va faire, c'est qu'il
créera la même direction pour aller, mais de l'autre façon. Ce sera donc négatif. Donc, au lieu de
nous diriger vers le joueur, nous allons nous éloigner du joueur. Nous allons donc sauver ça. Nous allons revenir dans notre jeu. Et voyons ce que nous avons ici. Nous devons donc changer quelques choses. Nous devons donc nous en assurer d'un jour à l'autre. Et la nouvelle mise à jour de l'unité est très, très ennuyeuse. Je n'ai pas tellement d'erreurs, autant de problèmes. J'ai eu beaucoup de crashs. Vous pouvez donc télécharger une meilleure version que la 0.3.15 F2
2020 ou quoi qu'elle soit, assurez-vous de le faire car je n'aime pas cette version. Je veux dire, regardez à quel point c'est lent de toute façon, de toute façon. Tout d'abord, c'est courir après. Nous devons le rendre privé parce que je ne veux pas le voir tout le temps. Nous n'avons pas besoin de le changer en privé. Et le mâle, l'agresseur. Et maintenant parce que nous ne le mettrons
pas en œuvre dans ce domaine, dans cette partie du cours. Enlevons-le juste pour que
nous ayons un peu plus d'espace ici. Ici, nous pouvons choisir de poursuivre le joueur et nous devons nous assurer que nous devrions nous enfuir. Et quelle est la gamme fugueuse ? Eh bien, je vais vous lancer un défi que nous sachions ce qu'est la gamme fugueuse. Et c'est pour créer un cercle bleu autour de l'ennemi ou ce qu'il veut. Trouvez donc les gadgets OnDraw dedans, créez une condition pour l'ennemi qui devrait s'enfuir. Et choisissez la couleur bleue ou n'importe quelle couleur que vous voulez et dessinez, évidemment une sphère. Et comme défi supplémentaire, veillez à ne pas dessiner de cercles inutiles. Créez donc également une condition pour la plage de chasse, par
exemple, nous ne voulons pas la voir si nous ne pourchassons pas un joueur. Donc, mettez en pause la vidéo dès maintenant et passez au chat. Bon, bon retour. Je vais donc faire défiler vers le bas et il est aussi principalement attaquant. L'attaquant était en fait utilisé ici. Ok, pas de soucis à ce sujet. Nous allons supprimer cela. Bon, donc revenez ici sur la drogue, c'est
le plus. Ici, nous pouvons voir que nous obtenons le champ de chasse du joueur. Donc, si nous devrions chasser le joueur, alors nous allons bien
sûr choisir ces deux-là et les mettre à l'intérieur du joueur. C'est également quelque chose qui devrait se trouver à l'intérieur
du champ de chasse du joueur. Ou je veux dire dans le joueur devrait chasser. On y va. Si le stand de tir est bon,
pour ça, gardons le tel quel. Et enfin, nous allons
créer une déclaration if ici, que nous dirons si nous devrions nous enfuir, alors nous allons obtenir la couleur des points gizmos et elle sera également égale à la couleur. Nous utilisons déjà le bleu, donc utilisons le jaune, le vert, le vert. On y va donc, vert. Et nous allons copier cette ligne ici parce que c'est presque la même chose, à l'exception du champ
de tir, du champ de tir, du champ de tir. Gardez ça. Supprimez les espaces supplémentaires ici. Et maintenant, nous avons un moyen mesurer la distance à laquelle nous allons fuir avec k. Nous avons la portée bleue, qui est celle du tournage. Ok, super. Et ensuite, nous avons la gamme fugueuse. Donc, quand le joueur arrive dans cette portée, l'ennemi devrait commencer à s'enfuir. Donc, c'est le jeu. Et voyons comment cela fonctionne. Maintenant, nous sommes dans le jeu. Nous nous approchons de l'ennemi. On y va, on voit qu'il s'enfuit de nous. Si j'essayais d'aller plus vite, il commence à bouger. C'est parce qu'il est lent. Évidemment, nous allons le rendre un peu peut-être plus rapide parce que c'est un ennemi volant. Alors maintenant, quand j'ai essayé de m'approcher, il ne cesse de s'enfuir. Alors hé, eh bien, et il nous a même appelés parce qu'alors que nous le poursuivons, il lance des projectiles. Honnête. Et aussi une chose que j'ai oublié de mentionner, que j'ai changé la position des cinq. Non, c'est le même endroit. Je vais faire ça sur sa tête ou peut-être, tu sais quoi, gardons ça là où c'était. Je pense que c'était bien. Quoi qu'il en soit, j'espère que ça vous plaira. J'espère que vous avez compris ce qui se passe ici parce que c'est où ? D'accord ? Donc, si nous devrions nous enfuir, au lieu de cela, nous avons la position du joueur et plus grande que la position transformée. Ou du moins pas, pas seulement plus gros dans l'autre sens. Si nous choisissons de retirer la position de transformation du joueur à la position de poursuite, nous obtenons un résultat positif, donc nous nous dirigeons vers le joueur. Si nous retirons notre position de la position du joueur
, nous nous éloignons du joueur. Cela étant fait, j'espère que cela vous plaira. Et la prochaine vidéo, nous allons créer le vagabond. Je vous verrai alors. Et n'oubliez pas, bien sûr, de valider vos changements à chaque fois.
72. Le vager.: Bienvenue à mes collègues développeurs de jeux pour honnêtement, l'
une des meilleures vidéos que j'ai jamais réalisées car c'est
l'une des rares fois où quelque chose se passe. Nous avons un bug dans le jeu, mais il s'avère en fait bien meilleur que ce qui était prévu à l'origine. C'est donc génial. Vous verrez ce que je veux dire pendant la vidéo. Mais pour l'instant, lançons le jeu. Et vous verrez que j'ai créé ce petit gobelin. Ce gobelin se promène au hasard. Vous pouvez donc voir qu'il traverse un certain point, il s'arrête, puis s'en va. Il s'arrête. Et si nous nous approchons assez, vous pouvez voir qu'il commence à courir après et lancer des bombes qui nous lancent des bombes. Ecoute, c'est cool que si on
s' éloigne de lui, on y va. Vous pouvez voir qu'il continue à se
promener jusqu'à ce qu'on revienne et qu'on se range. Et puis il commence à nous pourchasser comme si un fou était ce soir-là. Sérieusement, j'ai tellement de chance d'avoir formé ces brillants. Ils sont tellement cool. Donc, ne perdons plus de temps et commençons. Oh, d'accord, donc maintenant nous avons un ennemi lâche. Il est temps d'ajouter le merveilleux. Je vais donc aller dans mes ennemis et les préfabriqués. Et ici, je vais ajouter la patrouille, non, la covalente. On y va. Nous ajoutons donc le gobelin. Nous allons retirer la carte ou vous savez quoi ? Éteignons la volée actuelle. Peut-être que nous les ajouterons plus tard. Et ensuite, nous allons voir les gobelins. Regardez donc le gouvernement. À quel point est-il cool ? Alors il court partout, il tire sur les gens. Je ne sais pas ce que je sais ce qu'il fait. En fait, il est juste que je pense qu'il lance une bombe ou quelque chose comme ça. Mais de toute façon, il va être un merveilleux. Allons-y et on l'appelle le Gobelin Wonder One. Faisons donc de lui l'émerveillement gobelin, appliquons les changements. Bon, donc le nom est toujours le même. Quoi qu'il en soit, ouvrons nos scripts et voyons ce que nous allons faire ici. Je vais donc monter et ici je vais créer les ennemis qui émerveillent et Chase. Ou appelons-le simplement les ennemis qui s'émerveillent. Je vais donc créer un champ sérialisé. Et ça va être booléen. Et ça va être, devrait s'interroger, se
demander, se demander,
si c'est un, n'est-ce pas,
Oh, non, je vais juste m'en tenir à un. Ensuite, je vais créer un champ sérialisé pour deux flotteurs. Le premier sera la longueur Wonder. Alors, combien de temps se demande-t-il ? Wonder. Je vais le dire comme je le veux. Ensuite, nous avons la longueur du pouls. Alors pendant combien de temps a-t-il fait pause avant de recommencer à errer ? Et puis je vais créer évidemment deux choses parce qu'il semble évident que nous utilisons des compteurs ici. Je vais donc créer un flotteur privé et un comptoir d'errance. Et puis le faux compteur. Au fait, quelque chose que je crois ne pas avoir mentionné dans la vidéo précédente et le mode de jeu. J'ai désactivé tout ce qui concerne la musique, donc je me suis assuré que le son de la musique est désactivé uniquement pour des raisons de test. Nous ne voulons pas continuer à avoir de la musique de fond et quatre pour mes voisins, évidemment pour les garder sains d'esprit dans les prochains mois, jusqu'à ce que j'ai fini d'enregistrer et de nouvelles façons de revenir ici. Je n'ai plus besoin des flics de toute façon privée. Et enfin, nous devons
évidemment prendre la direction des merveilles. Ici, nous allons prendre la direction
à suivre et ce sera la direction de Wonder. Nous avons encore inséré, mais nous le ferons. Et ensuite, nous allons vérifier. Et alors que nous retirons du compteur Wonder, nous allons vérifier si, à un moment donné le compteur Wonder devient inférieur ou égal à 0. Nous allons ensuite définir quelque chose appelé compteur de pause. Et ce compteur de pause ne sera pas
seulement n' importe quel compteur de poste. Nous allons créer une plage de points aléatoires. Et ce random.randrange aura le
compteur pos fois 0,75 F, et le compteur fois 1,25. Vous vous demandez peut-être pourquoi faisons-nous cela ? Eh bien, parce que nous voulons avoir une façon très aléatoire de poser notre gain, ou nous excuser de ne pas passer notre jeu de pause à l'ennemi. Il attendra donc une
heure vraiment différente à chaque fois avant de commencer à bouger. Cela ajoutera plus de variété à sa façon de bouger. Et après notre arrivée ici, nous vérifions que le compteur de merveilles serait retiré de lui. Nous avons défini la direction. Il est maintenant temps de décider dans quelle direction nous allons prendre. Donc ici, je vais vérifier si le compteur de boss est toujours supérieur à 0. Le compteur de points de vente est supérieur à 0. Évidemment, la première chose que nous allons faire, c'est que nous allons retirer du comptoir de poste,
donc le temps du point de temps delta. Ensuite, nous allons vérifier si le compteur d'impulsions devient inférieur ou égal à 0. Ensuite, ici, nous allons faire deux choses. La première chose, c'est que nous allons choisir le compteur passé. Au lieu de cela, nous allons
fixer le compteur des merveilles. Et ce sera le bon, désolé, ce n'est pas le compteur de pause, c'est la longueur de la pause. Donc, la longueur de la pause. La durée de la pause, désolé pour ça. Et ici, au lieu du compteur de points de vente, nous allons définir la longueur des merveilles. Et la longueur des merveilles. C'était donc quelque chose que je
ne savais pas, excusez-moi pour cela. Mais ici, nous ne voulons pas seulement fixer le compteur, aussi définir la direction des merveilles. Et ce sera votre défi. Votre défi est de donner au voyageur un aléatoire, non de mettre fin au hasard. Après avoir réinitialisé le compteur, nous avons besoin d'une nouvelle direction de merveille. Vous devrez définir la direction des merveilles en tant que nouveau vecteur 3. Vous devrez définir le x et y doit être
des nombres aléatoires. Assurez-vous de conserver le z tel quel ou même mieux, vous devriez le vendre à 0. Enfin, un indice pour faire la plage comprise entre moins 1,551. Et cela vient de voir que l'ennemi ne se promène pas très loin. Donc, pour cette information, mettez la vidéo en pause dès maintenant et allez faire le Chaldéen. Bon, bon retour. Comment êtes-vous arrivé à ça ? Donc, après avoir fixé le compteur des merveilles, nous allons définir la direction des merveilles. Et la direction des merveilles, évidemment en tant que facteur trois, vous pouvez le voir ici. Nous allons donc créer un nouveau vecteur 3 et nous allons nous ouvrir. Maintenant, il est évident que l'axe ZED devrait rester le même. Nous allons donc définir une plage de points aléatoire et elle sera inférieure à 1, f moins 1,551. Ensuite, nous allons définir celui-ci pour le x, celui-ci comme pour le y. Et enfin, nous avons des zéros à la fin. Regardons donc ce qui se passe ici. Tout d'abord, nous commençons, nous vérifions, si nous nous demandons si oui, alors nous allons vérifier comme compteur de merveilles supérieur à 0, puis nous continuons sur lequel nous continuons d'en retirer le temps. Nous avons fixé la direction parce que nous nous demandons évidemment, nous voulons simplement définir la direction immédiatement. Et puis nous continuons à supprimer, faire cette boucle, à faire cette boucle, à faire cette boucle. Évidemment, à ce stade, le compteur de points de vente devrait être 0. Mais lorsque le compteur de merveilles est inférieur à 0, le compteur passé obtient une valeur aléatoire. Et puis nous rendons cette condition vraie, et celle-ci sera fausse. Nous commençons donc ici, commençons à retirer du compteur pos jusqu'à 1, nous obtenons un compteur pos qui est inférieur à 0. Nous fixons un compteur de merveilles aléatoire, et en même temps nous fixons une direction d'émerveillement. Nous avons arrêté cette déclaration si. Nous y retournons et nous commençons à supprimer. Nous avons une nouvelle direction merveilleuse que nous avons déterminée ici même au cours des dernières années. Et nous continuons à retirer jusqu'à nouveau, le compteur de merveille est inférieur à 0, un nouveau compteur de poteaux. Nous commençons celui-ci et nous continuons à faire tout cela. Mais il y a une chose que vous devez prendre en compte et c'est que nous devons initier le compteur de boss ou le compteur de merveilles. Alors, commencez. Je vais créer une condition ici. Et si nous devons nous demander, je me souviens que c'était la situation. Il faut s'interroger. Si nous devons errer, nous devons définir un compteur pos, qui est égal à une plage de points aléatoire entre la longueur du bossage à
0,75 et la longueur du bossage est égale à 1,25. On y va. C'est donc à peu près la même chose que nous avons ici. Là-haut. Nous initialisons le compteur de boss. Il attend ou l'ennemi attend un peu. Puis il se rend compte, oh, je dois commencer à emménager ici, alors que c'est ici. Donc, nous initialisons une certaine valeur, nous commençons à partir de celle-ci. Quand ça arrive à moins de 0, on commence toute la chaîne ici et il commence à courir après, je veux dire, désolé, errer. Et il y a quelque chose parce que nous voulions ajouter la poursuite à l'ennemi. abord, voyons si cela
fonctionne réellement et ensuite nous ajouterons la poursuite. Revenons donc dans notre jeu. Voyons ce que nous avons ici. Alors le gobelin se demande, mettons tout d'abord en place. Donc, gardons ces derniers qui devraient chasser. Le bleu est donc pour le projectile. Je vais peut-être
rendre le champ de tir un peu plus petit. Et puis le temps entre deux coups, gardons ça tel quel. Ça devrait s'enfuir. Non, je devrais errer. Oui. Longueur Wonder. Combien de temps se promène-t-il ? Pendant 1 seconde. Combien de temps faut-il faire une pause ? Vous savez quoi, gardons deux. Et pour sauver ça, lancez le jeu. Et voyons à quoi ça ressemble. Je vais donc y arriver mais près de lui. On y va. Vous pouvez voir qu'il est allé dans une direction aléatoire. Et voilà que tu y vas. Vous pouvez voir que toutes les deux secondes, il se promène. Là, il s'arrête là. Voyons voir. Et vous pouvez voir que ce n'est évidemment pas un ennemi très intelligent. Il marche parfois et deux murs. Il est coincé là. D'accord, donc il court après nous. là que tu y vas. Il est à portée de main. Est-ce que le tir est en train de mûrir. D'accord. Alors, oh, on y va. Il tire donc quand il est arrangé. Est-ce que c'est cool ? Maintenant, la prochaine chose que nous voulons ajouter est que si nous entrons dans le voisinage de cet ennemi, nous voulons qu'il commence non seulement à baver et à nous, mais en fait à courir vers nous parce qu'il a une bombe, c'est lourd. Il doit s'approcher de nous jeter dessus. C'est quelque chose que je viens de trouver. Alors, comment allons-nous faire cela ? Le problème ici, c'est que nous sommes soit nous avons la condition nécessaire à la poursuite, tous, nous avons la condition de l'errance. Donc, si je retourne ici et que je viens de dire le, où est-il ? Où est le petit gars ici ? L'émerveillement des gobeins, il faut aussi chasser le joueur, alors nous allons avoir le joueur chasser la portée. On y va. Donc c'est un peu, peut-être que c'est comme ça et on continue à courir après. Ok, bien sûr, faisons juste du hasard comme ça. Étrange. Voyons ce qui se passe quand il commence à nous poursuivre. Et on y va. Voyons comment cela fonctionnerait. Je m'approche donc de lui. Et comme vous pouvez le voir, chacun poursuive. Ok, donc il poursuit, puis repart et errant. Donc si je reste ici, vous pouvez voir que c'est un peu un mécanicien, mais en même temps il s'arrête quelque part. Et quoi, je suis vraiment très surpris, au
fait, son mouvement est vraiment fou et incroyable. Vous pouvez donc voir qu'il continue de courir après. À un moment donné, il recommence à errer. J'adore donc le hasard là-dedans, mais juste, juste pour comprendre comment je voulais faire le jeu ou comment mon idée de ce que je voulais faire est qu'il se demande. Mais quand le joueur est dans le champ de tir à la poursuite, alors il commence à courir après et arrête de se demander. Voyons donc à quoi cela ressemblera. Donc, ici,
vous pouvez voir que lorsque nous commençons à courir après, nous avons dit que c'était la poursuite de la vérité. Donc ici, nous devrions vérifier deux choses. Si nous devrions nous demander et où est-il ? Et nous ne poursuivons pas, donc il ne poursuit pas. Donc de retour ici, on dirige le jeu et maintenant vous
remarquerez qu'il va se demander. Nous sommes donc en dehors du champ de chasse. Il se promène, il se promène, Hopi va mon chemin. Donc, évidemment, vous pouvez voir que l'immunité aléatoire n'est pas si bonne. Vous pouvez donc voir que nous sommes à portée et que nous y allons. Vous pouvez voir qu'il nous poursuit. Il ne se contente plus de se demander, il va continuer à nous poursuivre jusqu'à ce qu'on s'en éloigne un peu. Et on y va. Vous pouvez voir qu'
il continue à errer. Maintenant, honnêtement, j'adore comment il allait juste entre errance et poursuite et son mouvement était très erratique et il n'était pas sûr de ce qui se passe. J'ai adoré ça. Si vous le souhaitez, vous pouvez le garder ainsi. Et si vous voulez la façon dont il faisait juste une pause, nous
poursuivait et quand on s'
enfuit, il continue à errer. Alors, soyez mon invité, c'est à vous de jouer. Et comme vous pouvez le voir, parfois vous venez de trouver des choses et des petits bugs dans le jeu, faire les parties intéressantes du jeu. J'espère que ça vous plaira. J'espère que vous commettez vos changements. J'espère que vous avez adoré une critique. Cela m'a beaucoup aidé. Donc si vous ne l'avez pas déjà fait, n'hésitez pas ,
audacieux peut revoir, cela m'aide
vraiment beaucoup. Sinon, je vous verrai dans la prochaine vidéo où nous allons créer le dernier ennemi qui est une patrouille profonde. voit alors.
73. Le Patroller: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et dans cette vidéo, nous allons
créer un champignon patrouillant. Alors maintenant, quand nous maximiserons le jeu et que nous lançons le jeu, vous remarquerez que si nous nous
promenons, nous trouvons que ce champignon commence à nous poursuivre et qu'on s'en va, commence
juste à se promener de 1 à l'autre, on se sent comme s'il a un nous a prédéterminés qu'il allait entrer. Comme vous pouvez le voir, il marche de 1 à l'autre. Il ne cesse de nous regarder ce que ces yeux effrayants et effrayants. Et si on s'approche, il commence à nous poursuivre et à tirer avec sa petite boîte rouge. Donc, ne perdons plus de temps et commençons. Oh, l'affaire est vendue, c'est l'heure du dernier ennemi. Et nous avons le vagabond de Copeland. Nous avons le lâche qui vole I. Et maintenant il est temps de présenter le champignon roulant. Ok, alors que fait la patrouille en champignon alors que le champignon patrouillant a
en fait quelques points où il marche. Nous allons donc ajouter quelques points. Il est donc passé de 1 à l'autre, à l'autre, au suivant à l'autre, au suivant, au suivant et ainsi de suite. Et comme il le fait, si le joueur s'approche, alors on commence à le poursuivre. Donc, et si le joueur arrive dans le champ de tir avec la portée de tir, sans entrer dans la portée de la poursuite, nous commençons également à tirer. Commençons donc. La première chose que nous allons
faire , c'est que nous allons entrer ici et nous allons ajouter une autre partie. C'est donc pour les ennemis qui patrouillent. Et ici, tout d'abord, nous allons évidemment aimer toujours créer un booléen et dire qu'il doit patrouiller, patrouiller. Je ne sais pas pourquoi j'ai oublié où se trouve le P S sur le clavier. De toute façon. Ensuite, nous continuons avec un champ sérialisé, qui est la transformation. Et c'est un éventail de points de patrouille. On y va. Enfin, nous allons créer une variable pour suivre le point de patrouille actuel. Donc, le ou les points de patrouille actuels ou je ne sais pas, c'est juste un point parce qu'il s'agit d'un entier privé. Ok, super. Maintenant, si nous descendons ici où nous pourchassons, où nous nous demandons, où nous nous enfuyons. Nous devons également vérifier si nous patrouillons. Je vais donc vous le montrer comme un défi
et votre défi est de pointer et de trouver la bonne direction. Donc, tout d'abord, vérifiez si nous devrions patrouiller. C'est assez facile. Ensuite, vous devrez déterminer la direction dans laquelle l'ennemi doit se déplacer. C'est donc la même chose
que nous avons mis fin à l'ennemi pourchasseur. Vous aurez donc besoin de la position du point, puis retirer ou d'en soustraire la position de l'ennemi réel. Mais alors, comment allez-vous
savoir quand vous en serez arrivé là ? Bien que vous ayez besoin de suivre la distance entre l'ennemi et le point vers lequel il se dirige. Et s'il est fermé autour d'une fête inférieure 0,2 F, augmentez le point de patrouille pour que l'ennemi continue à marcher. J'espère donc que vous comprenez ce que je voulais dire à proximité d'augmenter le point de patrouille. Nous allons commencer à un certain point de patrouille, puis nous allons continuer à augmenter, établissant un nouveau point de patrouille en utilisant
le point de patrouille actuel que nous avons créé. Si vous pensez que le dernier où nous augmentons le point est un peu trop dur pour vous, alors ne vous inquiétez pas. au moins essayé de faire les trois premiers. Je connais le dernier comme j'ai un peu dur, mais si vous vous sentez à la hauteur, allez à la Chaldéenne. Bon, bon retour. C'était l'un des défis les plus difficiles que je connaisse. Je l'admets. Ici, nous allons
créer si nous devrions patrouiller. Alors que c'est alors que nous allons définir la direction à suivre. Et ce sera égal à des
points de patrouille sur le point de patrouille actuel. Mais la position moins la transformation de la position actuelle du point ennemi. Ensuite, nous allons aller de l'avant et créer un, ou savoir quoi, gardons ça ici. La distance vectorielle à 3 points, c'est la distance entre la transformation de cette position et la position du point de patrouille. Copiez ça, collez-les ici. Donc maintenant, nous avons la distance, et si cette distance est inférieure à 0, donc nous devons d'
abord appeler cela le vecteur trois nano,
en fait, désolé, désolé, c'est un flotteur. Et la distance et le point me sont égaux à la distance du vecteur 3. Donc, si le point ennemi de distance est inférieur à 0,2 F, il est
donc très proche. Nous ne voulons pas avoir exactement 0. Nous voulons commencer à passer au point suivant. Dès que nous arriverons au premier, nous allons augmenter d'un point de patrouille actuel. Ensuite, nous allons vérifier si nous sommes au dernier point de patrouille actuel ou
si le point neutre actuel est plus grand que les points de patrouille, la longueur des points de
patrouille, alors nous allons redéfinissez le point de patrouille actuel à 0. Donc, vous savez, quand nous
n'avons qu'une seule ligne sous la condition if
, nous pouvons simplement la mettre comme ça, sauf cela. Que se passe-t-il ici ? Nous vérifions, devrions-nous patrouiller ? Oui, bien sûr, nous obtenons la direction qui est le point de patrouille de position moins la transformation. Nous, tout comme nous pourchassons le joueur, nous gardons une trace de la distance. Lorsque cette distance est inférieure à 0,2, nous augmentons le point de patrouille. Cela signifie que nous commençons à nouveau la mise à jour jusqu'ici. Cela augmente d'un, nous obtenons un nouveau point de patrouille. Ils se transforment, la position est supprimée ,
on obtient la distance,
on vérifie est-ce que quand on arrive au dernier, on commence à revenir en arrière. Nous sauvegardons cela et allons tout mettre en place. Je vais donc y aller, où est-il ? Ici ? Attendez que le script soit compilé, et ce type est chalutier. Il faut donc patrouiller. Maintenant, allons de l'avant et créons quelques points. Il s'agit maintenant d'une question de débat. Ce que j'aime faire, c'est juste avoir les points de patrouille ici. donc avec le bouton droit sur Créer. Et pourquoi s'agit-il d'un point de débat ? Bien que principalement parce que vous voulez avoir pour chaque niveau ses propres points de patrouille. Par exemple, vous pouvez le créer à l'intérieur de la pièce. Vous avez donc la porte, les ennemis et les points de patrouille, ou vous pouvez simplement les ajouter à l'ennemi de patrouille réel. Et puis à chaque fois que vous le mettez dans un nouveau niveau, vous patrouillez soudainement pointes vous-même. C'est à vous de choisir. Je vais appeler cette patrouille DV, désolée, points de contrôle. Et puis je vais créer un objet de jeu vide ici. Ce sera le premier point de contrôle. Donc Patrouille 0. Et pourquoi est-ce que j'ajoute ces crochets ? Eh bien, parce que maintenant, lorsque je duplique celui-ci, j'ai celui qui se trouve immédiatement à l'intérieur de ceux-ci. C'est donc un truc vraiment cool. Mettez-le ici. Envoyez le deuxième ici. Le troisième ici, celui-ci ici, celui-ci ici, celui-ci ici. Et on y va. Je pense que c'est assez de points pour aujourd'hui. On y va donc. Nous commençons par 12345678, puis nous revenons au départ. Et maintenant, je vais voir l'ennemi qui patrouille. Je vais l'enfermer. Je m'assurerai de le savoir avant d'appliquer les modifications, laissez-moi simplement tout définir dans les Petro Points, sauf cela. Appliquez les modifications, lancez le jeu. Et je ne veux pas maximiser parce que je veux faire un CV, je veux vraiment regarder ici. Alors lancez le jeu. Voyons à quoi ça ressemble. Alors, tu y vas. Il commence à marcher. Et il continue de marcher. fille. Donc, je ne fais rien de très intelligent. C'est parce que je pense que nous devrions suivre le point actuel. Je vais donc rendre cela public
quelques secondes pour que nous sachions ce qui se passe. Donc, C, lancez le jeu et nous sommes à 0. Il va à, devrait aller au 0, où est-il ? Je vois, oh, ouah, donc il y a un problème et quel est le problème que vous pourriez poser ? Eh bien, le problème évident, c'est votre point de patrouille, n'est-ce pas ? Si je déplace l'ennemi. C'est donc quelque chose de très maladroit pour moi. Le point de patrouille se déplace avec l'ennemi. Pourquoi ? Parce que l'ennemi est désormais parent des points de patrouille. Donc, mon derrière intelligent va le mettre à l'intérieur des pièces. Oui. Préfabriqués ouverts. Nous n'en voulons plus. OK. Maintenant, vous allez me faire
faire beaucoup de choses, n'est-ce pas ? Cliquez avec le bouton droit de la souris sur préfabriqué, décompressez complètement. Maintenant, nous pouvons déplacer ça dans les chambres et maintenant, oh, attendez une seconde. Patrouille. OK. Nous déballons les points de patrouille, les
fixons pour la salle. Désolé pour ces gars. C'était une énorme erreur. Je pense que cette erreur ne doit pas être pardonnée. Sérieusement, cela ne serait pas pardonné. Alors maintenant, nous allons aller, où est-il, l'ennemi patrouillant ? Si vous pouvez voir ici, si nous double-cliquons sur lui, le préfabriqué a ceci. Ce que nous allons faire, c'est que nous allons supprimer le champignon patrouillant, puis créer à nouveau le nôtre. On y va donc. Maintenant, lorsque nous lançons le jeu, nous devrions voir un système de patrouille bien meilleur. On y va. Vous pouvez voir qu'il va au premier dès qu'il y arrive, on y va. Quand il passe au point suivant où toute la patrouille pointe le deuxième, le troisième. Maintenant à ce point et regardez, dès qu'il y est arrivé, il a commencé à aller au dernier point, il tire des flèches. Nous sommes sur le chemin. Il essaie de nous pousser, mais nous sommes coincés sur ce que c'est. Je m'éloigne donc. Évidemment, ce n'est pas l'ennemi le plus intelligent du monde, donc il
se lancera dans les choses dont vous avez besoin pour s'assurer de mettre les points de patrouille de manière à ne pas rencontrer d'objets solides ou d'obstacles. Comme vous pouvez le voir, il se promène, il nous tire dessus, et il a traversé son point de patrouille approprié. Maintenant, évidemment, vous remarquerez cela, quelque chose que ces pointes se rendent sur l'ennemi, ce que nous ne voulons pas. C'est pourquoi tout le temps que je
mettais chaque objet de jeu comme la santé, comme les pics sur la couche de joueur, c'était très mal. Nous devrions les définir sur un objet de niveau. C'est assez facile à réparer plus tard. Mais juste pour que vous sachiez que
ce n'est pas quelque chose que nous voulons faire avec cela, nous allons revenir ici. Et une chose que nous voulons faire, c'est comme pour l'ennemi errant. Nous voulons également poursuivre le joueur. Donc, ici, et si nous ne pourchassons pas, et si ce n'est pas le cas, nous avons patrouillé. Et ici, nous pourchassons le joueur. Je devrais chasser le joueur. Que choisissons-nous ? Désolé, donc la patrouille de champignon devrait chasser le joueur. Et c'est aussi ce qui était le 10 jaune ? Le jaune devait donc continuer à courir après le joueur. Tellement rouge, jaune. Et voyons voir, gardons ça. Lançons le jeu qui a essayé de l'avoir JSON. Alors agrandissons la fenêtre du jeu. On se promène donc. Nous sommes à côté de lui. On y va. Vous pouvez voir qu'il commence à nous poursuivre et à
tirer les petites balles sur nous. Pour une raison quelconque, ils ne tournent pas correctement. J'ai l'impression que quelque chose ne va vraiment pas avec les balles. Peut-être. Je ne sais pas. Je vois. Oui, oui. Bien sûr, il y a quelque chose qui ne va pas avec les balles. Donc même si quand nous sortons de portée, il continue de patrouiller, puis quand nous sommes proches, il nous tire dessus. Il est donc évident qu'il y a un problème avec la position du feu. Je pense qu'il frappe la tête de l'ennemi. Il interagit avec elle. Je ne sais pas trop quel est le problème, mais pour l'instant, c'est quelque chose que nous devrons
régler extrêmement rapidement. Donc je ne sais pas, peut-être que nous avons un problème ici. Mais l'essentiel ici, c'est que nous voulions créer la mécanique du pétrole. Avec cela, j'espère que vous apprécierez, j'espère que vous vous êtes amusé à créer différents types d'ennemis. Maintenant, notre gain prend vraiment forme. Comme vous pouvez le constater, nous avons maintenant la mécanique de base. Nous avons plusieurs ennemis qui se déplacent de différentes manières. Et évidemment, les jeux comme ceux-ci qui sont si étonnants et amusants ont besoin de quelque chose appelé menu principal , menu de pause et transitions entre eux. C'est donc ce que nous pourrions faire dans la prochaine section. En dehors de ça, j'espère que ça vous plaira. Assurez-vous de valider vos modifications et je
vous verrai dans la prochaine.
74. Section 13 : Système de cadeaux et argent - Créer de l'argent (Bitcoin): Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons créé de l'argent, alors commençons. Quand je dirige le jeu. Vous pouvez voir que j'ai 0 Bitcoins. Si je touche le GKE, j'en ai 20, 40, 60, puis je peux également les retirer de mon inventaire. Ce n'est rien de très spécial. n'y a rien à la vidéo des liquides de refroidissement, sauf le symbole vraiment beau ici même du gestionnaire de jeu. Ne perdons donc plus de temps et passons à créer de l'argent. Donc maintenant, nous avons des ennemis,
maintenant que nous avons des armes, tout est prêt. Donc maintenant, nous avons des ennemis, Il est temps de trouver de l'argent sain. Nous devons gagner de l'argent. Donc, et je crois à la dernière vidéo, je vous ai dit que nous allons créer des menus. Désolé pour cette honnêteté. Je ne me souviens pas vraiment de ce que nous avons. Je passe juste d'une vidéo à l'autre. De toute évidence, je sais tout le temps ce que je fais. De toute évidence, je sais où nous nous dirigeons. Mais de toute façon, continuons. Nous avons le gestionnaire de niveau et c'est là que nous
voulons garder une trace de l'argent dont nous disposons. Donc, tout d'abord, nous allons créer ici une variable qui sera un champ sérialisé, et ce sera la fin des pièces actuelles. Ok, donc c'est ici que nous aurons nos pièces actuelles. Et maintenant, c'est votre travail de créer deux méthodes pour obtenir et dépenser les Bitcoins. Vous allez donc créer deux méthodes. Un qui ajoute, je devrais changer cela, vous savez quoi, laissez-moi vérifier ou aucun électron ne changera cela en Bitcoin. Créez donc deux méthodes. Un qui ajoute des pièces de bits, un qui supprime les Bitcoins. Ensuite, chacun doit prendre un paramètre pour le montant. Assurez-vous que nous n'avons jamais de montants
négatifs, car c'est très mauvais. Donc, avec cela, suspendez la vidéo dès maintenant et relancez le défi. Bon, bon retour. Donc, au lieu des pièces actuelles, je vais appeler ça les pièces de bit actuelles. Et si vous n'aimez pas Bitcoin, eh bien, vous devriez l'essayer de toute façon. Je n'essaie pas de vous mettre quoi que ce soit dans la tête. Continuons. Concentrez-vous sur l'essentiel. Maintenant, quelque chose ici que vous voudrez peut-être envisager. C'est donc génial. Nous avons Level Manager qui prend en charge tout le niveau. Mais quand il s'agit la somme d'argent que nous portons avec nous, je pense qu'il vaut mieux l'avoir dans quelque chose appelé un
gestionnaire de jeu qui n'est que pour l'avenir. Ce n'est pas un problème. Vous pouvez le créer dans Level Manager. Il fait la fonctionnalité, mais le gestionnaire de niveaux semble simplement gérer le niveau actuel sur lequel nous sommes. Quand il s'agit de l'esprit que nous tenons, il devrait s'agir de tout le jeu. Dès que vous commencez le jeu, chaque niveau que vous collectez plus de pièces, vous passez au niveau suivant, vous ajoutez à cela. Le gestionnaire de niveau est donc un peu bizarre. Je ne sais pas, peut-être devrions-nous le transférer à un gestionnaire de jeu. Vous savez quoi, passons à un gestionnaire de jeu. Je me suis convaincu. Donc ici, je vais cliquer avec le bouton droit de la souris. Créez un gestionnaire de jeu vide, appuyez sur Entrée. Nous allons réinitialiser la position. Et ici, le manager va créer un script C-sharp quatre pour le gestionnaire de jeu d'Enter. Et c'est exactement pour cela que je voulais créer un gestionnaire de jeu juste pour vous montrer ce symbole étrange pour une raison quelconque, aucun autre changement de script à l'exception de celui-ci. Celui-ci a ce bouton bizarre dessus. Je ne sais pas pourquoi. Ne me demandez pas pourquoi. Je n'en suis toujours pas sûr. Mais de toute façon, le gestionnaire de jeu
a maintenant le script du gestionnaire de jeu. Et tant que nous sommes ici, nous avons le gestionnaire de niveau, nous avons le gestionnaire de jeu, nous avons également le gestionnaire de l'audio. On y va, le gestionnaire audio. Je vais donc cliquer avec le bouton droit de la souris pour créer un vide. Les responsables ont cliqué sur Entrée. Je vais réinitialiser sa position pour que le gestionnaire de jeu, le gestionnaire de
niveau, et où est-il ? Gestionnaire audio. On y va. Nous avons donc maintenant une liste de tous les gestionnaires. Et dans les préfabriqués, préfabriquons le niveau et le gestionnaire de jeu. Alors avons-nous où l'AudioManager est-il sauvegardé ? Je pense qu'il est dans les préfabriqués où z. Ok, donc AudioManager, son Albany lui-même, les gestionnaires de
dossiers, AudioManager, le gestionnaire de niveau, et le gestionnaire de jeu. Ok, avec ça hors du chemin, ouvrons à nouveau le script. Alors que le gestionnaire de niveau, nous allons prendre les Bitcoins d' ici et les déplacer vers le gestionnaire de jeu. Nous allons ensuite créer deux méthodes ici. Je vais garder le début et la mise à jour. J'ai le sentiment que nous pourrions les utiliser plus tard. Donc ici, tout d'abord, le public est vide, évidemment, il doit être public parce que nous allons l'être. L'appeler à partir de différents scripts. Donc le vide public obtient des bitcoins. Et ici, le montant à obtenir. Nous ouvrons donc les crochets ou les lignes tordues ou autre. Et les Bitcoins plus actuels équivaut au montant à obtenir. Et si vous le souhaitez, nous pouvons le fixer à 21 millions, mais gardons cela infini. Nous pouvons en obtenir autant que nous le voulons. Et puis nous allons créer le vide public, dépenser des pièces, des bitcoins. Et celui-ci sera un nombre entier à dépenser. Et ici, nous allons récupérer les pièces actuelles,
excusez-moi, retirer les pièces actuelles, le montant à dépenser. Enfin, nous allons vérifier si les pièces actuelles sont inférieures ou égales à 0, que les pièces actuelles ne le seront. Les pièces actuelles seront réglées sur 0. Gardez ça. Et maintenant, créons simplement un petit Peston à proximité. Donc si vous entrez et mettez le point, obtenez la touche bas, cochez le gène G, donc keycode. Donc je veux dire obtenir, si, GET, puis obtenir des bitcoins et disons qu'on obtient 25 ou 20. Alors, si c'est la même chose ici. Mais au lieu d'un G, nous utilisons les dépenses H,
H, mais les pièces de monnaie. Et combien dépensons-nous ? Disons 10. Donc on en a 20, on en a dépensé dix. Et enfin, créons un débogage. Oh, nous avons oublié ce débogage. J'ai des Bitcoins actuels plus des bitcoins égaux. Et évidemment, nous allons régler tout cela dans l'interface utilisateur, mais pour l'instant nous économisons, nous entrons dans notre jeu. Je pense que tout va bien. Nous avons donc tout mis en place. Les pièces actuelles vont toujours commencer à 0. Nous commençons donc le jeu. On y va. J'ai 0 Bitcoins, donc je vais avoir, obtenir, obtenir, y aller. Et puis je vais dépenser, dépenser, dépenser, dépenser, dépenser, dépenser, dépenser, et comme vous pouvez le constater, nous ne pouvons pas aller moins de 10 fois que j'ai essayé de dépenser 10 car je n'en ai que 10. Et c'est quelque chose que nous devrons
garder à l'esprit s'il est inférieur ou égal, si nous le fixons à moins ou égal à 0. En fait, je pense que c'est une bonne idée. Donc maintenant, nous pouvons dépenser ce que nous
avons un problème ici, c'est ça, d'accord, désolé. C'est ainsi que nous avons dit le moins ou l'égal. Il y a donc quelque chose que nous devrons garder à l'esprit et que chaque fois que
nous dépensons, nous devons avoir ces pièces avec nous. Mais je crois que c'est quelque chose qui sera traité plus tard par le script Sharp. Donc, ici, voyons,
je dépense, dépense, dépense, dépense. D'accord, ça ne fonctionne toujours pas. Salut, bon retour. C'était donc quelque chose de très simple. Lorsque nous avons l'effondrement ici, vous pouvez voir que nous commençons à 0, 20, 40 et cetera. Mais quand je commence à dépenser, quand j'arrive à 0, c'est déjà là, donc ça n'apparaît pas. Et les messages que je peux vous
montrer si nous supprimons l'effondrement. Par conséquent, chaque ligne n'est pas maximisée en jeu, s'il vous plaît. Si je clique ici, vous pouvez maintenant voir que lorsque je frappe le gigi, gigi, 120, vendez, vendez, vendez, vendez, vendez, vendez, vendez. On y va. Tout fonctionne. Ce n'était donc pas à cause du moins ou de l'égal, c'était en fait notre incapacité à le voir. J'espère que ça vous plaira. Assurez-vous de valider vos modifications. Et je vous verrai dans la prochaine vidéo où nous allons
récupérer les bitcoins et non seulement
les ajouter à l'aide de touches magiques du clavier. Alors, à ce moment-là.
75. Choisir le Bitcoin: Bienvenue
à mes développeurs de jeux préférés dans une toute nouvelle vidéo et celle-ci, au lieu de simplement ajouter les points à notre couche ou à notre gestionnaire de jeu, nous avons cette pièce ici. Et comme vous pouvez le constater, il tourne. C'est vraiment cool. Et si vous entendez quand nous le reprenons, il y a une petite explosion. Pourquoi une explosion ? Parce que je n'ai pas pris le temps de trouver un effet sonore pour la prise de la pièce. Donc, avec cela, ne
perdons plus de temps et commençons. Oh, d'accord. Il est donc temps de commencer à récupérer l'argent que nous avons créé. Je vais donc éclaircir tout ça. Je vais ouvrir le script et supprimer ce que nous avons ici pour la BBC ou tout ce qu'
il affiche et ajoute à l'aide du clavier. Donc, de retour ici pour qu'il soit compilé. Et dans les sprites ici, je vais créer un nouveau dossier pour les pièces. Double-cliquez, ouvrez-le et je vais accéder
aux ressources ici. Et comme vous pouvez le constater, nous avons la pièce tournante, la pièce clignote et la pièce brille. Choisissez donc ce que vous voulez. Je veux la faire pivoter parce que j'aime voir les pièces tourner. Donc, à cette fin, ça s'ouvre. Voyons à quoi ils ressemblent. Très belles pièces, mais j'ai l'impression qu'elles sont peut-être un peu hors de propos avec les graphismes 2D que nous avons, mais pas de soucis, nous utilisons ressources
gratuites de l'art du jeu libre. On y va donc. Nous ajoutons cela ici. Ce sera une énorme pièce. Préparez-vous pour l'énorme Coyne. Je n'ai jamais pensé, je ne savais vraiment pas que cette pièce serait aussi énorme. Nous allons donc le rendre un peu plus petit. Encore plus. Donc, 400, voyons voir. Nous pouvons, soit dit en passant, vous réduisez un peu la mise à l'échelle, mais j'aime modifier les pixels par unité. Et même cela, faisons 800. Nous sommes donc deux fois plus petits que ce qu'il est en ce moment. C'est toujours énorme. Et passons à 1600. Allez, s'il vous plaît. Nous avions besoin d'un peu plus petit. Oh mon Dieu. Je ne m'attendrais pas à ce montant. 3500 sérieusement, cela devrait être très petit en ce moment. Ok, super. Donc je pense que cette pièce, on y va. Il s'agit donc d'une petite pièce qui va tourner et nous pourrons la ramasser. Et en fait, vous savez quoi, peut-être faire 3000. Et nous y allons, appliquez les changements. Faisons en sorte qu'il s'agisse. Point, et nous n'avons pas besoin d'en faire plusieurs. On y va, sauve ça. Maintenant, il va s'agir du cas Bitcoin 0. Maintenant, ce que nous allons faire, c'est que nous allons
entrer dans l'animation et créer une animation. Ainsi, les animations d'un actif cliquent avec le bouton droit sur Nouveau dossier, pivoter un Bitcoin, double-cliquez ici et faites pivoter. C'est ça. Tout ce que nous devons faire. A traîner ces n et c'est vrai. OK, c'est trop rapide. Séparons-les un peu. Donc, à chaque point, nous y allons, je pense que c'est une bonne rotation. Donc, pour une raison quelconque, j'ai l'impression que c'est un peu ennuyeux, mais pas de soucis. Nous allons maintenant y ajouter un nouveau script ici. Je vais donc entrer dans les scénarios et adorer dans les micros. Cliquez avec le bouton droit de la souris et créez un nouveau script C-sharp, ce qui va être le choix et ramasser une pièce. Ramassez. On y va. Maintenant, nous avons le ramassage des pièces. Rendons-le plus petit. On y va. Donc ajouté au Bitcoin et ouvrons-le et Visual Studio. Donc, si je vais chercher la santé, c'est à peu près la même chose. Alors, où est-il ? Où est le ramassage santé ? C'est donc à peu près la même chose. Je vais juste copier le code. Je vais le coller ici. Et les seules choses qui
vont changer, comme par exemple, le montant de la pièce que vous obtiendrez de cette pièce, donc je le garderai sur eux. Et peut-être aussi le ramassé, ce qui va être bon et le ramasser. Et k peut être ramassé la méthode. Bon, donc le pick-up, la couche. C'est évidemment quelque chose que nous
allons également ajouter à la pièce, car plus tard nous voudrons peut-être casser un pot ou tuer un ennemi. Nous voulons donc avoir un peu de retard. Donc, à tout moment, nous allons réduire cela au niveau du composant les couches ou ramasser la couche. On y va. Le temps avant le ramassage est de 0,5, ce qui est suffisant pour nous. Et ensuite, ici, que devons-nous faire d'autre ? Nous détruisons l'objet du jeu. Au lieu d'ajouter HP, nous allons supprimer cela. Et nous allons nous assurer que, ici, nous pouvons également supprimer le joueur
va le régler sur la couche de pick-up. Donc, des micros. Et rappelez-vous que nous avons arrêté d'utiliser la couche, la couche. Je veux dire, désolé, le tag joueur pour récupérer les choses. Et ici, nous avons dit que le pick-up était vrai, donc nous ne reprenons pas deux fois. Et ici, nous devrions augmenter la quantité de pièces que nous
avons et cela va être un défi. Vous. Ajoutez donc la pièce et jouez un effet sonore. Donc, tout d'abord, créez le gestionnaire de niveaux et ajoutez-y les pièces. Dicey crée, je voulais dire obtenir le gestionnaire de niveaux et
les pièces et jouer les effets sonores lorsque nous récupérons les pièces, vous pouvez choisir le son de la fracture. Peut-être que vous pouvez même aller chercher la vôtre, trouver si je vous en fournissais un afin que hors de la route, suspendez la vidéo tout de suite et relevez le défi. Bon, bon retour. Donc ici, nous allons obtenir le gestionnaire de niveau, ou désolé, pas le gestionnaire de niveau, le gestionnaire de jeu, mais le gestionnaire de jeu n'est pas une instance. Ici, nous allons créer un gestionnaire de jeu statique public. Nous pouvons trouver l'objet, c'est quelque chose
que nous aurions pu faire, mais parce que nous allons
peut-être y accéder plusieurs fois, je crois qu'il est préférable d'avoir une instance. Donc ici, je vais mettre l'éveillé
et l' instance est égale à cela. Gardez ça. Supprimons le démarrage et la mise à jour pour l'instant. Si nous en avons besoin, nous les créerons plus tard. Regardez-le dans le pick-up. jeu. Responsable. Dot instance, point, ajoutez une pièce ou obtenez des pièces, obtenez des bitcoins. Et combien voulons-nous ? C'est le montant de la pièce. Enregistrez cela, et maintenant nous voulons lire l'audio. AudioManager, vous gérez donc l'instance qui joue en
tant que télécopie et quel effet sonore voulons-nous lire ? Nous pourrions le créer ici. Oui, bien sûr, faisons-le. Donc, le bac à sable à jouer. On y va. En tant que fax à lire, enregistrez-le. Et de retour dans notre jeu. Voyons ce que nous avons ici. Et le gestionnaire audio, où se trouve le Gestionnaire audio ? Et qu'avons-nous l'explosion, les fusils ennemis, les fusils de chasse, typer qui se fait frapper, le tir au pistolet, l'explosion. Ajoutons l'explosion. Bien sûr. Pourquoi pas ? Parce que je ne trouve aucun pick-up commun. Vous pouvez ajouter tout ce que vous voulez. Il faut juste une sorte de métal. En fait, je pense que j'ai ajouté quelque chose ici, mais nous ne l'avons pas ajouté. Quoi qu'il en soit, utilisons l'explosion juste pour s'amuser. Quoi qu'il en soit, l'élément deux. Donc, les deux gardent ça, lancent le jeu. Et maintenant, lorsque nous arrivons à la pièce, nous ne devrions rien entendre du tout parce qu'ici, non, il n'y a pas d'erreur. Ok ? Non. Mais il ne s'est même pas détruit. Il y a donc un problème. Et obtenez un composant. La couche de ramassage n'a pas été ramassée. Voyons voir, car cela doit être simple. Attendons peut-être cette minuterie 0,5. Non, je ne travaille pas du tout. Voyons donc quel est le problème. 0, ok, revenez. Nous créons donc un « On Trigger Enter ». C'est très bien, mais nous n'avons pas de déclencheur pour déclencher cela. Nous devons donc ajouter un collisionneur de boîte ou un
collisionneur circulaire 2D et en faire un déclencheur. Le collisionneur de cercle,
je crois, est donc extrêmement énorme. Non, où est-il ? Bien que ce soit exactement sur la pièce, c'est excellent. Gardez ça, lancez le jeu. Maintenant, nous devrions annuler le son de la musique. Et on pouvait entendre un faible bruit de l'explosion en arrière-plan. Je l'ai entendu. J'espère que vous auriez pu l'entendre. Nous allons aux préfabriqués,
nous allons aux micros et nous avons dit le Bitcoin ici. J'espère que ça vous plaira. Assurez-vous de valider vos modifications, assurez-vous de laisser un avis. Cela m'a beaucoup aidé et je
vous verrai dans la prochaine vidéo.
76. Écrire l'UI sur notre toile: Bienvenue, Mes développeurs de jeux préférés dans cette vidéo, au lieu de
devoir chaque fois chercher dans la console pour le débogage ou regarder l'objet du gestionnaire de jeu pour savoir combien de pièces nous avons. Nous avons créé le canevas de l'interface utilisateur pour enregistrer tous les Bitcoins que nous possédons. Comme vous pouvez le constater, nous avons 0 en ce moment, mais si nous prenons une pièce, nous obtenons cela. Ne perdons donc plus de temps et
commençons par cette vidéo très simple. Oh, ok, donc maintenant il est temps d'afficher
les Bitcoins que nous avons récupérés sur notre canevas d'interface utilisateur. Je vais donc agrandir la scène. Je vais trouver le Canvas et ici quelque part. Double-cliquez sur le canevas de l'interface utilisateur. Ouvrons-le. Voyons ce que nous avons et cliquez sur Afficher le canevas de l'interface utilisateur pour que nous puissions tout voir. Nous avons la santé de l'interface utilisateur de l'arme, et allons de l'avant et créons un nouveau jeu vide. Non, pas, désolé, pas sur la santé sur le canevas de
l'interface utilisateur, créez un objet de jeu vide. Et ce seront les pièces de monnaie ou autres. Mais le traqueur de pièces, je ne sais pas, avec du maïs se produit. On y va. Donc Bitcoin tracker, et ici nous allons ajouter l'interface utilisateur et l'image, et cela représentera l'image, l'image. On y va. Et ce sera juste, laissez-moi regarder à travers les sprites. Les sprites les rendent plus petits. On y va, les pièces, alors que la pièce que je viens de la voir, des pièces de monnaie, des pièces d'étoiles. Et ajoutons les objectifs de thérapie par image au sprite. Nous pouvons définir la taille native. On y va. Je pense que c'est assez bien. Nous le mettons
juste ici juste à côté de vous pouvez le mettre où vous voulez évidemment, comme je le dis toujours, mais je vais juste le mettre ici. Ensuite, je vais créer une autre interface utilisateur ici. Oh, vraiment désolé pour ça. Nous n'aurions pas dû mettre l'image. Laissez-moi juste définir l'image. bug de position va déplacer l'objet entier en un peu. Et je vais créer du texte beaucoup pro ici. Et évidemment, je vais le faire, disons 99, 99, gras, et changer la police dessus, faire celle avec le robot qui pense, je vais déplacer tout cet objet ici. Je déplace l'image un peu vers la gauche. On y va. Et puis le texte un peu à droite. Et ce sera la quantité de texte BDC. Et nous le garderons à mon 99 juste pour représenter tout. Et nous le réglerons au milieu de l'alignement
et le réglerons sur la taille automatique, augmenterons le maximum. Laissez-moi changer un peu le texte. On y va. Ça a l'air bien. Je pense. Oui, c'est bon à mon avis. Nous avons donc le numéro
affiché ici au-dessus de la santé et chaque fois que nous décrochons, nous devrions l'obtenir. Très bien, je vais donc sauver ça. Je vais aller dans le canevas de l'interface utilisateur et je vais ouvrir le gestionnaire d'interface utilisateur. Donc ici, évidemment, nous aurons besoin d'une référence. La première référence sera donc un champ sérialisé du texte de type. Qu'est-ce que c'était du texte Mesh Procore, mash Pro GUI
taxé. Vous, je suis d'accord. D'accord, c'est tout. Et le texte BTC. Gardez ça. Bon, donc revenons ici. Voyons une référence à cette journée. Maintenant. On y va. Et appliquons les modifications
sur le canevas de l'interface utilisateur pour qu'elles soient appliquées partout. Ok, super. Maintenant, à notre fin, que va-t-on faire ? Eh bien, évidemment chaque fois nous prenons une pièce ou que nous recommençons, ou que nous dépensons le point, nous voulons qu'elle soit affichée ici même sur le canevas de l'interface utilisateur. Et ce sera votre défi de définir la valeur de la pièce et de les mettre à jour à chaque fois. Créez donc une méthode qui met à jour le texte de la pièce et le gestionnaire d'interface utilisateur, définissez-le au début afin que nous n'ayons pas besoin de savoir où est le début, où le vendons ? Et assurez-vous également que chaque fois que nous ajoutons ou supprimons pièces de monnaie pour les mettre à jour dans le canevas de l'interface utilisateur. Donc, hors du chemin, mettez la vidéo en pause et allez faire le chaldéen. Bon, bon retour. Donc dans le gestionnaire d'interface utilisateur, alors que le gestionnaire d'interface utilisateur, et faisons défiler vers le bas et ici
créons un vide public, Mettre à jour le texte Bitcoin. Et ici, tout ce que je vais faire est d'accéder
au texte, au texte, au texte du PTC. Et il sera égal à l'entier ici, ce qui correspond à la quantité de BDC. Et cela va être égal à la quantité de BTC. On y va. Cela ne fonctionne donc pas car vous
ne pouvez pas convertir en chaîne. Je vais donc ajouter la chaîne de points deux. Gardez ça. C'est donc un peu une astuce. Peut-être ne saviez-vous pas comment faire ça. Il y a d'autres moyens de contourner ce problème, mais c'est une façon que je vais vous montrer pour l'instant. De retour dans le gestionnaire de jeu, dès que nous commençons. Donc, au début ou vous savez quoi ? Tant que nous sommes éveillés, vendons le tout dans l'éveillé. Mais le problème avec l'éveillé est qu'il peut commencer avant que nous ayons une instance du gestionnaire d'interface utilisateur. Donc, pour cela, faisons-le simplement et commençons pour l'instant. C'est un peu plus sûr. Ui Manager, instance de
points, mise à jour de points, textes Bitcoin, et ce sera les Bitcoins actuels. Et quand nous aurons les Bitcoins, nous allons également mettre à jour ceci et les dépenses dépensées après vente parce que nous ne voulons pas avoir de négatif, donc nous n'allons pas le vendre ici. Nous l'avons dit après avoir vérifié si nous avons moins de 0, puis nous avons obtenu 0. Alors, sauvegardez ça. De retour dans notre jeu. Nous allons diriger le jeu. Faisons en sorte que cela soit un peu plus grand. Alors lancez le jeu, nous devrions voir 0 ici parce que nous n'avons pas de pièces. On y va. Nous avons 0. Et maintenant, lorsque nous récupérons
cela, veuillez couper le son. Lorsque nous aurons repris cela, nous devrions voir que nous en aurons dix. Excellent. Nous pouvons donc maintenant récupérer nos pièces et, bien sûr, nous pouvons aussi les dépenser. Nous n'avons pas la possibilité de les dépenser, mais dans un peu, nous allons commencer à créer des boutiques et c'est là que nous pourrons les dépenser. Donc, avec cela, je ne sais pas pourquoi je continue de dire ce mélange pour commettre tous vos changements. J'espère que vous appréciez et je vous verrai dans la prochaine vidéo où nous apprendrons comment gagner nos bitcoins et pas simplement les ramasser par terre. Alors, à ce moment-là.
77. Comment gagner du Bitcoin: Bienvenue dans une toute nouvelle vidéo, mes développeurs de jeux préférés. Ce sera très court car je pense que nous savons déjà comment faire ces choses. Je vais donc vous lancer un défi virtuel. n'y a pas de diapositives, il n'y a pas de temps. Il suffit de mettre en pause la vidéo et de réfléchir à la façon dont nous pouvons réellement gagner ces Bitcoins. Ok, le temps est écoulé. Et maintenant que vous y avez pensé, où devrions-nous le faire ? Eh bien, nous devrions le faire chaque fois que nous tuons un ennemi. Je vais donc me retourner contre le gobelin errant. Ici, nous sommes occupés. Allumez donc le gobelin errant, allumez les lâches volants et les champignons patrouilleurs. Maintenant, nous avons une tonne d'ennemis et notre jeu vole et essayant de classe. J'espère que nous aurons le fusil. Et comment allons-nous faire cela ? Eh bien, si vous vous souvenez, chacun des ennemis a le compte-gouttes ici. Et vous pouvez voir que nous avons une baisse d'article qui est la moitié. Donc, ce que nous pouvons faire, nous pouvons en ajouter un ici et en faire le Bitcoin. Et un autre mécanicien sympa est que nous pouvons créer les deux ou ajouter deux bitcoins ou même trois bitcoins et 1,5. Et cela rendra le jeu un peu plus réaliste car, comme vous le savez, chaque fois que vous n'êtes pas réaliste, peut-être dur. Je suis matérialiste par un jeu réaliste. Notre gain deviendra donc plus vert, plus ancré. Ainsi, lorsque vous jouez à un jeu, vous savez, par exemple, vous traversez des pièces ou que vous tuez des ennemis, mais ils ne vous donnent pas tous la santé. La plupart d'entre eux ne le font pas. Donc, ce que vous devez faire, c'est que vous devez tuer beaucoup et essayer de survivre autant que possible jusqu'à ce que vous ayez un robot de santé, l'argent, eh bien, vous obtenez beaucoup d'argent. Nous ajoutons donc plus de bitcoins. Et si vous vous souvenez, si nous entrons dans l'élément Docker, vous verrez ici que nous créons un entier variable aléatoire et que nous l'
utilisons pour obtenir l'un des éléments. Ainsi, lorsque vous ajoutez plus de bitcoins, vous obtenez une meilleure chance de prendre un peu de silence. Alors, que s'est-il passé depuis des années ? Alors, les lâches volants, ajoutons le bitcoin. Est-ce que c'est ? J'ajoute donc celui qui est déjà ici. Je ne pense pas que ce soit une bonne idée. Permettez-moi d'ajouter le préfabriqué et les statistiques. Je vais donc passer au niveau
des Prefabs, pas des balles ennemies. Prefabs, où sont les micros ? Donc ici, c'est revenir dans celui ici,
et au lieu de cela, nous utiliserons le Bitcoin, c'est la préférence. Je ne pense pas que cela fera beaucoup de différence, mais juste pour nous assurer que nous ne faisons pas quelque chose de stupide. Et ajoutons le Bitcoin ici. Nous ajoutons 24, la patrouille, nous avons 5050 chances. Ainsi, lorsque nous rassemblons des patrouilles ennemies, nous avons de bonnes chances. Nous sauvegardons tout cela. Nous gérons le jeu et j'espère que nous verrons, non, pas le fusil de chasse. Je veux le fusil. Rendez les choses plus rapides. Allez. Une fois encore. Allons jouer. Allez. Le fusil a appelé, allez. Donnez-moi ce commandement. Nous allons essayer. Honnêtement, je ne veux pas du fusil. Je veux dire, je veux le fusil. On pourrait penser que cette vidéo est peu connue du pistolet. S'il vous plaît, allez. Fusil, fusil, fusil, fusil. On y va. Maintenant, je vais tirer la vie de ces gobelins. Comme vous pouvez le voir, c'est cool. Donc, la vie nous avons une vie, nous n'avons pas eu le Bitcoin que nous voulions. Encore une fois, essayons de tuer ça. Ok, donc encore une fois, nous avons eu une vie pour une raison quelconque, soit notre chance est extrêmement mauvaise, soit nous avons fait quelque chose de mal. Voyons donc ce que nous avons mal fait. Nous avons donc le Bitcoin ici, la chance d'emploi comme 1, 0. Bon, bon retour. Donc, pour une raison quelconque, je viens de jouer ça, je l'ai
testé plusieurs fois et tout le temps que nous avons toujours eu avec la console. Je ne sais pas. Je suppose que notre chance a été si mauvaise que ça. Laissez-moi juste retirer le pistolet d'ici. Et retirons également le fusil de chasse. Je veux juste prendre un fusil, courir le jeu. Laissez-moi prendre le fusil. Et maintenant, nous devrions le voir quand je tue ce petit mec ici. Bon, donc on y va. Nous recevons Bitcoin, nous le récupérons, nous en avons dix. Et avez-vous remarqué que notre gain est plutôt difficile ? Donc je dois me promener autour de ce gars et je dois
le tuer et regarder comment il s'enfuit vite et on y va dans une autre pièce. Et puis on rentre chez nous et on va chercher une autre pièce. On y va. Nous avons donc maintenant 30 pièces. Maintenant, une autre chose que nous pouvons faire pour les gagner où est-il, où est-ce que c'est le pot cassable ? Vous pouvez voir ici que nous pouvons en ajouter
quelques-uns . On y va. Non, ajoutez quelques Bitcoins afin que nous ayons de meilleures chances et appliquons ces changements. Parce que j'applique les modifications, je ne sais pas si elles ont été affectées. Cela n'aurait pas dû être affecté, mais je suppose qu'on peut le casser. On y va, on obtient ça. Essayons de le casser encore une fois. Nous devrions obtenir le Bitcoin. Donc, pour une raison quelconque, quand on ajoute un nouveau oh, on y va. Et ensuite, on le ramasse et on obtient ça. J'espère que ça vous plaira. Assurez-vous de valider vos modifications, même si nous n'avons rien fait. Vous n'avez pas besoin de valider vos modifications cette fois-ci. Amusez-vous, amusez-vous à chaque fois, et je vous verrai dans la vidéo suivante.
78. Objets de boutique: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et celui-là, nous ne faisons rien de très chic. Nous créons une nouvelle scène. Nous avons actuellement une scène de magasinage
et, comme vous pouvez le constater, nous avons trois articles ici. Ils sont très identiques. Ils ne font rien de spécial, mais c'est juste la configuration de la prochaine vidéo où nous allons commencer à créer des choses. Donc, ne perdons plus de temps et commençons. Bon, il est maintenant temps de créer une boutique. Et pour créer une boutique, j'ai voulu en faire une scène distincte toute seule. De cette façon, nous sommes inspirés par le jeu Hadès. Nous pouvons passer d'une scène à l'autre ghetto,
un magasin, y faire du shopping puis évoluer vers les autres scènes. Ce que je vais faire, c'est que je vais dupliquer le niveau deux. Et maintenant, nous avons le niveau trois et je vais appeler ça le magasin, peux appeler ça le niveau de la boutique ou la scène de la boutique ou autre. Je vais donc double-cliquer et vous pouvez voir même si c'est la même chose, mais nous sommes dans la boutique en ce moment, ici dans la hiérarchie. Donc je vais tout d'abord supprimer le Bitcoin, supprimer l'arme, elle les ramasseurs de santé en lâchant le cassable acheté et ouvrons la pièce et allons de l'avant et supprimons tous les ennemis. Je vais juste les enlever d' ici et garder cette pièce telle qu'elle est. Je crois que nous allons en faire un préfabriqué et pourrons l'ajouter à n'importe quelle pièce que nous voulons. Mais de toute façon, plus tard, nous y penserons. Mais pour l'instant, nous allons simplement supprimer tous les ennemis et cela permettra de garder la couche, garder le portail évidemment parce que nous voulons sortir de la boutique plus tard. Et je vais cliquer avec le bouton droit de la souris ici et créer un objet de jeu vide, qui sera l'objet de la boutique. Et nous allons commencer par la santé. On y va. Nous allons donc nous concentrer principalement
sur trois articles de magasin à l'heure actuelle. où nous obtenons la santé 14, l'amélioration de la santé, et que nous voulons acheter une sorte d'arme, une femme au hasard, je pense. Donc. Mettons-les trois. Nous allons donc en avoir un ici, un ici et un ici. Commençons par le plus simple,
qui est l'objet tranchant régulier. Je vais ajouter ici un composant qui va être un sprite. Ou sachez quoi, peut-être voulons-nous aller aux urgences, savoir quoi, ajoutons simplement un sprite pour l'instant. Donc, un moteur de rendu de sprite. Et nous allons aller dans les sprites dans le, où est-il ? Oh, donc des micros. Et on y va. C'est la santé. Et je vais juste ajouter le sprite ici. Et nous allons le mettre sur la couche de joueurs, même si nous avons dit que nous ne
ferons plus cela. Mais de toute façon, continuons. Ensuite, nous allons évidemment ajouter une boîte collider 2D, et ce sera un déclencheur. Alors, alors que c'est un déclencheur, voyons la taille et
nous voulons évidemment la rendre beaucoup plus grande. Ainsi, le joueur peut intervenir ici. Et nous aurons, par exemple, lorsque vous déclarerez des étapes à proximité de cet article, il va recevoir un message qui apparaîtra. Nous ajouterons également une toile et juste un peu là où il lira. Vous pouvez acheter cet article, par exemple, une santé ou reconstituer votre santé pour, disons, 50 pièces. Et cela n'apparaîtra que lorsque le joueur se trouve près du bouton ou de l'objet tranchant ou autre. Et nous voulons également créer un petit collisionneur de boîtes qui
veillera à ce que nous ne touchions pas cet objet réel. Donc, un deuxième collisionneur de boîtes, nous allons simplement le rendre un peu plus petit
pour être suffisant pour ne pas toucher l'objet réel ici. On y va, on ferme ça, on sauve ça. Et maintenant, ce que nous allons faire, c'est que nous allons ajouter un canevas à cela. Nous allons donc passer à l'interface utilisateur. Nous ajouterons un, où est-ce le canevas. Et nous appellerons cet objet D tranchant Canvas. Et nous allons définir, nous voulons voir l'interface utilisateur, d'
accord, donc nous ne pouvons pas voir l'interface utilisateur. Où est-il ? C'est ça, la grande toile géante ? Allons allumer les gadgets. Et cela ne me permet pas de supprimer la balance car nous devons la régler dans l'espace mondial. Et le point zéro cinq sur l'axe des X, point
zéro cinq sur l'axe Y. Et remettons sa position à 0. Maintenant, double-cliquez sur l'article de la boutique, et nous y allons. Maintenant, nous avons la petite toile ici. Et nous allons juste le mettre en avant. Oui, je pense que c'est assez bien ici. Et nous allons tout d'abord ajouter une visite aux textes. Nous allons donc passer à l'interface utilisateur texto beaucoup Pro. C'est le premier. C'est pour le, disons que le bouton appuyez sur le bouton, le texte. Et un autre qui sera le
While it, ce
sera le texte qui représente le prix de l'article. Donc, article, article pour texte de glace. On y va. Et je vais déplacer celui-ci vers le bas et le déplacer vers le haut. Et faisons quelques éditions et agrandissons cela. Appuyez sur. E à acheter. Et faites défiler vers le bas un nouvel ensemble
au milieu et assurez-vous qu'il taille automatiquement. Et nous allons également refuser cela. Nous ne voulons pas voir cela et le rendre audacieux, le rendre robot. Et nous ne pouvons pas le voir car nous devons aller dans le canevas et le calque de
tri et le définir sur le lecteur. On y va. Nous pouvons donc tout voir maintenant. Et maintenant, dans le bouton, c'est l'ajustement parfait. Eh bien, je pense que nous pouvons augmenter le maximum. Ainsi, lorsque vous appuyez sur le côté opposé, vous avez les options ici pour l'option de taille automatique, le minimum, le maximum et quels qu'ils soient. Je viens donc d'augmenter le maximum pour remplir tout
l'espace ici. On y va. Et maintenant, dans le prix, vous savez quoi, laissez-moi simplement supprimer celui-ci et ensuite dupliquer celui-ci. Et maintenant, nous le déplaçons. Ce sera, disons, deux boutons de prix. Et puis on peut dire, par
exemple, 99 pièces de monnaie. On y va. Comme vous pouvez le voir maintenant, c'est une table. C'est peut-être un peu gros, mais pas de soucis à ce sujet. Nous pouvons en fait diminuer la taille de ces
deux-là parce qu'ils semblent un peu trop volumineux. On y va donc. Quelque chose comme ça. Et celui-là aussi quelque chose comme ça. Oui, bien sûr. Pourquoi pas ? Prenez donc le temps de créer tous ces éléments, assurez-vous qu'ils sont vraiment beaux pour vous. Et enfin, je veux ajouter une sorte de plateforme sous l'âme, le joueur ou quiconque joue à votre jeu ne
confond pas seulement cela avec une sorte d'objet sur le terrain. Je vais donc aller dans mes ressources et j'ai une sorte de téléportation, je vais l'utiliser comme plateforme. Faites-le glisser dans les sprites ici. Et c'est ennuyeux quand on a des fichiers si petits. Cliquez ici avec le bouton droit de la souris, créez la plateforme de la boutique. Et ajoutons-le ici. Et c'est ce que nous avons maintenant. Je vais donc en faire un multiple, faire pointer, appliquer les modifications à Sprite Editor. Et comment allons-nous trancher ce bébé ? Voyons voir, je crois que c'est l'un des plus grands sprites. Vous pouvez donc voir ici que c'est 128 sur 320. De retour dans Sprite Editor, je pense que nous allons essayer automatiquement. Oui, pourquoi pas ? L'automatique semble bien. Si vous le souhaitez, vous pouvez
créer des animations pour cela. Je le recommande pour que vous puissiez jouer tout le temps. Peut-être que nous allons le faire. Je vais donc revenir sur l'objet ici. Et ajoutons simplement ce téléport. On y va. Ce sera donc la forme de plat de l'objet. Et nous devrions le définir sur la couche, couche. Il est très petit. Nous allons donc aller dans le, où est-il ? Okay, donc, on va en faire 50. Voyez à quoi ça ressemble. Allons le rendre encore plus grand. 25. Maintenant que nous en avons 25. Non, c'est un peu trop gros. Maintenant. Qu'y a-t-il entre 25 et 50 ans ? C'est le camion 14. Appliquer. Super. Donc, 40 semble être la bonne taille et je vais le régler
à 00, puis le déplacer un peu vers le bas. Eh bien, gardons ça. Peut-être que si vous le voulez, vous pouvez commencer à faire monter et descendre. Et mais je vais juste garder tel qu'il est pour le bouton, peut-être vouloir le faire pivoter. Je vous recommande de le faire. Mais n'oubliez pas que si vous voulez déplacer le plus réel ici, le plus vert, vous devez vous assurer le
définir comme objet distinct. Parce que si nous déplacons celui-ci, regardez ce qui se passe sur le large, tout se retourne. Donc, vous devez vous assurer que si vous voulez ajouter une sorte d'animation pour animer cela aussi, peut-être que je le ferai plus tard, mais pour l'instant concentrez-vous sur la création de l'élément réel. Je vais donc faire avancer ça un peu ici. On y va donc. Nous pouvons maintenant voir qu'il s'agit d'un article. Je vais créer un script ici qui sera, et les scripts, je vais le rendre un peu plus grand. Et avons-nous quelque chose ? D'accord, allons donc continuer et cliquer avec le bouton droit de ici et créer un nouveau dossier. Et ce sera pour la boutique. Et à l'intérieur de votre processus de création de l'article de la boutique. On y va. Attendez qu'il soit compilé et je vais savoir, Merci ce que cela ouvre. Et je vais ajouter à ce qui se passe. La nouvelle unité est donc très affreuse. Il continue de s'écraser, continue de s'arrêter. Le chargement du jeu prend beaucoup de temps. Parce que le script est introuvable. Excellent, super. Nous avons donc le script, le script est introuvable. Dans notre cas, il y a évidemment un problème. Permettez-moi de supprimer cela. Oh, vraiment désolée. C'est à cause de moi parce que je viens de remarquer que lorsque je la supprime,
que j'ai ajouté une option d'espace, élément
net, nous ne pouvons pas ajouter espaces entre eux. Article si pointu. Maintenant, cela devrait fonctionner. Bon, on y va. Ouvrez donc le script vers le haut. Maintenant, nous avons cet article pointu. Permettez-moi de dupliquer cela une fois et deux fois. Et maintenant, nous avons ces trois éléments. Permettez-moi de déplacer cela un peu vers la gauche et de déplacer celui-ci aussi vers la gauche. Et enfin, celui-là aussi, peut-être pourrons-nous les rendre un peu plus petits, mais pas de soucis pour l'instant, nous avons ces trois éléments plus tard, nous allons les changer. De toute évidence, il
s'agira d'une amélioration de la santé et celle-ci sera l'arme. Les armes ont touché Enter. J'espère que vous avez apprécié. Ce n'était que la configuration de nos articles. Dans la prochaine vidéo, nous commencerons tout
le processus de script, de modification des comportements. Et avant de partir, laissez-moi simplement créer un objet de jeu vide, réinitialiser sa position. Et ce seront les articles de la boutique juste pour que
nous ayons une belle hiérarchie ici pour tout. Gardez ça. Et je vous verrai dans la prochaine vidéo.
79. Acheter à la boutique: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et dans celui-ci, on ramasse quelques pièces, on se fait frapper. Donc, notre vie est de 200 sur 300. Mais heureusement, nous avons cette santé ici, donc je peux acheter quelques points de santé et améliorer ma santé, mais tout ne fonctionne pas. Vous pouvez donc voir ici parce que c'est quelque chose de différent. ne s'agit pas d'une demi-mise à niveau, je veux dire, d'un élément de restauration de la santé. Celle-ci l'est, et je l'achète. Mais enfin, vous pouvez voir que j'ai 0 montant d'argent. Donc, si j'essaie d'en acheter plus, malheureusement, je ne peux pas le blâmer sur l'économie, je le blâme sur qui vous voulez. Ne perdons plus de temps. Commençons. Oh, l'affaire. Il est donc temps de commencer à acheter les articles. Et la première chose que nous voulons faire est que nous voulons que ces textes apparaissent
ici lorsque le joueur se trouve à l'intérieur du collisionneur de boîte ici. Et s'il est à l'extérieur de ce collisionneur de boîte, nous ne voulons pas voir le texte et nous ne pouvons pas acheter. La première chose que nous allons
faire , c'est que je pense que je veux augmenter un peu cela. Nous allons donc agrandir la taille à partir de cela. Oups. Une seconde. Augmentez les collisionneurs de la boîte de tous les côtés, rendez-les un peu plus gros et peut-être même formez le collisionneur
qui n'est pas un déclencheur, c'est-à-dire celui-ci, et peut-être simplement recouvrir toute
la surface de celui-ci, quelle qu'elle soit, plateforme avec un peu plus vert plus, et de toute façon, avec ça, hors du chemin, je vais faire ça hors écran est assez facile, rien de trop. Et cela vous revient toujours à la taille, quel point vous voulez le faire. Mais il y a quelque chose qui ne dépend pas de vous et c'est le défi aujourd'hui. Nous voulons que le texte apparaisse lorsque nous nous rapprochons. Obtenez donc une référence au texte d'octets. Utilisez l'entrée et la sortie de l'entrepreneur pour définir le texte actif sur true et false respectivement. Et créez également un bool qui vérifie vrai lorsque le joueur est dans les joueurs allumés et faux lorsqu'il n'en est plus. Ainsi, bien que la façon de mettre en pause la vidéo maintenant et d'atteindre peu profond. O K. Bon retour. Donc je terminais juste avec ces premières choses que je vais faire est de sélectionner ces trois articles et de les faire les pick-up ? Oui. Faites aussi des pick-up aux enfants. Maintenant, nous allons ouvrir les articles de la boutique, un script, je crois qu'il s'ouvre ici, et nous allons arrêter. Donc, tout d'abord, je vais
créer une tante Sugar entre et sortir. Ainsi, Trigger Enter 2D et sur Sugar sortie 2D. Nous avons maintenant besoin d'une référence au message d'adieu. Donc, ici, je vais créer un champ sérialisé de type Text Mesh Pro. Ou vous savez, ce que nous pouvons peut-être faire, c'est que nous pouvons aller de l'avant et simplement changer l'ensemble des articles. Ou ce que je veux dire, c'est éteindre toute
la toile et l'allumer. Nous avons donc toute la toile, nous pouvons l'allumer et l'éteindre. C'est peut-être la meilleure
façon de créer une référence au canevas. Et ici, nous pouvons créer une référence à un objet de jeu. Ça n'a vraiment pas d'importance. Mais dans tous les cas, le message Canvas, appelons cela le message Canvas. Et maintenant, quand nous entrons, parce que nous n'avons que le pick-up et que les pick-up interagissent
uniquement avec les joueurs de cela ne sera pas un problème. Donc ici, le message d'adieu, désolée, message d'adieu. Je pense toujours à une variable différente. Ainsi, le jeu de points de message Canvas actif ou le jeu de points de jeu de points actif, vrai. Et puis je vais le dupliquer. Et ici, lorsque nous sortons, c'est faux. Gardez ça. Ensuite, nous avons également besoin d'une variable qui sera un bool privé par zone. Et ici, nous allons dire que par zone est vrai et par zone est égal à faux. Et peut-être que nous l'avons instancié ici comme faux. Nous commençons donc par faux. Nous ne voulons pas pouvoir
acheter quand nous sommes très loin. Ok, super avec ça hors du chemin. Allons-y ici. Et choisissons ces trois toiles. Donc 123, éteignez-les, lancez le jeu, marchez vers lui. On y va. ne se passe rien, évidemment parce que nous avons oublié de faire la chose la plus importante, c' est-à-dire l'attribution de la toile. Nous attribuons donc le canevas à
chacun de ceux qui exécutent le jeu. Et maintenant, nous aurions dû régler notre problème d'un jour à l'autre. Ensuite, on descend. On y va. Nous pressons E pour acheter le prix 99 pièces, prix 99 pièces et priceline.com. Ok, super. Maintenant, il s'éteint, il s'allume. Et évidemment, le BI devrait aussi fonctionner. Nous avons une erreur, ce qui est quelque chose. Version actuelle et actuelle de Unity. Merci Unity pour cette très mauvaise mise à jour. Quoi qu'il en soit, continuons. Il y a maintenant quelque chose à prendre en considération. Nous avons les trois types d'articles que nous pouvons acheter. C'est bien. Ok, donc nous pouvons, par exemple, dire si cet article est ainsi de suite, nous le faisons,
donc il y a quelque chose de mieux que je veux vous
enseigner dans cette vidéo et qui s'appelle l'intérieur. Je ne vais pas entrer dans les diapositives parce que c'est assez simple à comprendre. Nous pouvons créer une énumération. Il va s'agir du type d'article. Et nous pouvons ouvrir les crochets ici et dire que l'un d'eux est
la restauration de la santé, la santé, la restauration. Le second est le niveau de santé supérieur, et le dernier est une arme. Donc, quel est le type d'élément enum sur fondamentalement, dans ses termes les plus simples, nous
permet de créer un nouveau type de variable. Ainsi, tout comme nous avons le booléen, le canevas, etc., nous pouvons également créer une énumération, qui est le type d'élément. Et maintenant, nous pouvons créer une variable ici, qui est un champ sérialisé de type, type d'
élément et de type d'élément réel. On y va. Comme vous pouvez le constater, l'énumération a une première lettre en majuscule et sur chaque mot, alors que la variable n'est pas en majuscule, elle est en minuscule. Donc, si nous sauvegardons cela et revenons dans notre jeu, regardez à quel point ce sera cool. Si je choisis le type d'article, laissez-moi fermer les collisionneurs de boîtes. Vous pouvez voir que j'ai un menu déroulant et je peux choisir l'un de ces éléments. Et c'est vraiment sympa. Et il s'agit d'une mise à niveau par rapport à
la section précédente où les ennemis avaient chacun leur propre boîte à prendre et ainsi de suite. Et il faut décocher quelque chose pour prendre autre chose. Ici, c'est une bien meilleure façon, beaucoup plus fluide. Celui-ci sera donc la demi-mise à niveau et la dernière sera l'arme. Super. Nous avons donc maintenant le type d'article à partir duquel nous pouvons choisir. Mais il y a une autre chose que nous devons ajouter ici,
à savoir le coût de l'article. Donc le champ sérialisé et le coût de l'article, mais ce n'est pas la chose à laquelle j'étais. Je voulais me concentrer sur ce que je voulais me concentrer sur
ce qu'on appelle l'énoncé switch. Mais avant de le faire ici, je vais créer la mise à jour. Et je vais vérifier si je suis jaloux par zone. Ensuite, je vais vérifier si nous avons un point d'entrée, obtenir le keydown, l'ouvrir, le code
clé, le code clé point e. Et ici, ce que nous pouvons faire est par exemple, nous pouvons commencer à créer si, disons l'élément tapez point quelque chose et quoi que ce soit, et commencez à vérifier les articles et à acheter en fonction de cela. Mais nous avons, dans ce cas, quelque chose de beaucoup plus puissant. Et c'est le boîtier de l'interrupteur. Permettez-moi donc de vous montrer ce qu'est ce boîtier de commutation. Tellement similaire aux instructions if, il nous permet une exécution conditionnelle de code. Si nous avons un certain type d'article, nous voulons appeler quelque chose de différent. Si nous voulons améliorer la santé, nous devrions appeler une méthode différente celle où nous achetons une arme. L'énoncé de switch
va donc être très efficace ici. Et tout comme l'instruction if, elle fonctionne de la même manière que nous avons une exécution conditionnelle de code, mais elle est structurée comme un peu différente et plus efficace lorsqu'il s'agit de choses comme celles-ci. Nous commençons donc par écrire l'interrupteur. Nous ajoutons l'interrupteur de boîtier. Donc, ici, c'est peut-être tout ce que nous voulons. Dans notre cas, il s'agira du type d'article que nous avons. Dans le cas où un. Par exemple, supposons que le type d'article soit une mise à niveau de santé. Donc, dans le cas 1, l'un d'entre eux dit, par exemple, une amélioration de la santé. Nous exécutons du code que nous brisons. C'est très important et nous passons ensuite au deuxième cas. Le deuxième cas, disons que c'est l'arme. Ensuite, nous exécutons un code différent, nous cassons, puis nous vérifions la valeur par défaut. Maintenant, vous pouvez évidemment additionner nombre de cas que vous voulez à 123, 1520, 500 si vous le souhaitez. Mais finalement, nous devrons obtenir une sorte de chose par défaut. Que se passe-t-il si nous n'avons pas de type d'article ? C'est quelque chose qui ne se produira pas, mais au cas où il n'y a pas de type d'élément, nous devons avoir une pause par défaut,
puis Nous avons terminé les instructions de commutateur. Alors, assurez-vous de le comprendre. Nous verrons la mise en œuvre et juste un peu, mais il suffit de regarder la structure. Nous n'avons pas regardé ce que c'est. Revenons à notre code et mettons en œuvre cela. Avant de créer cette déclaration de commutateur, nous devons savoir si nous avons réellement de l'argent pour cela. Donc, tout d'abord, nous allons vérifier si l'instance du gestionnaire de jeu point point point. Laissez-moi voir. Avons-nous accès au courant actuel ? Non, nous ne le faisons pas. Nous allons donc créer un int public. Et obtenez des pièces de bits actuelles. Et cela ne fera que renvoyer les Bitcoins actuels. Enregistrez cela, revenez en arrière et entendez le
point d'instance obtenir des bitcoins actuels. Et si nous avons plus ou au moins égal à, donc si nous avons plus ou au moins égal au coût de l'article
, nous pouvons continuer. Et dès que nous achèterons l'objet, nous allons aller au gestionnaire de jeu, à l'instance de
points, au point, à dépenser des pièces. Et la quantité de pièces que nous allons
dépenser en fonction du coût de l'article. Mais que se passera-t-il après avoir dépensé notre pièce, nous devrions obtenir un objet. Nous allons donc créer le commutateur. Et ici, nous allons dire le type d'article. C'est donc le cas autour duquel nous sommes en train de changer. Et maintenant, nous allons ouvrir cela. Donc, au cas où nous aurons le type d'article point de restauration de santé et cela ne me permet pas oh, non, ce n'est pas le cas. Le type de petit article est
le gros type d'article restauration de la santé des points. Nous mettons les deux points, appuyez sur Entrée. Ici, nous allons le faire, alors que nous pouvons trouver des objets de type et ce sera le gestionnaire de santé du joueur. Et ensuite, nous pourrons y aller. Et qu'est-ce que nous n'avons pas déclaré que le gestionnaire de santé endommage le joueur ? Bon, donc chez HP à joueur, HP
à joueur. Et combien voulons-nous ajouter ? Eh bien, nous pouvons choisir ici si 10 ou 20
ou n'importe quelle valeur que vous souhaitez ajouter, sauvegardez cela. Brake avait ça et on y va, sauve ça. J'ai donc fait une pause une seconde parce que je ne
savais pas si nous devions utiliser l'objet fichier de type ou si vous voulez encore mieux, créer une variable ici pour le lecteur. Donc, une variable privée pour la couche, puis la définir ici et la collision, ce serait plus intelligent et plus
rentable , car nous savons que seul le joueur peut être la collision ici à cause de la couche que nous avons assise. Et trouver un objet de type est parfois un peu encombrant. C'est, cela prend beaucoup d'espace dans le traitement, beaucoup,
beaucoup de puissance de traitement car objet
fin de type passe simplement par toute la liste de
votre scène et en choisit l'un d'eux. Cela dépend donc de vous. Tout ce que vous voulez faire, c'est à vous de décider. Alors, où avons-nous l'article ici ? Alors choisissons le premier. C'est le coût pour 20. Ou tu sais quoi ? Gardons ça à 10 heures. Et cela va restaurer un peu de santé. Et je vais aller dans les Prefabs. Et ici, je vais ajouter les pointes. Alors, ou est-ce les micros ? Ajoutons un peu de pièce et ici, 23 pièces. Nous avons donc de l'argent à dépenser. Et ensuite, nous irons à nouveau dans les Prefabs et ajouterons un. Où est-ce ? Où est-il ? Où est-il ? objet au niveau des pointes ici. Lancez le jeu. Je veux donc me faire frapper par les pointes. D'accord ? Prenez quelques cônes, descendez ici et nous sommes en visite. On y va donc. Nous appuyons sur l'aile. Oui, on y va. Nous avons bronzé, bronzé, bronzé. Et si j'essayais d'en acheter plus, tu y vas. Nous avons 0, donc je ne peux plus rien acheter. On y va, tellement génial. Cela semble fonctionner. Dans la vidéo suivante, nous utiliserons la mise à niveau de santé qui créera une méthode distincte et le gestionnaire de santé. Et comme je l'ai dit, et au fait, cette erreur ne cesse d'apparaître. Ne vous inquiétez pas à ce sujet. Comme je l'ai dit ici, le bel objet de type quelque chose que je n'aime pas particulièrement, je n'aime pas trop utiliser l'objet
défini du tuyau revient à vous. J'espère vraiment que vous essayez de créer votre propre variable, de la définir ici. Cela dit, j'espère que ça vous plaira. J'espère que vous sauvez tous, chantez tous vos fichiers, et je vous verrai dans la prochaine vidéo.
80. Obtenir une mise à jour de santé: Bienvenue à mes développeurs
de jeux préférés dans une toute nouvelle vidéo. Et dans celle-ci, on ramasse quelques pièces, on se fait frapper, on descend. Nous pouvons soit rétablir notre santé, soit améliorer notre santé. Nous allons donc améliorer notre santé. Comme vous pouvez le constater, le maximum a augmenté de dix, et notre santé est maintenant pleine car c'est notre mécanicien dans le jeu. Donc, ne perdons plus de temps et commençons. Bon, il est donc temps d'améliorer notre santé. Mais avant de le faire,
il y a quelque chose qui me dérange et quelque chose que nous devons réparer. Tout d'abord, voyons ces trois campus ici. Et sur chaque toile, je vais changer le, quel que soit le prix ici. Ainsi, par exemple, le prix 999 au lieu de cela, nous allons enregistrer cela comme la restauration de la santé. Restaurer la santé. Et nous dirons, combien avons-nous dit que cela coûtait ? Quel est le coût de la restauration de la santé 10. Donc, ici, puis BTC. Bon, donc dans la seconde, ce sera la mise à niveau. Alors ouvre, sélectionne le bouton, laissez-moi les fermer. Qu'est-ce que c'était ? Améliorez la santé. Mise à niveau, santé. Et disons que celui-ci coûtera 30 av. J.-C. Et enfin, le nouvel article, permettez-moi de fermer encore une fois et de tourner ces deux toiles et enfin, nous avons celle-ci ici. Et ce sera par arme ou par arme. Et ce sera, disons 40 BTC. On y va. Maintenant, nous avons tout configuré correctement À penser dans la prochaine vidéo, je vais peut-être ajouter un peu d'animation à chacun de ces éléments et peut-être quelque chose à la plateforme juste pour lui donner un peu plus de vie. Ok, avec ça hors de la route, laissons tomber ça. Mais avant de partir, je veux changer le sprite ici. Et je vous ai fourni quelques sprites. Donc, nous avons d'abord, celui-ci, mais honnêtement, j'ai trouvé ça un peu moche. J'utilise donc aussi ces dernières, et cela dépend vraiment de ce que vous voulez que votre jeu ait. Vous pouvez voir qu'il y a beaucoup de potions ici, donc je vais choisir le rouge. Et nous avons ce verre épais peut-être devrions-nous utiliser le verre épais ? Non, nous allons simplement utiliser le verre ordinaire. Et je vais l'ajouter dans les sprites ici. Ainsi, l'intérieur des sprites s'ouvre plus grand. Et
continuons et cliquons avec le bouton droit de la souris ici et créons peut-être un dossier séparé pour cela ou simplement ajouté
aux ramassage si nous en avons quelque chose ou quelque chose pour la santé. N'importe quoi. Des micros ? Oui, bien sûr. Cela est ajouté aux micros. Ne vous inquiétez pas à ce sujet. Gardez-le ici. Je pense que c'est un bon endroit. Ensuite, nous allons passer à la mise à
niveau de l'article et lui donner celui-ci. On y va. Joli. Très gros. Donc je vais peut-être en faire 200,
appliquer, en faire un point bi-linéaire. Appliquer. Encore grand. 400, 400, je pense que ce serait trop petit. 300 s'appliquent. Et le oui semble être assez bon. On peut peut-être le faire monter un peu. Mais c'est pourquoi je voulais créer le sprite d'objet réel ici pour chacun d'eux. Quoi maintenant ? Allons-y et faisons-le. Certains créent l'objet sprite en cours. Et il est toujours préférable d'avoir ces brillants sur un autre. Et ce que nous pouvons faire, c'est sélectionner ici et cliquer sur Copier le composant. Copiez donc les composants, sélectionnez l'objet sprite et sélectionnez-le ici et essentiellement le composant comme nouveau. Maintenant, je peux revenir ici et supprimer complètement le composant. Et maintenant, ce sprite est libre de monter et de descendre et nous pouvons y ajouter une sorte d'animation librement. Je vais donc le copier et le coller pour le premier élément et ici. Et ensuite, pour celui-là aussi. Et nous devrions réinitialiser la position de chacun d'entre eux. Et pour celui-là. Et ici, au lieu d'avoir ce rouge, nous allons ajouter le sprite habituel que nous utilisons. Et ici, nous allons simplement supprimer le composant. On y va. Excellent. Nous pouvons donc maintenant contrôler cet objet sprite tout sur la chanson. Et que voulons-nous faire d'autre ? Et le dernier ici, les objets privés, retirez cet objet et cet électron et la prochaine vidéo nous ajouterons sa propre arme. Ok, donc hors du chemin, assurez-vous
également de changer les planeurs de boite sur chacun d'eux, juste pour ne pas entrer en collision avec les objets avec ça. Continuons un et maintenant il est
temps de mettre à niveau la santé. Allons-y. Tout d'abord, créez une méthode et le gestionnaire de santé du joueur qui
nous permettra d'augmenter le niveau maximum 2. Nous avons quelque chose à faire ? Non, nous ne le faisons pas. Je vais donc l'ajouter ici. Donc, ici, je vais créer un vide public. Augmentez max. Qu'est-ce que c'est ? Santé maximale. Et ici et le montant maximum de santé. Et ensuite, nous allons obtenir la santé maximale et augmenter d'un montant de santé V-max. Et ensuite, nous allons avoir la santé actuelle et c'est égal à la santé maximale. Ou si vous le souhaitez, vous pouvez éviter cela et ne pas le faire. Nous obtenons donc une mise à niveau, mais nous n'avons aucune santé. Ou, par exemple, si vous le souhaitez, vous pouvez définir au lieu de la santé maximale, vous pouvez définir l'état de santé actuel plus 75 % ou quelque chose comme ça. Je crois que c'est quelque chose qui se passe à Hadès ou que vous pouvez l'augmenter seulement dix ou comme vous voulez faire avec, je vais simplement garder les choses simples comme ici. Ensuite, il y a une autre chose que nous devons faire, est-à-dire que nous devons entrer dans l'instance UI Manager Door, et nous devons mettre à jour The Wait une seconde, alors que le gestionnaire d'interface utilisateur, nous devons mettre à jour la demi-barre afin que nous ayons besoin de nous assurer qu'elle montre ce qui se passe. Augmentez la valeur maximale et la valeur de notre état de santé ici, dans l'instance UI Manager, nous mettons à niveau la valeur maximale, qui est la santé maximale du curseur. Et c'est important parce que cela
déterminera le fonctionnement de la limace. Donc, après avoir mis à niveau la santé maximale, nous devons aller à l'instance de point UI Manager, valeur maximale du curseur de santé des points. Et ça va encore être égal au maximum Hello. Alors, sauvegardez ça. Et nous veillerons également à mettre à jour l'état de santé du joueur que vous êtes à la fin. Gardez ça. Ok, super. Maintenant, avec cela, temps d'acheter l'article ici. Je vais donc vous le lancer comme un défi. Et c'est pour créer un autre cas pour la mise à niveau de santé. Créez donc un nouveau dossier qui prend le type d'élément de mise à niveau de santé. Ensuite, vous devrez trouver le système de santé du
joueur comme précédemment ou si vous utilisez la collision, puis augmentez enfin la santé maximale de notre joueur. Est-ce que bien que la façon de mettre en pause la vidéo maintenant et d'aller au défi. Oh, salut, bon retour. Donc de retour dans l'article de la boutique ici nous avons un autre cas que nous allons appeler la mise
à niveau de santé des points de type d'article de cas. Et nous allons faire de même. Nous allons trouver le gestionnaire de santé de la couche. Et ensuite, nous allons augmenter la santé maximale de combien augmenterons-nous le Mac South ? Gardons ça à 10 heures. Gardez les choses simples pour que nous puissions facilement comprendre et ensuite nous allons rompre. Donc de retour dans notre jeu, voyons voir, nous avons dit que cela causerait 13 Bitcoins. Donc, n'importe où, passons à 30 ans. Gardez ça, lancez le jeu. Maintenant, nous devrions voir que nous prenons quelques pièces de monnaie. On peut être blessé si tu veux. On y va. Nous sommes maintenant à 200 ans. Nous pouvons soit rétablir la santé, soit améliorer notre santé. Donc, si j'améliore la santé, tu y vas. Vous pouvez voir que j'ai 310 maintenant et que je peux également le mettre à niveau. Je peux l'acheter mais rien n'est amélioré. Si vous pensez que c'est injuste que nous puissions acheter l'article, mais que nous n'en tirons aucun avantage, alors soyez mon invité. Je vous recommande d'essayer d'abord de vérifier, avant d'augmenter la santé, est-ce que nous l'avons réellement au maximum ? Si vous l'avez au maximum, ne prenons pas, ne l'achetons pas ou quelque chose comme ça. Alors, avec cela, j'espère que ça vous plaira et je vous verrai dans la prochaine étape où nous allons réellement acheter les armes. Ensuite, nous allons le régler à partir de 40 ans. Gardez ça. Et je vous verrai alors. Oh, et n'oubliez pas,
bien sûr, de valider vos changements. On se voit dans le prochain.
81. Faire du shopping pour des armes: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo, une toute nouvelle vidéo longue. Mais cela en vaut la peine car maintenant, lorsque nous lançons le jeu, nous récupérons des pièces. Nous allons ici, d'accord, donc nous pouvons rétablir la santé, améliorer la santé ou faire quelque chose de beaucoup plus cool, et c'est par nous-mêmes une arme. Nous prenons donc un fusil et ensuite nous pouvons aller le tirer partout. Ne perdons donc plus
de temps et passons à acheter des armes, des visas comme Paxos, en tout cas. Il est donc temps pour le dernier objet que nous pouvons acheter, qui est l'arme. Je vais donc entrer dans le sprite objet. Et au fait, ce que j'ai fait hors écran, c'est que j'ai ajouté quelques animations et je
m'assure que le sprite d'objet est à un autre niveau. Vous pouvez donc tous les voir tourner et vous pouvez voir que la plateforme possède cette petite animation dessus. Assez simple, assez facile. Je ne vais pas aller trop loin là-dedans. Mais ce que je vais faire, c'est que je vais
aller ici et changer cette fierté par rapport au dernier. Et allons dans les sprites. Des micros. Non, pas de micros. , armes,
armes, ramassage d'armes. Sélectionnez celui-ci et ajoutons simplement le fusil pour le moment. On y va. Je peux le voir. Allons le rendre un peu plus grand. Désolé pour ça. Nous devrions en quelque sorte conserver le rapport d'aspect. Maintenant, quoi ? Augmentons simplement l'échelle de deux, de deux, de 1,5, de 1,5. Ok, super. Alors maintenant, lorsque nous lançons le jeu, je crois que cela devrait tourner parce qu'il a l'animateur. On y va. Vous pouvez voir qu'il tourne autour et attendez que nous venions nous rassembler. Maintenant, la différence entre
les deux autres objets et l'arme est que nous ne voulons pas avoir, par
exemple, un fusil Item 40. Nous voulons obtenir une sorte d'objet aléatoire ou d'arme
aléatoire lorsque nous voulons acheter une arme. Je vais donc entrer dans le script de l'élément et cette erreur me dérange beaucoup. Et dans l'article de la boutique ici, je vais créer quelques lignes. Tout d'abord, je veux créer un champ sérialisé du système d'armes. Et il va s'agir d'un éventail
d' armes potentielles à acheter. Il s'agit d'un nom long pour une variable. Et puis je vais créer un système privé et le
système d'armes et l'arme réelle, pas d'arme non plus. Par, on y va. Enfin, nous allons faire deux choses. La première chose à
faire est de bien faire, car nous
voulons changer le sprite en fonction l'arme que nous allons acheter. Donc, sprite privé, moteur de rendu. Et on y va. Et l'objet sprite, pas l'objet sprite, le sprite d'arme. Donc, arme, parce que cela ne sera utilisé que pour l'arme. Et puis nous allons obtenir le champ sérialisé, le texte Mesh Pro ou TMP Pro, Tempe pro, oui, abrégé P Pro. Et ce sera le texte du prix sur lequel nous voulons modifier le prix en fonction, d'
accord, donc nous ne pouvons pas l'utiliser car nous avons besoin de TMP Pro, désolé pour cela. Ou vous savez ce que nous pouvons faire réellement, nous le pouvons, au lieu d'utiliser le texte de la sonde TMP Mesh pro Gu. On y va. De cette façon, nous n'avons pas besoin d'ajouter une bibliothèque entière. s'agit donc que d'une nouvelle façon de faire les choses. Et maintenant que nous avons un prix pour chacune de nos armes et un sprite pour chacune de nos armes. Allons dans le système d'armes. Allons de l'avant ici et créons un champ sérialisé pour le prix des armes. Donc, le prix de l'arme. Et nous allons également créer un champ sérialisé pour le sprite. Et ce sera le sprite de la boutique d'armes. Il est évident que tous ces champs sont sérialisés, nous ne pouvons
donc pas y accéder. Nous devons donc créer quelques méthodes ici. Le premier sera un public et quoi et,
et obtiendra un prix d'arme. Et cela va rendre le prix de l'arme. Ensuite, nous aurons un sprite public à droite, et nous obtiendrons un sprite de magasin d'armes. Et cela reviendra, retournera l'arme, non ? Sprite de magasin d'armes. On y va. L'image de l'arme et les armes
Sprite sont donc totalement différentes. Peut-être qu'ils ne devraient pas l'être, peut-être qu'on peut en avoir un qui retourne le sprite entier. Mais si vous regardez ici, je veux avoir celui avec
la petite ligne blanche et fine autour de lui afin que nous puissions facilement distinguer l'arme. Dans ce que vous pouvez même changer cela ici, celui-ci. Ne nous inquiétons pas à ce sujet. Continuons comme nous sommes. Ces petites astuces peuvent ensuite être ajustées à la fin et nous pouvons changer tout cela. Allons maintenant dans les armes. Où sont les armes qu'ils sont dans les préfabriqués. Les armes résiduelles, résiduelles réservées, les armes ennemies brisées. On y va. Donc, le fusil qui a
fendu ça et voyons ce que nous avons ici. Donc, le sprite de magasin d'armes et le prix de l'arme, combien coûte le fusil ? Disons 10. Disons que le pistolet coûte 20$. Non, désolé pour ça. Maintenant, quoi ? Faisons en sorte que le fusil coûte 20. Revenons en arrière. Le pistolet en coûtera dix et le fusil de chasse en coûtera 30. Et ce ne sont que des chiffres arbitraires. Je ne sais pas ce que vous voulez utiliser aux États-Unis. Loi. Allons mettre en place les sprites. Je vais donc rendre celle-ci un peu plus grande pour pouvoir voir les noms ici plus rapidement. Et qu'est-ce que nous avons ici ? Des micros ? Non. À chaque fois. OK. Ajoutez donc le sprite de fusil de chasse pour le fusil. Débloquez ça pour le fusil. Je vais non, non, non, non. C'est un peu encombrant, n'est-ce pas ? Donc, n'importe où au fusil. Enfin, nous sélectionnons les armes et le préfabriqué, le pistolet. Armes, prenez le PESTEL, nous le sauvegardons. Et maintenant, nous avons une référence à tous ces éléments. Super. Maintenant que nous avons le sprite, nous avons le prix de l'arme, la prochaine chose à faire est de commencer et de
tout mettre en place dès que les armes pensent. Donc, dans l'article de la boutique ici,
je vais économiser, je vais commencer, et je vais vous lancer un défi. Votre défi est donc de vérifier le type, sélectionner des armes aléatoires, de définir le sprite et la taxe. Alors, et commencez à vérifier si nous avons un objet de type arme, vous devrez sélectionner un pistolet aléatoire parmi les armes potentielles ou potentielles. Et vous devrez définir le coût de l'article comme le prix de l'arme. Vous devrez définir le sprite comme pistolet approprié. Vous devrez également satisfaire les textes. Et je pense que c'est le dernier point. Donc, avec cela,
arrêtez la vidéo dès maintenant et allez sur le HL7. Oh, d'accord, bon retour. Donc, au début, ce n'est pas ce que je voulais dire. Si nous avons un type d'objet égal à l'arme de type d'objet. Ensuite, ici, nous allons définir quelques choses. Tout d'abord, nous allons créer une arme sélectionnée au hasard et elle sera égale à une plage de points aléatoire. Le 0 et le potentiel. Qu'est-ce que c'est ? Les armes potentielles pour acheter de la longueur des points. Ensuite, ici, nous allons sélectionner l'arme à acheter et elle sera
égale à l'arme potentielle à acheter sur la position de l'arme sélectionnée. Ensuite, nous allons aller de l'avant et obtenir le coût de l'article, qui sera l'arme à acheter, qui aura le prix de l'arme. On y va. Et enfin, nous allons créer cette fierté. Alors, comment allons-nous d'abord obtenir le sprite ? Nous allons obtenir composante et enfants le sprite. Ou sachez ce que nous n'aurons peut-être pas besoin de celui-là. Mais de toute façon, il suffit de sauter ça. Nous allons aller dans le moteur de rendu de sprite. C'est la composante des enfants, pourquoi les enfants ? Parce que sur cet élément qui a le script réel, le sprite d'objet est en bas. Et parce qu'aucun autre objet de jeu, oh, nous avons un autre objet de jeu qui est la plateforme d'objets. Ce sera délicat. Donc, vous savez quoi, pour que tout soit correctement configuré, je vais faire de ce champ un champ sérialisé et l'enregistrer. Et puis revenez en arrière, désolé. Et puis revenez à chacun d'entre eux et attendez une seconde. Renderer sprite d'armes. Je l'étais et j'étais confus. J'ai été confus là une seconde, désolé pour ça ici. Je vais donc y aller et ajouter l'objet sprite. Et voici le sprite. Et ici aussi l'objet sprite. Nous ne confondons donc aucun de ces éléments. Et aussi longtemps que nous sommes ici, ajoutons également le texte du prix. Donc. D'accord, donc pour une raison quelconque, j' ai oublié de changer leur nom. Ce sera donc le texte du prix de l'article pour une raison quelconque, je pensais que nous avions changé d'étudiant. Ne vous inquiétez pas à ce sujet. Et ce sont les choses que nous devons faire. Nous ne les aimons pas, mais nous devons les faire à un moment donné. Allons de l'avant et mettons tout en place. On y va. Nous avons donc maintenant une référence à tous ces éléments. De retour ici. Le moteur de rendu de sprite d'armes. Le sprite sera
égal à l'arme pour acheter ça,
acheter un sprite de magasin d'armes. On y va. Gardez ça. Et la dernière chose que nous devons
faire , c'est de définir le texte. Nous allons donc obtenir le texte du prix. Le texte. Et que disons-nous ici ? Voyons ce qui a été écrit à l'origine ici par arme. Donc, au lieu de simplement par arme, nous commencerons par. Ensuite, nous allons le concaténer avec l'arme pour acheter le nom d'arme dot get. Et c'est une chaîne, donc nous pouvons le faire légalement. Et ensuite, nous dirons le prix. Nous ajouterons donc ces deux éléments plus le coût de l'article et le coût de l'article. Et il s'agit d'un entier. Alors rappelez-vous quand nous avions un entier quelque part
auparavant, j'ai oublié. Vous vous souvenez donc parce qu'il s'agissait d'un entier, nous ne pouvions pas simplement le vendre. Nous devions dire point toString. Alors, et peut-être que je n'étais pas clair ce que cela faisait. ToString convertit donc tout entier ou float en chaîne et vous pouvez l'utiliser. Mais ici, parce que nous sommes en train de concaténer, concaténation signifie que nous ajoutons un plus entre une chaîne et un entier ou une chaîne et un float. Donc, lorsque nous concaténons une chaîne avec un élément ou que nous sommes désolés, avec un entier, nous n'avons pas besoin d' ajouter deux chaînes immédiatement. Visual Studio et le code C Sharp comprennent que, bien qu'il s'agisse d'un entier ici, nous l'utilisons comme une chaîne. Nous sauvegardons cela et nous devons également ajouter ici BTC. Gardez ça. Revenons maintenant dans notre jeu et voyons si cela fonctionne. Nous n'avons toujours pas ajouté le pistolet, mais voyons si cela
fonctionne réellement est une sélection aléatoire. Allons donc ici. Bon, donc un fusil. on va acheter une arme et ça n'a pas fonctionné. Pourquoi est-ce que c'est ? Parce que nous n'avons rien ajouté à la baie. Par conséquent, ici, nous devons ajouter les armes potentielles à acheter. Et c'est cohérent ici dans les préfabriqués, les armes préfabriquées,
sélectionnez les armes potentielles et prenons simplement le fusil de chasse et le fusil parce que nous tenons un pistolet et notre main. Alors, lancez le jeu. Allons voir ce qui se passe. On y va donc un fusil. Achetez un fusil pour 20 bitcoins. Essayons encore une fois pour essayer d' obtenir le fusil de chasse, assurez-vous qu'il fonctionne. On y va. Le fusil de chasse près du fusil, des pièces de 430 bits. Mais maintenant, lorsque nous appuyons sur E, rien ne se passe car nous
n'avons toujours pas ajouté de mode d'achat. Donc, ici, nous allons créer un dossier. Et ce cas sera pour le type d'objet point l'arme. On y va. Et maintenant ici, nous allons d'abord trouver le joueur que nous voulons ajouter, les armes aussi. Je vais donc dire ici que nous
avons une manette de joueur, c'est-à-dire le joueur qui achète le joueur, le joueur qui achète. Alors, les joueurs achètent. J'ai vraiment du mal à sélectionner des noms pour des
objets de type fini. Et comme vous pouvez le constater, nous avons code
redondant à chaque fois. Peut-être devrions-nous changer cela. Nous faisons beaucoup de recherches. Je ne sais pas, je pense que nous devrions changer cela à un moment donné. Donc, au lieu de déclarer le gestionnaire de santé, nous allons obtenir la manette du joueur. On y va. Nous avons donc maintenant une référence à la manette du joueur. Ensuite, ici, nous allons dire que le pistolet que nous avons, donc nous allons instancier l'arme que nous possédons. Donc, l'arme à acheter. Et nous allons instancier sur le point qui achète le joueur. Les armes sont. Donc, comme nous l'avons fait lorsque nous prenions une arme. Nous instancions donc l'arme sur le bras des armes. Et la dernière chose que nous devons faire, nous devons également dire cette arme sur le pistolet disponible du joueur. Nous allons donc aller de l'avant et obtenir une référence à cela. Parce que si je me souviens bien, si nous achetons un pistolet, ajoutez une arme disponible, vous y allez. Vous pouvez voir que c'est l'arme à ajouter. Nous devons donc obtenir une référence ici, ou vous pouvez réellement copier ceci et le mettre ici. Ça n'a pas l'air très joli, ça n'a pas l'air très professionnel. Si vous regardez le code, vous ne comprendrez pas exactement ce qui se passe. Au lieu de cela, nous allons
créer un système d'armes ici. Et c'est l'arme pour ajouter un égal à instancier. Et puis ici, nous avons dit l'arme à ajouter et n'oubliez pas de casser. C'est quelque chose dont nous avons besoin et au cas où nous aurions créé la valeur par défaut ici. Cela indique que si aucun de ces éléments ne fonctionne, le débogage par défaut, journal de
pensée et aucun type d'élément n'a été choisi. Et tout. J'aime beaucoup les boîtiers de commutation. Ils sont vraiment gentils. Si vous les regardez. Ils sont vraiment très beaux. Donc, vous avez une affaire, tout est vraiment bien arrangé. Revenons donc en arrière et voyons ce qui se passe ici. S'il s'agit d'une arme, nous obtenons la manette du joueur, une référence à la manette du joueur. Nous n'en avons qu'un seul, ce n'est donc pas un problème. Nous instancions ensuite l'arme. Nous l'avons défini dans une variable
et, bien sûr, nous la définissons sur le joueur
qui achète, qui a toujours une armée qui veut définir l'enfant, nous définissons
le parent de l'arme que nous avons instanciée comme bras, et puis on obtient le joueur qui achète, on ajoute l'arme disponible. Il est évident que nous avons besoin, comme vous vous en souvenez ici, que
nous avons les armes disponibles sur le joueur. Nous ajoutons cette arme, nous cassons et nous avons nos Robins. Alors, encore une fois. Voyons si cela fonctionne. Lancez le jeu. Et nous prenons des pièces pour nous acheter un fusil de chasse. Maintenant que nous avons un pistolet, nous avons le fusil de chasse. Est-ce que c'est cool ? Donc maintenant, nous avons un fusil de chasse, et non seulement nous avons ici, j'aimerais ne pas utiliser le maximiser en jeu et maximiser, nous allons simplement l'enlever. Donc, non seulement nous avons le fusil de chasse et les bras et cela fonctionne, il tire et il fait tout. Mais nous aussi, si nous allons, où est-il ? Où est-il sur le lecteur DOM ? Débloquez celui-ci ici. Vous y allez. Vous pouvez voir que nous avons un fusil de chasse et un pistolet. Donc, avec cela, nous
avons fini de créer tous nos articles de magasinage. J'espère que ça vous plaira. J'espère que vous apprécierez la façon dont le jeu se déroule. Assurez-vous de toujours valider vos modifications et assurez-vous de me laisser un avis si vous ne l'avez pas déjà dit, je vous verrai dans la vidéo suivante.
82. Section 14 : Créer des menus - Configurer l'écran de titre: Bienvenue à mes développeurs
de jeux préférés dans une nouvelle vidéo longue. Et dans celui-ci, quand nous lancerons le jeu, vous verrez que le pin a acheté Invader 2D. Pourquoi cela sonne-t-il comme ça ? Mais de toute façon, nous avons deux boutons. Le bouton de sortie qui affiche simplement ce texte ici, et le bouton Démarrer lorsque nous le choisissons, nous y allons. Nous passons au premier niveau. Est-ce que c'est cool ? On peut tirer, on peut obtenir de l'aide, on peut aussi mourir. Donc, ne perdons plus de temps et commençons. Oh, l'affaire. Il est donc temps de créer quelques menus et nous allons commencer par l'écran de titre, car chaque partie a évidemment besoin d'un écran de titre. Ce que j'ai décidé de faire, c'est d'avoir l'écran de titre, le test1, et je vais le convertir en écran de titre. Oui, rechargez. Et je vais enlever le squelette. Je vais seulement garder le joueur et j'ajouterai quelques objets cassables. Donc, dans les préfabriqués. Et augmentons un peu la taille ici. Et où est-il ? Portails de pick-up, chambres. Bon, donc quelques pièces cassables. Je vais donc en ajouter un ici et un autre ici, et un autre ici. Et juste quelques parties que nous
allons nous amuser à détruire. Et dans ce menu, nous aurons également les deux boutons qui nous
indiqueront de commencer le jeu ou de quitter le jeu. Allons-y et faisons-le. Je vais cliquer ici avec le bouton droit de la souris. Je vais ajouter un canevas d'interface utilisateur, et ce sera le canevas du menu principal. Je vais mettre en place le système événementiel ici. Je vais m'assurer que c'est désolé, car l'espace d'écran superpose et m'assurer que la balance aura la taille de l'écran. Et voilà, 1920 par 1080. Appuyez sur Entrée, double-cliquez pour que
nous puissions le voir correctement ici. Et qu'allons-nous avoir pendant que nous allons juste avoir l'écran où nous nous déplacons. Mais nous aurons également deux boutons et le nom du jeu. Nous devrions peut-être rendre cela un peu plus petit. Je ne sais pas. Je pensais encore comment allons-nous s'adapter à tout cela. Peut-être pourrons-nous essayer de sélectionner tous les pots et le lecteur de dôme et rendre toutes les parties un peu plus petites sur la balance, peut-être les faire 0,30,20 à cela. Toujours petit. 0,50,5 ? Oui, bien sûr. Et puis ils ne jouent pas est également 0,50,5. On y va donc. Si nous essayons de lancer le jeu maintenant avec notre petit gars. Ou comme vous pouvez le voir, il est toujours très grand et il ne peut pas ramasser les objets car la balance est très petite. C'est parce que le, je viens réaliser que les animations vont le garder grand. Alors ramenons-le à un. Et pas de soucis, nous allons essayer de tout mettre ici. Revenons donc à un. Gardez ça, ok, les ennemis dirigent le jeu. Nous aurons le gars du sprite. Vous allez vous promener. Il ne peut pas ramasser les choses parce qu'ici nous avons une sorte d'erreur. Et c'est parce que nous n'avons pas le gérant, nous n'avons pas d'entrepreneur sur la pièce. Il y a un problème. Pourquoi est-ce que c'est ? Eh bien, parce que le gestionnaire de jeu n'est pas disponible également sur la pièce. Nous allons donc arrêter le jeu. Et nous allons sélectionner toutes
ces pièces et nous assurer que le compte-gouttes de l'article, retirons le composant pour l' instant et gardons simplement le cassable afin d'éviter toute erreur. On y va, on casse des pots et on s'amuse. Et nous ajouterons également deux touches ici pour permettre
au joueur de choisir s'il doit quitter ou continuer la partie. Donc, dans notre écran et notre canevas ici, je vais cliquer avec le bouton droit de la souris pour sélectionner votre, j'ajoute un texte Mesh Pro. Ce sera le titre. Donc le titre du jeu, donc le bot de temps , l'
envahisseur, je ne suis pas sûr de vouloir appeler cela peut être condamné, acheté et Vader, mais gardons ça tel quel. Modification de la taille automatique de la police, augmentez le maximum et agrandissons un peu. Mettons-le au milieu. Augmentons encore plus le maximum. On y va donc. Nous avons besoin d'un gros titre énorme 40 fois à la fois envahisseur à d. et nous pouvons ajouter quelques sous-vêtements, quelques éclairages sur la lueur. Par exemple, nous pouvons augmenter le ou la sous-couche et ajouter une couleur ici pour le rendre un peu plus frais. Allez-y, étiquetez ceci, augmentez la douceur, le décalage sur le y, ou quelque chose comme ça. Choisissez donc les couleurs que vous jugez appropriées. Peut-être que celui-ci soit rouge ou noir ou antinode. Non, le noir est mauvais. Voyons, peut-être augmenter ce rouge et augmenter sur le Y. On y va donc. Nous avons donc quelque chose comme un bot temporel et Vader 2D. Et ce n'est pas très joli, mais il fait son travail. Et maintenant, nous allons ajouter deux autres boutons. Donc ici, je vais cliquer avec le bouton droit et l'interface utilisateur et ajouter un bouton. Ce sera le bouton Démarrer. Et je vais le déplacer un peu vers la gauche. Et c'est là que nous décidons où nous voulons le mettre. Donc, parce que nous n'avons pas trop d'espace, vous pouvez voir comment je regarde le jeu. Je vais peut-être les installer ici. Voyons si nous gérons le jeu. De quoi cela ressemble-t-il ? ai donc un bouton ici,
non, je pense que ce n'est pas mal. Ce n'est pas mal du tout. Je vais peut-être augmenter la taille. Et dans les ressources. Nous pouvons y aller et vous trouverez
les éléments de menu que je vous ai fournis. Ce sont donc les boutons. Donc, dans nos sprites, voyons,
avons-nous quelque chose sous les éléments de l'interface utilisateur, les éléments de l'interface utilisateur et cliquez avec le bouton droit de la souris, créez 140 boutons. Ouvrez-le et faites glisser les boutons jusqu'à Unity. Et voyons ce que nous avons ici. Et passons à plusieurs mensonges Sprite Editor. C'est couper ces bébés. On y va. Ils sont donc parfaitement tranchés avec les ombres. Appliquez donc les modifications. Maintenant, nous les avons et je vais sélectionner le bouton Démarrer. Et comme vous pouvez le constater, nous avons le composant React normal auquel nous sommes habitués. Et nous avons aussi l'image et le bouton ici. Vous pouvez également ajouter un événement en cliquant sur ce bouton. Chaque fois qu'il est cliqué, vous pouvez modifier son comportement. Ainsi, si la couleur normale, par exemple, peut être complètement noire, blanche ou rouge ou autre, vous pouvez modifier la couleur surlignée. Par exemple, si nous déplaçons notre souris sur ce bouton, appuyez librement sur le bouton et devient, par exemple, vert. Et si nous sélectionnons, je ne sais pas, couleur
sélectionnée, je ne suis pas sûr de ce que c'est. Donc, si je lance le jeu maintenant, vous remarquerez que si je passe au-dessus du bouton et que je deviens rouge, une fois que j'ai cliqué dessus, il devient vert. Voici donc comment fonctionnent les boutons. Vous pouvez jouer avec beaucoup de choses ici. Mais ce sur quoi je veux me concentrer, c'est changer la source du sprite. Et voyons quel type de boutons nous avons ici. donc passé quelque chose de mal dans Sprite Editor. Et combien de sprites avons-nous ? 1, 2, 3, quelles sont ces choses vides ici ? Je n'aime pas l'apparence de ça, mais de toute façon, essayons d'ajouter ce bouton. On y va. Vous pouvez donc voir que c'est le bouton que nous avons ajouté. Essayons de le définir à taille
native ou peut-être de l'augmenter sur le Y. Nous pouvons définir deux boutons chaque
côté de l'écran de titre. Et peut-être que vous pouvez ajouter un autre type de bouton, peut-être celui-ci qui est un peu plus clair. Je pense que c'est mieux. Maintenant, lorsque nous lançons le jeu, vous pouvez voir que nous avons un bouton très joli et qu'il change
même de couleur lorsque nous appuyons dessus. Et peut-être que vous ne voulez pas avoir ce genre de choses. Peut-être que la seule chose que vous voudrez peut-être avoir, c'est de ne pas le faire presser. On peut peut-être le rendre plus sombre ou quelque chose ou le garder tel quel,
mais il suffit de changer l'alpha dessus, ce qui est aussi une bonne idée, mais je vais m'assurer d'avoir une sorte de couleur
verte. nous savons que nous appuyons sur ce bouton. Et maintenant, nous avons le bouton Démarrer. Nous allons dupliquer cela et le déplacer vers la gauche. Et ce sera le bouton de sortie. Donc, le bouton Quitter. Et maintenant, ce que nous devons faire ou vous savez quoi ? Je l'ai peut-être fait trop tôt. Il suffit de supprimer le bouton X car nous voulons modifier le texte. Et ici, vous pouvez voir que nous avons des textes de boutons. Nous ne voulons pas ce texte. Nous avons supprimé. Nous ajouterons notre propre texte, qui est un texte Mesh Pro. Et évidemment, nous allons rendre le cyborg audacieux. La taille automatique, les exigences accrues, le
placent au milieu. Et c'est tout, c'est tout ce que nous devons faire. Et je vais augmenter la taille de celle-ci. Faisons donc un peu plus gros et placez-le
au milieu et assurez-nous simplement qu'il s'adapte correctement. Maintenant, la seule chose qui pourrait nous déranger ici, c'est que le
moment où nous avons essayé de changer, par exemple, la couleur de celle-ci. Oh non, non, tout fonctionne. Devrions-nous faire sombre ? Je pense que c'est sombre. Tout d'abord, essayez de taper le nom, alors le début est venu. Ok, donc apparemment, l' obscurcissement n'est pas la voie à suivre. Quelles couleurs devrions-nous choisir ? Peut-être même devrions-nous enlever la sous-couche. Mais si nous retirons la sous-couche ici, retirez également la sous-couche ici. C'est pourquoi parfois je n'aime pas utiliser la sonde Mesh
textuelle parce que tout est en quelque sorte lié. Nous modifions l'intégralité
de ce qui détecte le maillage Pro. shaders sont une toute autre race d'informations. Je ne vais donc pas m'y plonger trop profondément. Revenons donc dans Unity. Et voyons à quoi ça ressemble. Si je lance le jeu, est-il visible ? Commencez donc le jeu et pas beaucoup. Quand il devient rouge, il est plus visible. On peut peut-être changer l'arrière-plan du bouton. Donc je joue juste honnêtement, je ne suis pas sûr de ce que je fais. Je suis juste en train de tester les choses comme vous. Non, je pense que celui-ci est meilleur pour notre jeu de départ. Et maintenant que nous avons celui-ci, maintenant nous pouvons dupliquer, appelez-le le bouton Quitter. Et déplacons-le sur le côté. l'autre côté. Et ici, nous allons modifier le texte pour y accéder. Une fois encore. Appuyez sur Entrée. On y va. Nous avons donc maintenant deux boutons. Nous avons mis en place le menu. Nous pouvons nous promener, nous pouvons détruire ces choses, nous pouvons tirer autour de nous. Nous utilisons les boutons très effrayants. On y va. Et on peut commencer le jeu, quitter le jeu. Mais comme vous pouvez le constater, ils ne
font rien de temps en temps. Ce que nous allons donc faire, c'est ajouter quelques fonctionnalités à ces fonctionnalités. Je vais donc entrer dans les scénarios. Je vais cliquer avec le bouton droit de la souris et créer un dossier pour le menu. Double-cliquez ici, cliquez avec le bouton droit de la souris et créez un script C aigu pour le Gestionnaire de menus principaux. Et appelons-le simplement menu, menu principal car nous devrions l'ajouter au Gestionnaire de menu principal si c' était le cas. Quel est le problème ici ? Nous avons un problème avec les effets sonores, je pense. Oui, je pense que c'est un problème avec les effets sonores. Le problème avec quelques choses. Il y a beaucoup de problèmes ici parce que nous
n'avons pas ajouté tout le manager et tous ces trucs, mais nous ne nous en soucions pas vraiment. Cela ne posera pas de problème car nous ne faisons rien. Et à ce niveau, c'était maintenant le menu principal. Ajoutons-le au canevas du menu principal. Double-cliquez et ouvrons le script ici. Nous allons donc
tout d'abord créer une méthode pour le jeu de sortie. Donc, le jeu de sortie du vide public. Et parce que nous sommes toujours dans l'éditeur et que nous n'avons pas implémenté le jeu, cela ne fonctionnera pas. Mais si nous écrivons le point d'application de près, je veux dire que l'application enseignée a démissionné. Cela quittera l'application et quittera l'application lecteur. Et comme vous pouvez le constater, mais comme nous sommes dans le mode jeu de l'éditeur Unity, cela ne fonctionnera pas. Ce que nous allons faire, c'est que nous ajouterons simplement un journal de points de débogage. Et nous dirons que nous avons quitté le jeu. Croyez-moi, lorsque vous construisez ce jeu, ce bouton fonctionnera. Ne vous inquiétez pas à ce sujet. Quoi qu'il en soit, ça va faire fonctionner le jeu. Et si nous revenons dans Unity, si nous allons sur le bouton de sortie, nous pouvons faire défiler vers le bas ici et dans l'événement onclick, nous pouvons appuyer sur ce bouton Plus et nous pouvons tout d'
abord ajouter un objet que nous accédera aux fonctions de. Donc, si j'ajoute le menu principal, vous remarquerez que maintenant je peux accéder à fonctions et à l'une de ces fonctions. Par exemple, je peux accéder à l'objet du
jeu et faire quelques choses ici. Peut-être éteindre l'objet du jeu, diriger ,
transformer, changer de nom, etc. Mais je peux également accéder au menu principal. Et vous pouvez voir ici que j'ai Canvas, Canvas, Scaler, Graphic, Ray Caster, et tous ces composants sont des composants à l'intérieur du canevas du menu principal que j'ai fourni le bouton qui contient également le menu principal. Donc, dans le menu principal, je vais le sélectionner. Et vous pouvez voir que j'ai beaucoup de méthodes que je peux utiliser. Et l'un d'eux est le jeu de sortie que je viens de créer. Donc, quand je clique dessus, je lance le jeu. Je peux me promener et faire ce que je fais. Et si je clique sur le jeu de sortie, vous remarquerez que nous avons quitté le jeu. Pourquoi nous capitalisons, je ne sais pas, mais vous pouvez voir que ce bouton fonctionne
réellement et je peux appuyer dessus. Il est donc temps de créer la méthode de démarrage du jeu, et ce sera votre défi. Définissez donc
la scène et l'index du bâtiment comme première scène et le premier niveau pour être la deuxième scène. Vous vous souvenez donc des ponts de construction. Si ce n'est pas le cas, vous devrez aller de l'avant et vérifier. C'est dans les paramètres de création de fichiers, je crois. Oui. Oui. Nous devons donc commencer le jeu. Pour commencer le jeu, nous devons charger le premier niveau. Pour charger le premier niveau, évidemment, nous avons besoin d'un responsable de scène et de toutes ces bonnes choses. J'espère que vous n'avez pas oublié comment le faire. C'était il y a quelques sections. Créez la méthode de démarrage du jeu, assurez-vous qu'elle est publique. Et la méthode accède au gestionnaire de scènes et obtient les paramètres de génération de la vue active actuelle. Ensuite, vous devrez l'augmenter d'un. Et tout comme un petit indice, vous devez accéder au gestionnaire de scène, obtenir une scène active et créer un index plus un. Donc, avec cela hors du chemin, mettez la vidéo en pause dès maintenant et allez faire le tout seul. Bon, bon retour. Alors tout d'abord, laissez-moi supprimer le démarrage et la mise à jour. Je ne suis pas sûr que nous les utiliserons un jour. Et ici, je vais ajouter
à la haute direction du moteur point. Et maintenant, je vais créer un vide public. jeu des étoiles du vide doit être en majuscules et celui-ci ne doit pas commencer le jeu. Cela a ouvert les lignes tordues. Et ici, je vais accéder à la charge de points du gestionnaire de scène vue. Et quelle scène dois-je charger ? Eh bien, tout d'abord, passons aux paramètres de création de fichiers. Et l'écran de titre est déjà le premier. Donc, ce que je veux faire comme je veux obtenir l'indice de celui-ci, puis l'augmenter d'un. Je vais donc aller de l'avant et voir cette scène. Manager Dot, mettez-vous en scène active. Et ici, je vais obtenir l'indice de construction et je vais l'augmenter d'un seul. Nous passons donc immédiatement à la scène suivante. Gardez ça. Revenons maintenant dans notre jeu. Et voyons si cela fonctionne. Je vais donc me présenter à nouveau. On se promène, on détruit des choses, on quitte le jeu, ça ne marche pas. Commencez le jeu. Et cela ne fonctionne pas parce que nous n'avons pas assigné à quel point nous sommes intelligents, nous n'avons pas attribué le bouton d'arrêt pour faire quoi que ce soit. Alors, menu principal, combien de fois vais-je commettre cette erreur jusqu'à ce que nous le sauvegardions enfin ? Lancez le jeu. Recommençons à nouveau. On y va. Nous sommes donc au premier niveau. Est-ce que c'est cool ? Et nous savons que c'est le premier niveau car nous
avons tous les squelettes ici. Vous voyez, même si nous n'avons pas apporté de changements à ce niveau, mais parce que nous avons changé les préfabriqués du squelette, ils peuvent maintenant ramasser les choses. De toute évidence, il y a deux choses que nous devons changer. Mais pour l'instant, nous savons que le jeu de départ fonctionne, le jeu de sortie fonctionne. Nous avons créé un écran de titre. Nous allons valider nos changements et nous allons vous voir ou, en fait, je vais vous voir dans la prochaine vidéo.
83. Avoir l'écran de victoire: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, comme vous pouvez le constater, nous avons créé une victoire, vu rien de trop spécial, rien de trop chic, et nous avons juste eu la victoire. Nous avons appuyé sur n'importe quelle touche,
nous collectons, nous allons au menu principal, nous commençons le jeu, nous recommençons. Nous avons cela bizarre pour une raison quelconque, nous avons l'arme qui ne fonctionne pas correctement. Nous y parviendrons plus tard pour une raison quelconque lorsque nous passons à travers les niveaux pourrait être quelque chose qui s'est perdu en cours de route. Mais il y a quelque chose que je veux faire dans cette introduction et je ne pense
pas en faisant la vidéo et c'est ajouter la couche ici. Ce que je vais faire, c'est cliquer avec le bouton droit sur
le Canvas de la victoire et l'interface utilisateur. Ce sera très simple. Vous vous souviendrez de faire cela. Je vais appeler cette couche D. Je lui ajouterai le sprite, enverrai à la nuit surdimensionnée. Ensuite, je vais créer une animation qui se trouve dans l'animation des actifs. Et voyons voir, je crois que j'ai fait du danseur ici. Supprimons ça et créons mon propre joueur de danse. Alors, sauvegardez ça. Oui, je veux les remplacer. Ensuite, je créerai l'animation des danseurs ou je sélectionnerai ces deux-là, les
mettrai ici, et regardons ça. OK, c'est trop rapide. Arrêtez, arrêtez, arrêtez, arrêtez, arrêtez. Copiez ceci, collez-le ici. Et voyons à quoi ça ressemble. C'est toujours extrêmement rapide. Ajoutons-les cinq à part. Et pourtant, ça n'a pas l'air très bien. Mais oui, nous aimerions que le joueur fasse le Cancun de chaque côté. Nous en avons donc mis un ici, nous le dupliquons , en
définissons un ici, mais nous allons
faire l'échelle de ce moins un. Maintenant, lorsque nous lançons le jeu, je veux dire que nous lançons l'écran de la victoire. C'est là que tu y vas. Nous avons deux Ken, Ken, la victoire et plus NEG, puis nous passons à la couche. Excellent. Comme vous pouvez le constater, il y a
évidemment un problème ici. Nous y examinerons plus tard, mais pour l'instant, ne
perdons plus de temps et passons enfin à l'écran de la victoire. 0 cas. Maintenant que nous avons un écran de titre, nous voulons également créer un écran vectoriel. Alors, allons-y et faisons exactement cela. Je vais aller dans mes sprites, que je dis sprites, je parlais de mes scènes. Et dans les scènes, je vais aller de l'avant et créer une nouvelle scène. donc avec le bouton droit sur Créer. Oh, où est la scène ? Et là, on y va. Donc, scène, et ce sera l'écran de victoire ou scène
Vector3 ou tout ce que vous voulez appeler, appuyez sur Entrée. Et il suffit de l'ajouter aux paramètres de génération dès maintenant. Je vais donc faire glisser l'écran de la victoire ici. On y va. Ouvrez-le. Comme vous pouvez le constater, nous n'avons absolument rien qui gardera cette chose simple. C'est très facile. Je vais donc aller sur votre Canvas et ce sera la Canvas de la victoire. Rien de trop ici, donc juste le scaler de canevas réglé sur 1920 par 1080. Nous y voilà, 1920. Ensuite, AT, et vous connaissez très bien ce qui se passe. Il y a juste une chose qui sera peut-être un peu particulière. Je ne vais donc pas savoir encore, pas encore le défi. Laissez-moi faire quelques choses ici. C'est donc notre scène de victoire. Voyons à quoi ça ressemble dans le jeu. Ok, alors cliquez avec le bouton droit de la souris, créons une
image , une image ici, et assurons qu'elle remplit tout l'écran comme ça. Allons le rendre complètement noir. Ou vous pouvez le garder large, vous pouvez faire ce que nous voulons. Je vais donc me mettre au noir. Et ici, je vais dire que je veux
également ajouter une sonde textuelle Mesh. Les piles. Beaucoup de pro sera le texte de la victoire. On y va. Faisons en sorte que la taille automatique augmente le maximum. Et nous allons simplement le rendre un peu plus grand. On y va. Changeons, rendons ça audacieux. Fais-le au milieu. Réglez-le sur le Robo. Et retirons la sous-couche d'ici. Je n'aime pas cette quantité d'eau sous-jacente, alors essayons ici. Victoire avec quelques points d'exclamation et augmentera le maximum pour
s'adapter à tout cet écran. On y va. Donc usine. Et ensuite, ce que nous allons faire, c'est que nous allons dupliquer ce texte, le déplacer un peu vers le bas et peut-être baisser les tailles. Oups, et ça va lire. Alors que c'est le cas, il s'agira donc d'appuyer sur n'importe quelle touche. Et ici, appuyez sur n'importe quelle touche pour revenir au menu principal. Nous y allons donc, appuyez sur n'importe quelle touche pour revenir au menu principal. Lançons ce jeu et voyons à quoi ça ressemble. Et on y va. Comme vous pouvez le voir, la victoire appuie sur n'importe quelle touche pour revenir au menu principal. Très simple, rien de très compliqué. Je vais donc vous lancer un petit défi pour faire apparaître
le texte au bout de deux secondes. Créez donc une animation qui fait apparaître le texte au bout deux secondes et faites-le sans code. Et si vous voulez un défi supplémentaire que je n'ai pas inclus dans la diapositive, vous pouvez également créer un moyen pour nous d'appuyer sur n'importe quel type de bouton. Nous n'avons donc pas besoin de faire un peu de recherches ici. Nous appuyons donc sur n'importe quel bouton, puis nous allons au menu principal. C'est également un défi que vous devez relever des deux côtés. Donc, hors du chemin, mettez la vidéo en pause maintenant, puis relancez le défi. Bon, bon retour. Ce que nous allons faire ici c'est que nous allons simplement créer une animation. Et nous allons dans les animations des ressources et créons un nouveau dossier pour la victoire. Texte. me suis ouvert, ouvert et j'ai entendu de la bière. Au bout de deux secondes. Et je sens, regardez combien de dossiers nous avons maintenant. Et je pense que ce projet consistait à créer autant de dossiers que possible. Bienvenue donc dans la dernière version de la création du plus de dossiers possible. Quoi qu'il en soit, continuons. Nous avons donc ceci ici. Nous allons accéder à la presse n'importe quel texte de touche. Et ici, je vais ajouter un groupe de canevas. Donc, ce groupe. Maintenant, nous pouvons jouer avec l'Alpha. On y va. Et supprimons l'interactivité et le blocage de la refonte. Et ici, nous allons appuyer sur l' enregistrement et au bout de deux secondes. Nous commencerons donc à 0. Et à 2 secondes, nous allons rester à 0 et peut-être ajouter le billet, peut-être 1 seconde à charger. Donc ici, cela ne deviendra qu'un. Mais à la deuxième seconde marque. Ainsi, comme vous pouvez le constater, cela progressera lentement. Donc non, je ne veux pas que ce soit comme ça. Je veux ajouter 0, j'ai ça. Et comment allons-nous faire apparaître le sel seul ? Eh bien, ce sera probablement un peu choquant pour vous, mais lorsque nous lancerons le jeu, cela se produira tout seul. Nous commençons donc le niveau. Ensuite, nous arrivons 12 ans. On y va. Nous avons donc le texte qui paraît. De toute évidence, nous ne voulons pas avoir de bouclage. Je vais donc aller à la victoire et m'assurer que nous ne faisons pas de boucle. Maintenant, la prochaine chose à faire est de
nous demander d'appuyer sur n'importe quelle touche pour revenir au menu principal. Je vais donc entrer dans les scénarios ici. Et où devrions-nous ajouter ? Il suffit de l'ajouter dans l'interface utilisateur. Je pense que c'est un bon endroit pour cela. Et cliquons avec le bouton droit de la souris pour créer C-sharp. La victoire. Non, en fait, tu sais que ce que tu es est un mauvais endroit pour ça. Quoi qu'il en soit, écran de victoire. Et ce sera extrêmement simple. Mais où dois-je le mettre ? Si ce n'est pas le dossier de l'interface utilisateur ? Scénario, voyons, pièges, armes, menus, oui, monument. Bien sûr, le menu est un meilleur endroit. Nous allons donc faire glisser cette victoire vers le dossier du menu. Et dans le dossier de menu, ajoutons simplement la victoire à la Canvas de la victoire. Et ici, double-cliquez sur s'
ouvre , supprimez le début. Nous n'en avons pas besoin pour l'instant. Et parce que nous allons passer d'une scène
à l'autre, nous ajouterons simplement le gestionnaire de scène de l'interface utilisateur ou la gestion des vues. Et ici, nous allons dire que le point d'entrée va baisser la clé ou non, désolé, ne pas baisser la clé parce que nous ne voulons pas de clé spécifique. Donc ici, j'espère que vous avez essayé de faire un peu de recherches. Il y a quelque chose qui s'appelle la clé « any key down ». Et nous allons juste dire cela, et c'est suffisant. Et vous pouvez voir ici, c'est vrai. Dans la première image, l'utilisateur appuie sur
n'importe quelle touche ou même sur un bouton de souris. Alors, nous allons aller à la charge de points de
Scene Manager vue. Et nous allons charger la première scène parce que nous savons que toujours,
toujours, le menu du titre sera le premier C. Donc, sauvegardez cela. Nous retournons dans notre jeu. Nous allons réaliser le gain. On y va donc, la victoire. Deux secondes. Appuyez sur n'importe quelle touche pour continuer sur le bouton Démos. Et maintenant, nous sommes sur la scène du menu titre et quelque chose que j'ai oublié de vous dire. Et c'est que vous pouvez peut-être ajouter une sorte de musique ici. Vous pouvez donc voir que nous pouvons sortir, commencer le jeu. Et on y va. Nous commençons à nouveau le jeu. Whoa, qu'est-ce que c'est ? Qu'est-ce que c'est ? On dirait une sorte de lance-flammes. Je pense qu'il y a un petit problème, mais ne nous inquiétons pas pour l'instant. Nous réglerons le problème plus tard. Il y a évidemment une sorte d'erreur et une
partie du code en raison de la façon dont nous faisons la transition, mais ne vous inquiétez pas plus tard. Peut-être que je crois que la dernière section où nous faisons
réellement l'unité avancée ou le C-sharp avancé, un d'eux, nous créons en fait une façon très sophistiquée de traverser les niveaux, gardant tout avec nous. Nous sommes donc sortis du chemin. Merci d'avoir regardé. J'espère que vous appréciez. J'espère que vous mettez en scène tous vos dossiers. Mettre en scène tous vos fichiers, valider toutes vos modifications. Je viens de faire un écran de victoire. Commettez les modifications. Et je vous verrai dans le prochain.
84. Restez au niveau de la mort: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons
ajouter un peu de fonctionnalités à notre écran sourd. Donc, en ce moment, lorsque nous nous
promenons, nous sommes vivants et tout va bien. Lorsque nous mourons, nous avons la possibilité de redémarrer le niveau, sorte que nous commençons au même niveau, ou nous avons la possibilité de revenir
au menu principal et de pleurer un peu. Donc, ne perdons plus de temps et commençons. Bon, maintenant, nous avons tout. Nous avons le titre, nous avons la victoire. Il est temps de faire quelque chose à propos de l'écran sourd. Donc, en ce moment, quand nous mourrons, vous pouvez voir maintenant si nous exécutons le jeu avec l'IA, vous pouvez voir que nous avons l'UTI, nous avons le lot refroidi, mais il n'y a rien à faire. Nous sommes donc restés assis là jusqu'à ce que nous arrêtions à nouveau le mode de lecture. Nous ne voulons pas faire cela. Nous voulons avoir une boucle continue dans notre jeu. Je vais donc faire que je vais
aller dans l'écran des sourds. Et ici, je vais cliquer avec le bouton droit de la souris et je vais créer un bouton ou vous savez quoi ? Avant de faire tout cela, je vais vous lancer un défi. Et votre défi sera de
créer les deux méthodes et les deux boutons. Donc, tout d'abord, vous devez créer deux boutons, voulez redémarrer le niveau et revenir au menu principal. Vous devrez créer une méthode pour chacun de ces boutons. Ensuite, vous devrez attribuer les fonctionnalités à ces deux boutons. Donc, avec cela,
je crois que vous savez déjà comment redémarrer un niveau. Vous devez charger la scène que nous sommes actuellement sur laquelle nous pouvons obtenir en étant vu actif. Mettez la vidéo en pause dès maintenant et relancez le défi. Oh, d'accord, bon retour. Comment avez-vous fait ça ? Donc parce que les défis actuels deviennent un peu ennuyeux parce que vous savez déjà tout. J'ai donc adoré toute la vidéo pour toi. Et je modifie des choses sans même voir l'écran de profondeur. Passons donc l'Alpha à
un pour que nous puissions voir correctement le bouton. Et voyons ce que nous allons faire ici. Nous avons donc le bouton. Sélectionnons celui-ci et agrandissons. Déplacez-le vers la gauche. Ensuite, ici, nous allons
supprimer le texte et ajouter nos propres textes. Donc, tout ce que je fais ici est déjà couvert. Disons donc redémarrer le niveau. Et définissons le bon tout, le bon tout et la taille, max, max, max et évidemment le bouton ici devrait avoir les boutons des éléments de l'interface utilisateur et devrait avoir ce sprite ici. On y va. Nous pouvons donc maintenant augmenter le texte et l'agrandir un peu. On y va. Nous le rendons audacieux. Je veux dire audacieux. Maintenant, nous avons le texte en gras et créons ce bouton. J'ai été plus grand. Oui, à quoi ça ressemble ? Je pense que ça a l'air plutôt bien. Je vais donc dupliquer ça. Déplacez ça ici. Il s'agit du bouton du menu principal, et le texte sera le menu principal. On y va. Je pense donc que c'est assez beau. Nous allons peut-être juste savoir ceci, le texte. Je souhaite augmenter un peu la taille du texte pour le redémarrage. Et on y va. Je pense donc que c'est assez beau. Gardez ça. Et maintenant, allons-y et ajoutons les fonctionnalités. Par conséquent, dans Scene Manager, nous voulons tout créer. Je veux dire, pas un gérant invisible, vous êtes un manager. Nous voulons créer les méthodes qui nous emmènent ou redémarrent l'amant ou qui nous amènent au menu principal. Mais la chose ici est, et c'est une philosophie du développement de jeux. Et où voulez-vous vraiment faire cela ? Alors, le gestionnaire d'interface utilisateur, que fait-il ? Cela nous emmène-t-il d'une scène à l'autre ? Non, ce n'est pas le cas. Il gère simplement l'interface utilisateur et c'est son travail. C'est donc un meilleur endroit faire cette méthode ou créer ces méthodes comme dans le gestionnaire de niveaux, mais en même temps, nous ne voulons pas que les boutons aient accès au gestionnaire de niveaux. Nous voulons simplement que les boutons puissent
modifier les choses dans le gestionnaire d'interface utilisateur. Nous sommes donc dans un petit cornichon si vous voulez l'appeler ainsi. Ce que je vais faire, c'est que je vais faire confiance à mon instinct intestinal et je
vais créer les méthodes ici. C'est un niveau de redémarrage public vide. Et la façon dont nous redémarrons le niveau c'est que nous
obtenons simplement le gestionnaire de scène, la charge vue. Et quelle scène allons-nous charger le gestionnaire de scène, point devient actif vu cette build et x. Donc maintenant nous chargeons simplement la scène de la scène active actuelle. Cela signifie que nous rechargeons le niveau puis le public void re, revenons au menu principal. Et ici, nous allons obtenir cette scène de chargement de points de gestionnaire de scène. Et nous allons simplement charger les scènes 0 car nous savons que la scène, la scène titre ou la scène MainMenu se trouve sur l'index 0. Et maintenant, nous allons revenir dans le gestionnaire d'interface utilisateur. Et ici, nous allons créer les mêmes méthodes. Mais au lieu de faire les choses, nous allons accéder au gestionnaire de niveaux et avons-nous une instance ? Oui, nous avons un exemple. Donc ici, nous allons obtenir l'instance de point du gestionnaire de niveaux, niveau de redémarrage des points. Et faisons la même chose ici, mais au lieu de redémarrer le niveau, revenez au menu principal. Alors, sauvez cela, retournez dans Unity. Et je sais que c'est un peu redondant. Je sais que c'est comme si nous
faisons la même chose encore et encore. Mais je pense que c' est une façon plus appropriée de faire les choses. Nous pouvons donc accéder au gestionnaire d'interface utilisateur, au niveau
redémarré et au menu principal. Accédez à votre manager
et revenez au menu principal. Gardez ça. Désactivez l'écran de profondeur. Tout d'abord, appliquons les modifications que nous avons apportées. Maintenant, on s'éteint. Tout d'abord, nous allons définir l'Alpha sur 0. Nous allons tourner l'écran sourd. Plus grand, le jeu meurt. Et maintenant, nous avons le redémarrage et le menu principal. Si je clique sur le menu principal, je retourne au menu principal. Excellent. Essayons à nouveau avec la même chose de redémarrer le niveau. Nous mourons, nous commençons au niveau. On y va. Nous sommes de retour au niveau 2, bébé. Excellent travail. J'espère que ça vous plaira. J'espère que vous avez relevé ce défi. J'espère que vous avez fait de votre mieux et je vous
félicite si vous l'avez fait du début à la fin, tout seul. Je vais tout mettre en scène, Sage tous commettent les changements. Création d'un moyen de redémarrer le niveau ou de revenir au menu principal à la mort. Et pas un moyen créé. Deux boutons pour redémarrer le niveau retournent tous au menu principal à la mort. Et quand les changements. Si vous ne m'avez pas déjà laissé un avis, sinon, vous pouvez attendre un
peu puis me laisser un avis. C'est le moment idéal et je vous
verrai dans la prochaine étape où nous allons créer l'un des aspects les plus cool de n'importe quel jeu, le menu de pause. Je vous verrai alors.
85. Créer un menu de pause: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, lorsque nous lançons le jeu, quand nous avons eu le point culminant, vous pouvez voir que nous avons un menu de balles. Nous pouvons soit aller au menu principal au travail, me
faire confiance, soit reprendre le jeu. Si nous reprenons le jeu, Nous sommes de retour et encore, nous pouvons également faire une pause à nouveau, et au lieu de cliquer sur l'un des boutons, nous pouvons frapper le crête. Mais nous sommes que c'est quelque chose que nous aborderons également dans la prochaine vidéo. Mais pour l'instant, nous allons créer notre menu de pause. Oh, d'accord, donc maintenant nous voulons ajouter la possibilité pour notre joueur de suspendre le jeu. Notre joueur, je veux dire, le gars qui, ou la fille qui joue réellement notre jeu. Alors, comment allons-nous faire cela ? Eh bien, ça va être assez simple. Nous allons dupliquer l'écran de profondeur. Et il s'agira de l'écran de pause ou du menu Pause. Mettez donc le menu en pause et appuyez sur Entrée. Et ici, nous allons tout
avoir la même chose à part le laissez-moi allumer, sauf pour le lot. Donc, tout d'abord, le sang, nous ne voulons pas le sang et le menu de pause, il me laissera le mettre sur celui. Nous avons donc l'image ici, mais nous voulons qu'elle s'
estompe un peu afin de pouvoir voir l'arrière-plan. Disons donc 0,5, d'accord ? Nous l'aurons donc à 0,5. Ensuite, nous allons déplacer le bouton de redémarrage. Et vous faites simplement déplacer
le bouton de redémarrage ici, déplacez le menu principal ici. Et au lieu de redémarrer le niveau que vous pouvez conserver si vous le souhaitez, mais nous allons créer ce bouton Reprendre. Donc, le bouton Reprendre et dans le texte ici va simplement reprendre le jeu. On y va donc. Maintenant, nous avons ces deux boutons. Il est évident que nous devrons changer les fonctionnalités et ici. Mais c'est quelque chose et j'ai quelques minutes. Tout d'abord, ouvrons le gestionnaire d'interface utilisateur. Et ici, nous allons faire deux ou trois choses. Tout d'abord, il est évident que nous avons besoin d'une référence. Je vais donc créer un champ sérialisé de l'objet de jeu, qui est le menu de pause. Gardez ça. Mais le truc ici, c'est
que, comme nous l'avons dit dans la vidéo précédente, UI Manager, ok, peut-être qu'il active et désactive le menu de pause, mais il n'est pas responsable de la pause du jeu. Le gestionnaire de niveaux est le script responsable de cette opération. Dans le gestionnaire de niveaux,
nous allons donc créer un bool public. Et nous allons appeler ça, le jeu est en pause. Et de toute évidence, je ne veux pas le rendre public, mais nous allons l'utiliser beaucoup. Vous savez quoi ? Ne le rendons pas public. Faisons de cette variable une variable privée, et nous créerons un moyen d'y accéder. Un livre public est donc mis en pause, et nous reviendrons tout simplement. Ils sont parfois un peu encombrants. Vous pensez peut-être que
je crée beaucoup d'or. Mais croyez-moi, lorsque vous arrivez aux niveaux supérieurs, au niveau professionnel, sont des choses essentielles à avoir. Je ne veux pas que votre jeu soit facilement corrompu grâce au code. Donc maintenant que nous avons le jeu est suspendu jusqu'à ce que je gère, nous
ayons le menu de pause auquel nous voulons
évidemment accéder d'une manière ou d'une autre, changer le menu de pause. Je vais donc créer une méthode ici qui va
dire que le vide public tourne,
met en pause, menu activé, désactivé. Et cela prendra un booléen qui
va être le bon, off. Et je sais que ce n'est pas la meilleure façon de représenter la variable, mais de toute façon, continuons. Vous verrez ce que je veux dire. Donc ici, nous allons
simplement aller de l'avant et faire en sorte que le menu pause, directive
dots soit activé, désactivé. Nous revenons maintenant dans le gestionnaire de niveaux. Et ici, nous allons créer un vide public. Pause, reprise du jeu. Et ce que nous allons faire ici, c'est que nous allons vérifier si nous ne sommes pas en pause dans le jeu. Nous n'avons donc pas encore fait de pause. Ensuite, nous accéderons au gestionnaire d'interface utilisateur. Instance de point, point, pause,
rotation, pause , pause, menu de pause activé et désactivé. Et que devons-nous le fixer ? Eh bien, nous allons juste le mettre en place. Parce que si nous ne sommes pas un jeu sans opposition, lorsque nous appuyons sur une touche
, nous voulons activer le menu de pause. Et bien d'autres choses. Cela signifie que si nous n'avons pas interrompu le jeu. Donc, si nous ou excusez-moi, si nous sommes dans une partie en pause. Ensuite, nous allons faire la même chose ici, mais nous allons plutôt l'éteindre. Et cela ira à l'axe UI Manager, celui-ci et l'éteindra. Donc, avec cela, il y a encore quelque chose que nous devons faire et qui est en fait tourner ou changer ce jeu plutôt
que d'utiliser une sorte de bouton. Et ce sera votre défi de
reprendre le jeu en utilisant une sorte de clé. Alors vérifiez les entrées et lorsque vous appuyez sur la touche, nous devrions appeler la méthode et reprendre
le gain ou mettre en pause le jeu et nous assurer de changer le statut du jeu. Donc, si elle est en pause ou si ce n'est plus le cas, mettez la vidéo en pause maintenant et créez une entrée. Bon, bon retour. Alors, où voulez-vous le mettre ? Je pense ici. Donc, une mise à jour, nous allons vérifier si le point d'entrée obtient la clé vers le bas et un code clé pour p. Ensuite, nous allons faire une pause, reprendre le jeu. C'est aussi simple que ça. Et puis finissez ici. Si nous n'avons pas interrompu le jeu, le gain n'est
donc pas interrompu. Nous cliquons sur le crêpe, nous avons allumé. Donc, l'activation, la désactivation est vraie. Donc, ici, nous allons dire que le jeu est en pause, est égal à vrai. Et dupliquez cela et déplacez ça ici. Faux. Gardez ça. Essayons donc ça. J'espère que je ne me suis pas trompé avec le faux et le vrai. Pourquoi je crois que c'est correct. Donc, dans le bouton Reprendre et nous allons ajouter quelque chose ici,
à savoir canevas de l'interface utilisateur. Et ici, nous allons aller au gestionnaire d'interface utilisateur. Nous allons trouver virage, pause menu activé, désactivé. Et comme vous pouvez le constater, nous avons la possibilité d'ajouter soit vrai, soit faux. Et c'est le booléen réel
ici qui active tous les chemins. Donc, revenons dans notre jeu et ici, commençons par tourner le menu de pause, lancer le jeu. Donc, et ici, nous avons le point culminant. Nous pouvons revenir au menu principal. On peut aussi atteindre le plus haut que celui qui avait le cri. Ensuite, nous désactivons le menu de pause. On y va. Mais il y a toujours une chose qui est le bouton Reprendre. Maintenant, je vais aller de l'avant et ajouter l'événement onclick ici. Et je vais enfreindre ma propre règle qui consiste à ajouter le gestionnaire de niveau du manager, tout le monde est comme,
Oh, n'enfreignez pas les règles. Mais oui, je le suis. Je vais entrer dans le jeu de reprise de pause restauré. Alors, lancez le jeu. Et maintenant, nous allons appuyer sur la touche, reprendre le jeu, et tout fonctionne bien. Mais comme vous pouvez le constater, si je mets le jeu en pause, je peux toujours me promener. Je peux toujours tirer sur mes ennemis et je peux toujours mourir. Maintenant, si vous voulez créer une âme sombre, demandez type de pause dans le jeu où le jeu continue en arrière-plan. Et vous vous asseyez là, impuissant, à essayer comprendre ce qui se passe dans le menu. Soyez mon invité. Si ce n'est pas le cas, si vous voulez que le monde s'arrête, passez à la vidéo suivante. Mais avant de faire cela, il
faudra évidemment engager nos changements. Alors, à ce moment-là.
86. Pause en réalité le jeu: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons
appliquer les modifications que nous avons apportées. Non seulement cela, nous allons lancer le jeu quand nous devrions nous imposer, vous remarquerez que même la balle gèle et l'espace mathspace, si nous essayons de nous promener, rien ne se passe. Et si nous essayons de tirer, aucune balle n'est produite. Il s'agit donc de l'analyse réelle du jeu, pas seulement d'avoir un menu. Donc, ne perdons plus de temps et commençons. Oh, l'affaire. Donc, même si nous avons l'écran de pause, nous pouvons revenir en arrière. Nous pouvons aller au menu principal. Nous ne mettons pas en pause le jeu. Le jeu est toujours en cours, on peut encore courir, on peut encore sauter. Nous pouvons tout faire. En fait, on ne saute pas. L'ennemi nous attaque toujours. Nous devons donc trouver un moyen de geler notre gain. Et je ne me sens pas vraiment à la hauteur. Je vais donc vous présenter un défi pour arrêter le monde entier avec un l, geler le monde à l'aide d'une échelle de temps. C'est donc le seul point et le défi, assez facile, je pense que vous savez quoi faire. Alors mettez la vidéo en pause maintenant et allez geler le monde. Salut, bon retour. Je sais que vous détestez quand je vous lance un défi au début d'une vidéo, vous êtes juste assis. Oui, enfin, je vais apprendre quelque chose et Michael vous donne juste un défi. Ok, de toute façon, ici,
une fois que nous mettons le jeu en pause et que nous aurons accès à l'heure, un point à l'heure delta. Et il ne sera pas égal à aucun temps que l'échelle de temps 0, F. Et ici, lorsque nous arrêtons le boss, l'échelle temporelle est égale à 1,5. Sauvegarde ça dans notre jeu. Ou nous allons le rendre un peu plus grand, lancer le jeu. Donc, mettez le jeu en pause. Excellent. Il y a cependant un problème, et rien ne se présente. Non seulement cela, mais nous sommes toujours en mesure de bouger l'arme. Et que s'est-il passé ici ? Eh bien, le problème est que notre menu de pause est géré ou apparaît à l'aide de l'animation. Ce que je vais faire, c'est que je vais
aller voir l'animateur ici. Et je vais simplement supprimer
les composants pour que nous n'ayons plus d'animations. Maintenant, lorsque nous lançons le jeu, j'ai mis le menu en pause et tout s'arrête. Mais comme vous l'avez vu, je peux toujours me déplacer avec l'ennemi. ne bouge pas, mais je peux toujours tirer et produire des balles. C'est là que tu y vas. Vous pouvez voir la stabilité et je peux en produire quelques-unes. Et ce n'est pas quelque chose que nous voulons quand nous reprenons le jeu, tout revient à la normale, mais cela ne suffit pas. Donc, ce que nous allons faire, c'est que nous allons aller dans où est-il ? Manette de joueur. Donc, le joueur, la manette du joueur. Donc, manette de joueur. Et ici, si nous faisons défiler la mise à jour, nous allons aller de l'avant et finir ici. Dites que si le jeu de points de l'instance de point du gestionnaire de niveaux est suspendu lorsque le jeu est suspendu. Donc, si c'est vrai, cela signifie que nous allons simplement revenir. Et rappelez-vous ce qui se passe lorsque nous revenons simplement, nous évitons tout l'objet. Donc, si nous arrivons à cette ligne, vérifierai qu'elle est en pause, c'est vrai. Ensuite, nous revenons à la mise à jour, puis nous revenons à la mise à jour. Le joueur ne fait donc rien. Il ne peut pas bouger, il ne peut pas pointer l'arme. Il ne peut pas être animé, savoir fringant, changer de gencive, non, rien. Donc, maintenant dans notre jeu, lorsque nous effectuons le gain, nous pouvons maintenant mettre le jeu en pause. Et vous pouvez voir que notre joueur ne bouge plus même si nous pouvons toujours produire une balle pour une raison quelconque. C'est parce que la fusillade se fait sur ce qu'on appelle le système d'armes. Nous reprenons le jeu, le bateau s'envole. Vous pouvez le faire partout où vous le souhaitez dans la mise à jour chaque fois que vous avez une sorte, alors que
le système d' armes que nous allons ici est une mise à jour. On y va. Maintenant, nous ne pourrons
plus tirer de balles. Vous pouvez également
l'ajouter aux contrôleurs ennemis où ils nous tirent
également avec des taupes. Donc je suppose que c'est la fin de la création de menus et de notre jeu. Je vais commettre nos changements. Nous appellerons cela fait le menu de pause. En fait, des balles. Une fois encore. Commettez les modifications. J'espère que ça vous plaira. Regardons nos maîtres. Tant que nous sommes là, nous avons encore le temps. Cette vidéo était très courte. Je veux dire, écoutez, regardez combien nous avons accompli ensemble. Ce gain est incroyable. Il a tellement de choses, il a tellement d'options, tellement de variables, tellement de scripts, tellement de dossiers que les dossiers que nous avons sont je ne sais pas ce qu'elle presque à 100 dossiers, je pense. Nous avons probablement tellement d'animations qui n'aiment pas. Regardez combien et nous n'avons toujours pas tout animé. Nous avons encore beaucoup à faire. Peut animer les ennemis quand ils tirent, il y a encore beaucoup de choses que nous pouvons ajouter. Donc, parce que cette vidéo est courte, je veux que vous preniez le temps de prier, le puis de respirer et d'
apprécier chemin parcouru dans votre parcours de développement de jeux. Et quelle critique incroyable. Tu me laisses juste quitter de toute façon. Merci beaucoup d'avoir regardé. J'apprécie vraiment si vous en êtes arrivé là. Si vous m'avez laissé un message sur la partition, discutons. Dites à la communauté combien vous êtes venus, combien vous avez appris, combien vous avez accompli et rendez-vous dans le prochain, je suppose, où nous allons créer un combat de boss, je crois, qui est comme la chose la plus cool au monde.
87. Section 15 : Battres de boss (machine d'État avancée de C ? Introduction à la machine de forme de forme de: Bienvenue à mes collègues développeurs de jeux une toute nouvelle vidéo dans une toute nouvelle section. Et l'une des meilleures sections, je vais vous présenter le patron du bus Skelly. Je ne vais pas trop perdre votre temps. Tout d'abord, nous parlerons de la machine d'état, ce qu'elle est, raison pour laquelle nous l'utilisons, de la
façon dont nous allons l'utiliser, utiliser l'animateur, de toutes ces bonnes choses. Et dans la deuxième partie de la vidéo, nous parlerons des animations que j'ai créées uniquement pour vous guider tout au long du processus. Si vous avez créé les animations, au milieu, nous aurons un défi. Si vous avez déjà effectué toutes les animations, vous pouvez ignorer la deuxième partie. Ou si vous pensez que vous avez besoin d'un peu d'aide, je vous guide tout au long de ce que j'ai fait. Donc, avec cela, ne
perdons plus de temps. Commençons ensuite avec l'affaire Boss Fight 0. Alors, euh, bienvenue dans l'une des parties
les plus excitantes de tout
ce projet et c'est la bataille la plus importante. Quel gain est complet sans bouton de perte ? Pas de jeu. Allons de l'avant et réfléchissons à la façon dont nous allons créer une bataille de boss. Tout d'abord, parlons de quelque chose appelé la machine d'état. Si nous regardons ici dans l'animateur, vous remarquerez, et
prenons le Doom Player par exemple. Vous remarquerez qu'il s'agit en fait d'animations, mais elles fonctionnent également comme des états. Nous avons donc les états, ou je suis dans l'état des liens d'identification du joueur ou de l'un ou l'autre des noms du joueur. C'est un domaine. Il peut faire des choses précises. Il ne peut pas bouger. Par exemple, il peut tirer, il peut faire beaucoup de choses, mais il est en état de ralenti. Ensuite, nous avons l'état de marche ,
puis le joueur est fringant. Par exemple, lorsque nous sommes fringants, nous avons certaines animations. Ne peut pas non plus bouger. Je veux dire, désolé, nous ne pouvons pas tirer avec nos armes ou nos armes. C'est donc le signe d'un état différent où nous avons des mécanismes et des comportements différents. Nous allons donc utiliser l'animateur pour produire ce genre d'états. Et j'ai tout le temps appelé ces animations. Mais beaucoup de gens aiment les appeler états. Et c'est bon. Vous pouvez les appeler comme vous voulez tant qu' décrivent
correctement ce qui se passe. Parlons donc plus des états et de ce qu'une machine à états, en tant que machine à états est un modèle comportemental. Il se compose d'un nombre limité d'états. Donc, modèle de comportement, tout comme nous avons le ralenti, tout comme nous avons l'avion, désolé, la course et le fringant. Ce sont des modèles comportementaux et ils sont finis. Nous devons donc toujours savoir combien d'États nous avons. Et une entrée donnée, la machine effectue transition
d'état et produit des sorties. Donc, tout comme nous avons les transitions entre les animations de l'animateur, une machine à états a-t-elle des transitions ? C'est pourquoi l'animateur est l'outil parfait pour créer cette machine d'état. Parlons donc de ce que nous avons dans nos États. Tout d'abord, nous avons l'état de départ. Nous avons donc l'état de départ, nous passons à un autre état qui est le A ou autre. Peut-être commencerons-nous par le ralenti, puis nous passons à la marche, puis nous pouvons faire la transition entre, par
exemple, et tout cela est un exemple entre deux états, B et C. Et par exemple, lorsque nous passons de l'état a pour l'état C, nous ne pouvons pas revenir à l'état A, bot de l'état C, nous pouvons aller à l'état B, passer à l'état A, puis aller et revenir entre a et b. Ce n'est
donc qu'un exemple de ce que pourrait être un état. Et évidemment, à
chaque transition, nous avons des conditions. Certaines conditions doivent donc être remplies pour passer d'un État à un autre. Et c'est quelque chose que nous avons
fait tout le temps et les scores. Je vais donc continuer. Parlons de la machine d'état de boss que nous allons avoir. Le premier état sera donc celui qui apparaîtra. Ainsi, le patron, dès que nous entrons dans la salle des boss, le patron commencera à apparaître du sol et vous verrez le patron s'y mêler un peu. Je vous les ai fournis dans les ressources. Ensuite, nous commençons à marcher. Dès que le patron viendra vie, il commencera à marcher vers le joueur. Donc, pas de temps à perdre, pas de ralenti, pas de rien. Le patron commence juste à marcher vers le joueur. Ensuite, nous avons les cinq tirs. Nous allons donc donner la possibilité à notre énorme boss squelette que vous verrez en un
peu de tirer certains coups. Ainsi, tout comme nous avons eu les balles ennemies, tout comme nous avons eu les balles du joueur, nous aurons également les balles
du boss qui seront tirées de nombreuses directions. Ensuite, nous aurons les attaques de mêlée ou comme je vous l'ai promis, nous allons créer une attaque de mêlée pour notre Boss qui attaquera le joueur une fois qu'il sera près d'ici. Nous aurons donc une sorte de minuterie. Et de toute évidence, nous voulons
que la transition se déroule dans les deux sens. Par exemple, nous ne voulons pas apparaître,
marcher, puis apparaître à nouveau. C'est donc ça. Une fois que nous sommes apparus, nous ne retournons jamais l'État sous une certaine condition. Nous commençons à marcher. Dans une certaine condition, nous commençons à tirer des coups de feu, puis nous recommençons à marcher. Et dans certaines conditions, nous commençons également à attaquer au corps à corps
et, dans certaines conditions, nous reprenons la marche. Mais il y a ensuite la deuxième partie du combat. Et c'est à ce moment que notre ennemi se met en colère ou que notre patron se met en colère quand on lui tire suffisamment pour que sa santé diminue. Il se met alors à marcher en colère. Il commence à tirer des coups de feu en colère. Il commence angulairement, principalement en nous attaquant. Il va changer de couleur, vous changerez de taille. Et enfin, quand nous le tuons, si nous le tuons, si nous parvenons à le faire, nous avons l'état de mort où il ne peut plus nous blesser. Il disparaît et nous y sommes allés. Je vais donc, si vous voulez, vous pouvez mettre en pause la vidéo, regarder ça, prendre cette fin. Nous allons faire tout
cela dans nos prochaines vidéos, mais je vais aussi vous donner un défi pour
créer toutes les animations et penser ainsi, créer les animations que nous aurons pour le patron. Permettez-moi de vous montrer les ressources. Nous avons l'apparence, l'attaque, le colorant, le ralenti, la marche. Et si vous n'êtes pas sûr de ce que les Angry vous
montreront brièvement après avoir terminé toutes les animations,
je ne les ferai pas en direct car honnêtement, cela prendra beaucoup de temps. Il faudra beaucoup d'efforts. Je vais simplement créer une nouvelle scène, y
mettre les barres et créer les deux animations. Ensuite, vous devrez créer l'apparence, attaquer, marcher,
tirer, vous mettre en colère,
attaquer en colère, tirer en colère, tirer en colère, marcher. Et maintenant, si vous ne savez pas comment créer la colère, au moins la marche en colère, par
exemple, est la même que le tournage en colère, désolé. Je veux dire, la marche en colère est exactement la même que la marche normale. Mais ce que je vais faire, c'est que j'augmenterai l'échelle de l'ennemi, du patron. Et je vais aussi lui faire un peu de couleur rouge pour qu'il ait l'air différent. L'attaque en colère est exactement la même que l'attaque. Et enfin, nous voulons définir l'état de colère,
que l'état de colère aura juste le patron comme couleur rouge, un peu plus grand et plus évolutif et des animations un peu plus rapides aussi. Donc, avec cela,
mettez la vidéo en pause maintenant, et je ne sais pas, peut-être que je vais vous montrer dans la prochaine vidéo les animations. Peut-être que je vais vous montrer sur celui-ci les animations juste pour qu'il puisse tout voir, tout mettre en place. Et je vous verrai peut-être dans le mois prochain, peut-être, vous savez. Bonjour, bon retour. Alors, comment avez-vous fait ça ? Je voulais juste vous montrer quelques choses ou la façon dont j'ai créé mes états et
comment j' ai fait la marche en colère, la fusillade en
colère et l'
attaque en colère et comment je me suis mis en colère peut être vous pouvez être inspiré. J'ai également réparé quelques choses. Si vous avez fait l'attaque, vous auriez peut-être remarqué que le sprite se déplace vers la droite, ce qui n'est pas très agréable. Je répare donc aussi ça. Laissez-moi vous montrer ce que j'ai fait. Tout d'abord, j'ai tous mes sprites ici, la Bible attaque le ralenti que nous n'utilisons pas. Vous pouvez donc voir la marche. Ils étaient tous gardés presque les mêmes. Je viens de changer le filtre et de
faire 75 pixels par unité. Et qu'est-ce que j'ai fait, ce patron de Kelly. Laissez-moi vous montrer ce que j'ai fait ici. Disons donc que nous sommes en train d'apparaître. Laissez-moi vous montrer l'apparence. Très simple, très normal. Juste là, tu y vas. Vous pouvez voir que nous avons le squelette qui apparaît. Vous pouvez voir que j'ai ajouté deux collisionneurs de boîtes. L'un d'eux est un déclencheur pour que nous puissions marcher comme vous le savez, où nous avons traversé les murs. Je l'ai vu. OK. Donc, celui en bas, celui en haut, qui est celui-ci. On y va. Je peux l'éteindre et l'allumer. Et vous pouvez voir que c'est celui que nous allons
créer un déclencheur qui est juste pour que nous puissions frapper l'ennemi, mais en même temps, l'ennemi peut se tenir derrière le fond ici. On y va donc. Nous avons l'apparition, comme vous pouvez le voir. Et cette structure ici dans l'animateur. Je n'ai pas encore créé les transitions parce que je veux les faire au fur et à mesure que nous créons le code. Je ne voulais pas les faire sans que vous le
sachiez , car à un moment donné, nous aurons le temps de sortie, nous aurons le temps de transition et toutes ces bonnes choses. Comme vous pouvez le voir, nous commençons par apparaître comme nous l'avons fait dans les toboggans plutôt que de marcher et entre la marche et le tir, puis nous sommes en colère que la marche en colère, attaque
en colère et la colère. tir. Alors, la visite de la marche. On y va. Très simple. On se promène juste. Ensuite, nous avons l'attaque. Comme vous pouvez le voir, peut-être dans votre cas et même à l'esprit encore, vous pouvez voir que le patron se déplace un peu ainsi vers le haut et vers la droite. Remarquez donc que nous y allons. On voit qu'il a bougé un peu, mais c'est même si on a changé un peu dans les sprites. Si vous les avez gardés les mêmes, vous remarquerez que les vôtres bougent beaucoup. Donc pour résoudre ce problème, je me suis assuré d'aller dans Sprite Editor. Et ici, j'ai changé le pivot personnalisé. C'est donc le point où appelons-le le centre. C'est un pivot en fait. Mais il y a une légère différence entre le pivot et le centre, mais c'est le centre en ce
moment lorsque le centre était juste ici, car toute l'image a été déplacée vers la droite. C'est pourquoi l'ennemi entier se déplace vers la droite. Ce que j'ai fait, c'est que j'ai changé le centre ici, créé un pivot personnalisé et c'était 0,6554878. Si vous voulez copier ce numéro comme je l'ai fait, ou peut-être que vous pouvez en trouver un qui est meilleur. L'esprit n'est pas parfait. Comme vous pouvez le voir, il se déplace un peu vers la droite. Vous pouvez donc trouver votre propre valeur et voir que vous n'avez pas à modifier tous les sprites. Vous pouvez simplement les sélectionner tous. Et ici, vous pouvez sélectionner le pivot personnalisé en bas, puis noter ce nombre, le conserver à 0,5. Ceci sur le Y, sur le x, remplacez-le par 6554878. D'accord, et qu'avons-nous fait d'autre ? C'est donc l'attaque et vous pouvez voir que je laisse un peu de place quand il frappe. Nous allons donc avoir une attaque de ce côté-ci. Et une fois que c'est l'APU, attendez un peu juste pour laisser de la place à notre joueur pour peut-être s'enfuir. Et puis on redescend. Et quand nous allons créer, c'est principalement une attaque. Vous verrez comment cela est crucial car nous ajouterons des systèmes d'événements qui n'
endommageront le joueur que lorsque le sel est à une certaine position. Nous ne voulons pas endommager le joueur lorsque les soldats se lèvent car il est évident que le squelette ne se balance pas. Donc on va juste l'endommager quand la source ici et on créera une sorte de collisionneur
circulaire juste ici. Et si le joueur est à l'intérieur, il est endommagé. C'est ainsi que nous allons créer l'attaque malaise. Alors, que doit-on d'autre à la fusillade ? J'ai donc reçu celui-ci des sprites mourants, je crois. Oui, on y va. Il vient donc des sprites mourants et ce n'est pas la chose la plus intelligente au monde. J'ai juste besoin d'un sprite particulier. Et comme vous pouvez le constater lors de la prise de vue, il suffit de changer l'échelle. L'échelle augmente puis redescend. Vous pouvez le voir ici. J'envoie donc le bouton d'enregistrement et je les ai ensuite rendus plus grands, plus petits, plus petits, plus petits. Et c'est à ce moment que nous allons tirer. Nous ajouterons, comme nous l'avons fait avec un irrégulier. Et cela signifie que nous ajouterons des points de tir, donc nous en ajouterons quatre. Et puis quand il sera en colère, on en ajoutera six et on parlera de colère. Voyons comment nous sommes en colère. On y va donc. Vous pouvez voir que c'est comme ça que nous sommes en colère. Tout d'abord, nous devenons plus grands. Nous avons donc les plus petits, les plus grands, les plus petits, les plus grands. Et j'ai aussi ajouté les sprites inactifs ici. Vous n'êtes pas obligé de le faire. Je n'ai pas remarqué beaucoup de changements. Si nous supprimons tous les sprites légaux, rien ne change honnêtement, mais je voulais juste avoir quelque chose différent qu'une image viciée. Cela ajoute, peut-être dans un petit mouvement subtil au joueur qu'avec l'ennemi, je veux dire au patron, à Skelly, on voit qu'il devient plus grand, plus
petit, plus grand, plus petit, et sa main se contracte juste un peu assez pour
avoir juste un peu de vie et lui grandissant ou plus petit. Et puis vous pouvez voir qu'il devient grand là où nous avons l'échelle à 1,3 sur le x et sur le y, évidemment sur le SAT, nous n'en avons pas besoin. Ensuite, nous attendons quelques secondes pour que
le joueur se rende compte de ce qui vient de se passer. Et puis, enfin, nous commençons à marcher en colère. Alors que la marche en colère ou en colère marche, c'est exactement la même chose que la marche normale, mais c'est un peu plus rapide. Et sur la première image, je me suis assuré de régler la balance à 1,3. Donc, dans l'animation, j'ai eu le disque. Je change la couleur pour compléter le rouge. Oh, et au fait, ici, alors que la colère se met en colère. Alors ils se fâchent, vous remarquerez qu'il se lit
lentement à la lire. Et ici, c'est là que je mets en rouge et qu'il bouge lentement. Vous pouvez voir la couleur ici. Il se déplace lentement pour lire. Sur la marche en colère, nous la mettons simplement à lire au début, augmenter l'échelle à 1,3 de tous les côtés et nous rendons la marche un peu plus rapide. C'est ce qui arrivera quand il se mettra en colère. Il va commencer à marcher plus vite, donc les animations seront plus rapides. Nous avons la prise de vue en colère, donc exactement
la même couleur qu'elle change. C'est complètement raide car à ce stade tout
le NME ou les boss sont rouges. Et enfin, l'attaque en colère. C'est exactement la même chose, juste avec une plus grande échelle, une couleur différente et des mouvements beaucoup plus rapides. Vous pouvez donc voir qu'il
n'y a pas de temps d'attente quand les sources montent, il continue à couper tout le temps et nous
créerons la même chose que nous aurons ici, les dégâts. Dans cette position, nous aurons les dégâts. Et à cette position, nous aurons également les dégâts. Ok, donc avec ça hors du chemin, j'espère que vous avez apprécié cette vidéo. J'espère que vous avez créé toutes vos animations. Il a fallu le temps de les faire. C'est la scène de tout notre whoa, c'est sympa. Quoi qu'il en soit, pour une raison quelconque, j'ai une erreur. Je réparerai ça plus tard. Mais pour l'instant, j'espère que cela vous plaira et je vous verrai dans la prochaine vidéo où nous allons réellement déplacer notre ennemi et détruire des choses. Alors, à ce moment-là.
88. Créer le mouvement de patron: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo. Et dans celui-ci, si je maximise le jeu pour tout voir quand je lance le jeu, vous remarquerez que le patron fait appel du sol et commence à marcher vers nous. Et quand il arrive à une certaine position, il commence à nous collaborer en clobberant. Est-ce même un verbe approprié ? Il commence à nous embrouiller avec son sel géant. Donc, ça ne perd plus de temps. Et commençons. Oh, ok, donc maintenant faisons
marcher l'ennemi ou non l'ennemi, le patron
commence à marcher vers le joueur. Alors, comment allons-nous faire cela ? Si nous allons voir l'animateur, première chose que nous voulons faire est
de passer de l'apparence à la marche réelle. Je vais donc créer une transition vers la marche. Et il n'y aura aucune condition. Il n'y aura qu'une heure de sortie et peut-être une durée de transition qui verra à quoi cela ressemble. Donc, l'ennemi apparaît et c'est parti. Vous pouvez voir que lorsqu'il finit d'apparaître, il passe ensuite à la marche. Vous pouvez jouer ici. Par exemple, augmentons le temps de sortie à 97 %. Nous avons donc complètement fini son apparition. Voyons à quoi ça ressemble. Bon, il y a donc une erreur ici. Et je veux faire tout cela devant vous
juste pour que vous puissiez voir comment les choses se passent. Il faudra peut-être un peu plus de temps dans la vidéo, mais je dois vous le montrer. Je ne veux pas de confusion de toute façon. Maintenant que nous avons la marche, il est temps d'abord de trouver la transformation du joueur, obtenir un corps rigide, trouver la direction, et ainsi de suite, d'ajouter la vitesse. Comment allons-nous faire cela ? Comme vous le savez, tous ces états sont installés ici. Donc, ce que je vais faire, je vais cliquer sur la marche. Et vous pouvez voir ici que je peux ajouter quelque chose qu'on appelle un comportement. Cliquez donc sur Ajouter un comportement. Allons de l'avant et créons un nouveau script. Et au lieu que le patron se mette en colère pour une raison quelconque, nous allons appeler cela la marche du patron. L'ajout d'un script de comportement à un état
a donc un autre type de convention de dénomination que je vais utiliser. En fait, MON unité utilise le trait de soulignement, donc je vais respecter cette norme, disons. Créez donc une annonce, attendez que le fichier soit importé. Et on y va. Nous avons maintenant l'après-guerre. Si nous cliquons sur et voyons où c'est réellement, nous allons dans les actifs. C'est immédiatement dans les actifs. Donc, si un jour, si je fais ça un peu plus grand nous pouvons voir correctement les dossiers. Et vous pouvez voir que c'est juste sur les atouts. Et pour cette raison, je vais
aller dans les scripts ici,
cliquer avec le bouton droit de la souris et créer un nouveau dossier pour le système Boss ou Boss. Appelons ça le système de point de vente. Appuyez sur Entrée, puis backend les ressources. Je vais faire glisser ça dans le boss. On y va. Et le patron clique sur la marche. Le scénario est-il toujours là ? La nouvelle version d'Unity est donc extrêmement valable de toute façon, j'espère que la vôtre ne tardera pas à compiler et à comprendre tout. Maintenant, double-cliquez sur la promenade et voyons ce que nous avons ici. Comme vous pouvez le constater, nous n'avons plus de comportement mono. Comme vous pouvez le voir ici, comportement de
Mano est généralement réservé à un script qui sera attaché à un objet de jeu. Donc, quelque chose qui va bouger. Par exemple, ici, nous n'avons pas de comportement moteur, nous avons un comportement de machine d'état. Et il s'agit d'un script qui n'est attaché qu'à certains états. Continuons donc, qu' est-ce que nous avons ici ? Tout comme nous avons le début et mise à jour du comportement mono, nous avons l'entrée en état et la mise à jour à l'état. Nous avons également la sortie à l'état, déplacement
sur l'état et le QI sur l'état, quoi qu'il en soit. Quoi qu'il en soit, nous ne nous concentrerons pas sur les deux derniers, donc nous pourrons aller de l'avant et les supprimer. Et ici, je vais sélectionner toutes ces lignes parce qu'elles sont commentées. Et nous pouvons
tout décommenter en utilisant le changement de contrôle ou non, désolé, Control K, vous. On y va. Assurez-vous donc de maintenir la touche
Contrôle enfoncée et d'appuyer sur K en même temps. Comme vous pouvez le constater, nous avons beaucoup d'erreurs. Et c'est parce que ces lignes sont en fait les commentaires. Ainsi, comme ici, nous avons sur la mise à jour,
la mise à jour des commentaires s'appelle chaque image que vous pouvez voir ici,
l'entrée à l'état est appelée quand une transition commence, et la mise à jour à l'état est appelée chaque la mise à jour et à la sortie est appelée sur les transitions. Et d'accord, Excellent. Alors, continuons maintenant. Ici, je vais tout d'abord créer la transformation de la couche à chasser. Ensuite, je vais y arriver. Un corps rigide 2D. Donc, le corps rigide, pas de patron. Corps rigide 2D. Ou vous savez quoi ? N'allons pas avoir à diriger tout ce jeu est un jeu 2D, donc nous n'aurons pas besoin de cela et d'un vecteur à trois points pour bouger. Et donc, tout comme les ennemis réguliers, nous avons les composantes du boss qui marche et ainsi de suite. Maintenant que nous les avons, il est temps de relever un défi. Et votre défi sera de
trouver la couche IP et d'obtenir le corps rigide. Donc, tout d'abord, réfléchissez à l'endroit où nous devrions obtenir toutes les références. Donc, généralement, nous utilisons le début, mais maintenant nous ne nous sommes pas arrêtés. Alors, où devrions-nous être ? Vous pensez où nous devrions utiliser un, où devrions-nous obtenir tous nos composants ? Ensuite, nous devrons trouver le joueur, évidemment. Ensuite, nous devrons mettre le corps rigide sur le patron. Et je vais vous donner un petit indice. Nous devrons utiliser l'animateur à partir des paramètres. Qu'est-ce que je veux dire par animateur à partir des paramètres ? Laissez-moi juste vous montrer ça. Donc, si nous allons ici, vous pouvez voir que sur l'entrée en état, mise à jour de l'état et de la sortie à l'état, nous avons certains paramètres ici, et l'un d'eux est l'animateur. Nous avons donc un accès immédiat à l'animateur. C'est ce que vous allez utiliser une commande pour obtenir les références. Donc, pour aller et venir à notre défi, c'est un peu difficile. Faites de votre mieux, essayez différentes choses, différentes astuces, faites des erreurs, faites de votre mieux. n'y a aucune pression sur vous. Mettez la vidéo en pause dès maintenant et relancez le défi. Je vais revenir. Donc, parce que nous n'avons pas de démarrage, nous allons utiliser l'entrée à l'état et à l'extérieur Allstate Enter fonctionne dès que nous entrons dans l'état, nous allons configurer les paramètres et ensuite nous verrons ce que nous voulons faire plus tard. Pour l'instant, nous allons aller de l'avant et utiliser la poursuite des joueurs. Quel est le joueur Chase va être
l' objet de jeu objet de recherche d'objets de type. Ou en fait, où est-ce qu'il trouve un objet de type. Et ce sera la manette du joueur. Notez sur la puce supérieure la manette du joueur. Trouvez donc l'objet de type. Je crois que nous l'avons déjà vu. Et nous avons utilisé l'objet de jeu car nous pouvons simplement utiliser l'objet de
jeu sans avoir le comportement mono ici. Nous avons donc besoin de la classe d'objets du jeu. Ensuite, nous obtenons l'objet final de type. Nous recevons la manette du joueur. Enfin, nous devons obtenir le transport de cet objet de jeu que nous avons trouvé. Nous avons donc maintenant une référence au joueur à chasser. Ensuite, nous avons besoin des corps rigides. Je vais donc dire que le corps rigide du boss est égal au composant animateur. Et nous allons obtenir le corps rigide 2D. Et avons-nous ajouté un corps rigide au patron ? Examinons ça et voyons si nous l'avons fait. Si nous cliquons sur le Skelly, ce n'est pas le cas. Allons de l'avant et ajoutons un corps 2D rigide. On y va. Nous avons donc maintenant un corps rigide. Et veillons à ce que nous
bloquions la rotation à cette fin. Et nous nous assurons que la grande échelle à 0. On y va. Gardez ça. Si vous ne voulez pas être capable de pousser votre patron, vous pouvez vous assurer de le régler statique
cinématique ou peut-être même statique. Mais je pense qu'il ne pourra pas bouger. Quoi qu'il en soit, continuons maintenant, nous devons nous assurer que l'ennemi ou le patron commence réellement à bouger. Alors, où devrions-nous faire cela ? Eh bien, évidemment, ça devrait être le contraire. Donc, une mise à jour, je vais dire que nous avons un vecteur deux, qui est la nouvelle position dans laquelle nous devrions nous trouver. Et ça va être égal au vecteur vers la brume vers. Et vers quoi devrions-nous aller ? Il devrait s'agir du point de bossage, position
rigide du point du corps. Ce sera donc le cas, comme vous pouvez le voir ici. Tout d'abord, nous avons le courant, puis nous avons la cible, puis nous avons la distance maximale. Nous allons donc aller de l'avant et dire cette position corps rigide. Donc des patrons rigides corps évidemment. Ensuite, nous allons dire que la position du joueur pourchasser le point est la cible. Et je vais créer ici une vitesse de flottement publique. Et ce sera la vitesse à laquelle nous allons évoluer. Et puis un flotteur public est revenu. Portée, et il s'agira d'une plage d'attaque plus tard lors de l'utilisation de l'outil. Donc ici, ce que nous allons faire, c'est que nous allons dire que nous allons avancer à la vitesse, mais nous allons y ajouter Time dot fixe delta prime et y temps delta fixe. Et quelle est la différence ? Vous pouvez voir ici l'intervalle en secondes auquel physique et d'autres images fixes se mettent à jour. Donc, c'est presque la même chose que l'heure du delta, mais c'est un temps delta fixe. Il ajoute simplement un peu de performance supplémentaire au jeu. Et pour une raison quelconque, j'ai remarqué que lorsque nous utilisons l'heure Delta normale, nous avons un comportement bizarre parce que nous sommes dans un animateur. C'est peut-être la raison. Je ne suis pas sûr à 100%, mais ce que j'ai trouvé en utilisant le temps delta fixe, qui est exactement comme le temps delta, juste fixe et plus précis. Continuons donc. Enfin, que voulons-nous faire lorsque nous entrons dans une certaine fourchette ? Nous voulons commencer à attaquer notre joueur. Donc si le vecteur deux points distance entre la couche pour chasser la position du point et le corps rigide. La position du corps rigide du bossage. S'il est inférieur à la plage d'attaque que nous avons créée ici. Pendant que nous étions en train de créer la vitesse. Ensuite, ici, nous allons dire que l'animateur qui déclenche, le déclencheur et nous allons commencer à attaquer. Revenons donc dans notre jeu. Créons une transition entre la marche et l'attaque. Et j'ai fait la transition entre l'attaque et la marche. Et ici, nous allons nous assurer que nous n'avons pas de temps supplémentaire ou non allons en fait sauter cela parce que parfois cela pourrait en avoir besoin. Nous allons donc dire ici que nous voulons attaquer. Il s'agit du nom du déclencheur. La condition pour passer de la marche à l'attaque sera l'attaque de déclenchement. Je vais le coller ici, sauf ça. Et maintenant, ici, je vais
voir comment allons-nous revenir. Donc, tout d'abord,
nous passons de The Walking, nous commençons à attaquer, mais ensuite comment revenir ? Tout d'abord, voyons à quoi cela ressemblera. Je vais donc lancer le jeu et nous allons examiner le comportement de nos joueurs. Comme vous pouvez le voir, il est apparu, mais pour une raison quelconque, il ne bouge pas et il s'éloigne très facilement. Passons donc au programme et voyons quel est le problème ici. Peut-être devriez-vous le rendre un peu dynamique ou cinématique. Essayons encore une fois. Et encore une fois. Il semble qu'il commence à marcher. Et quand nous sommes à portée, comme vous pouvez le voir, il l'est. Vous y allez. Tout semble fonctionner. Le seul problème, c'est que nous
sommes rendus au-dessus de lui. Je vais donc y retourner. Je vais vérifier la présence de ces couches privées et de boss. C'est donc votre préférence. Voulez-vous apparaître derrière le patron, devant le patron ? Mais en fait, ce que nous voulons c'est peut-être apparaître derrière le patron. Nous ne voulons pas marcher sur le patron. Donc, dans les couches ajoutées, joueur, on y va. Alors maintenant, quand nous lançons le jeu, il y a un problème évident ici qui va bien, donc nous sommes rendus derrière le patron. C'est bien. Il combat les États-Unis, fait une attaque
qu'une autre attaque plutôt que de marcher EBIT qu'une autre attaque. Mais ici, le problème, c'
est qu'il ne marche toujours pas vers nous. C'est parce que nous n'avons pas vraiment fait bouger le patron. C'était une erreur de ma part. Corps rigide sur le bus. Nous pouvons utiliser la position Move. Et ici, nous allons
le vendre comme nouveau poste. Alors, sauvegardez ça. Vous pouvez voir ici, Déplacer la position ne fonctionne pas,
déplace le corps rigide en position, sauvegardez-le en arrière. Maintenant, jeu, lancez le jeu. Et maintenant, nous devrions voir que lorsque le patron apparaît, il commence à marcher vers la couche et il commence à frapper le joueur et à marcher vers lui. Mais comme vous pouvez le constater, il n'est pas la bonne direction et il s' arrête trop près de la couche. C'est parce que si nous cliquons sur le programme sur la marche, excusez-moi, marchant ici, c'est que vous pouvez voir que la vitesse et la portée d'attaque sont peut-être un peu plus grandes. Faisons peut-être cinq. Voyons à quoi ça ressemble. Lancez le jeu. Et maintenant il s'approche, puis vous allez, vous pouvez voir qu'il commence à nous combattre et il commence à marcher vers nous. Donc, ça a l'air plutôt bien. Je crois que nous ne voulons pas être en mesure de marcher derrière le patron. Je n'aime pas beaucoup ça. Donc, peut-être que cela ne devrait pas être un déclencheur après tout. Peut-être devriez-vous être capable de frapper le patron sur la tête. Ce n'est pas énorme si nous pouvons réellement traverser cela ou vous pouvez faire, par exemple, le mur de
la grille a changé le mur à un certain niveau et s'assurer que le patron n'interagit pas avec Wall, ce qui, je pense, est vraiment une bonne idée. On va peut-être tester ça. Sauvons ça. Mais pour l'instant, tout semble bien fonctionner. Il y a
évidemment le problème du retournement de l'ennemi. Et nous devons faire quelques réparations pour le mouvement, mais nous garderons cela pour une vidéo ultérieure. Pour l'instant. J'espère que ça vous plaira. J'espère que vous commettez vos changements et je vous verrai dans le prochain.
89. Meilleur mouvement de patron: Bienvenue en faveur des développeurs de jeux. Dans cette vidéo, nous allons corriger quelques bugs ou désagréments et le mouvement de nos patrons. Alors maintenant, lorsque nous lançons le jeu, il
y a quelques petits ajustements que vous ne remarquerez peut-être pas. Par exemple, maintenant, si nous partons, nous n'avons pas la double attaque. Et nous pouvons également constater que notre ennemi est retourné à chaque fois. Donc, avec cela, ne
perdons plus de temps et passons au retournement. Maintenant que nous avons établi le premier type de marche et d'attaque pyruvate. La prochaine chose que nous allons faire, c'est que nous allons réparer le mouvement du boss et nous allons
aller de l'avant dans toute
la machine d' état du boss, SAP. Commençons donc. La première chose que je veux régler, c'est la double attaque. Quelle est la double attaque ? Eh bien, si je dirige le jeu, je vais le garder tel qu'il est ici. Comme vous pouvez le voir, il se rapproche, il attaque une, deux fois. Si je m'en sors, il en attaque toujours un. Donc 12, c'est la double attaque. Nous ne voulons pas que cela se produise. Donc, pour éviter cela, je vais ouvrir Visual Studio et
ici et à la sortie sur l'état. Quand nous quitterons la marche du boss, je vais aller de l'avant et accéder à l'animateur. Et je vais réinitialiser la gâchette. Donc, ici, je vais répéter l'attaque. Ce que cela va faire, c'est que vous pouvez voir ici, lorsque nous sommes à une certaine distance, que nous déclenchons l'attaque. Nous allons donc dans l'attaque. Mais dès que nous sortons de la marche, nous allons réinitialiser la gâchette afin que nous ne soyons plus dans l'attaque. De retour ici, nous n'attaquons plus deux fois. Donc maintenant, si je dirige le jeu, les boss ennemis ne devraient attaquer qu'une fois que nous avons eu des impôts. Donc, fiscalité, on s'en va. On y va. Vous pouvez voir qu'il n'attaque qu'une seule fois. Super, bien ça a été corrigé. La prochaine chose que j'aimerais corriger est l'animation attaquante. Vous remarquerez donc qu'il ne fait pas les deux balançoires complètes de haut en bas. Tu n'es pas le seul à se lever et puis il s'arrête. Pourquoi est-ce que c'est ? Eh bien, parce que c'est l'heure de sortie ici même pour la transition. Donc si je clique dessus, Kelly, et que vous remarquerez ici avant-première quand je ferai courir le jeu, il tire une fois et puis il retourne à la marche, ce qui n'est pas quelque chose que nous voulons. Donc, ce que je vais faire, c'est que je vais régler l'heure de sortie pour jouer environ 90 % du mouvement. Oui. On y va. Peut-être encore plus, juste un peu plus. Donc, peut-être 97 poissons du déménagement. Voyons à quoi ça ressemble. Et tout cela doit être calibré fonction de ce que vous voulez que votre jeu se sente. On y va donc. Nous attaquons une fois, deux fois en bas et en bas. Là, nous commençons à marcher. Excellent. Une autre chose qui est un peu dérangeante ici, c'est l'heure de sortie de la marche vers l'attaque. Maintenant, nous avons tout mis en place. Maintenant, nous devrions voir un peu plus en douceur. On y va. Nous attaquons, nous marchons, nous attaquons, nous
marchons, nous attaquons, nous marchons un peu et nous continuons pousser vers le joueur. Mais évidemment, il manque encore une chose est
que l'ennemi ne regarde pas dans notre direction, ce que j'appellerais un problème énorme en raison de la façon dont notre attaque de mêlée sera organisée. Donc, résolvons ça. La première chose que nous allons faire, c'est évidemment que nous
allons faire pivoter le joueur comme nous l'avons écrit. Des ennemis. Mais où faisons-nous cela ? Nous voudrions peut-être faire cela et marcher. Et bien, que se passe-t-il si nous attaquons ? Nous voulons également regarder le joueur et ne devrions-nous pas aussi regarder le joueur et tirer ? Il semble donc que cela soit plus général et non étatique. Nous allons donc créer ici un script appelé contrôleur de boss. Et je vais attendre qu'il compile et ajoute cette manette de boss à objet de jeu Kelly Boss ici. Et ici, je vais d'abord avoir une référence au joueur à chasser. C'est donc un vide privé. Vide, vide que j'avais transformé. Et la couche à chasser. On y va, on sauve ça maintenant et on commence. Je vais aller de l'avant et dire que le joueur à chasser est égal à l'objet final de type. La manette du joueur. Et je vais aller de l'avant et accéder à la transformation là-dessus. Maintenant, nous avons le joueur à chasser prêt à partir. Maintenant, la prochaine chose à faire est de commencer à basculer. Le boss chaque fois que le joueur passe d'un côté à l'autre de l'ennemi. Donc, parce que nous l'avons déjà fait, je vais vous le lancer comme un défi. Et votre défi consiste à faire pivoter le patron dans la bonne direction. Tout d'abord, vérifiez la position du boss par rapport à la position du joueur. N'oubliez pas que nous obtiendrions que, grâce aux transformations basées sur cela, faire pivoter le transport par bus autour de l'axe Y. Vous devrez donc retourner à 180 degrés. C'est donc similaire à la façon dont nous retournions les armes, pas seulement le NMI. Vous devrez ajouter l'
inverse , bien sûr, évidemment. Et puis appelez cette méthode avant de marcher sur l'ennemi. Testez-le. Y a-t-il un problème ? Pourquoi y a-t-il un problème ? Il est donc évident que vous
rencontrerez un problème. Ne vous inquiétez pas à ce sujet. Faites de votre mieux. Trouve le chemin qui se retourne, et je te verrai juste un peu. Bon, bon retour. Donc, dans la mise à jour, je vais vérifier si la transformation, le point x de position, c'
est-à-dire le boss, est supérieur à la couche pour poursuivre cette position, le RX. Et au fait, cela est basé sur l'
apparence initiale de la masse. Donc s'il regardait dans l'autre sens, on aurait peut-être voulu vérifier ça dans l'autre sens. Quoi qu'il en soit, si
la position du boss est supérieure la position du joueur à chasser, évidemment sur l'axe des X, uniquement. Ensuite, ce que nous allons faire, c'est ici que nous allons obtenir la position du point de transformation. Et nous allons, excusez-moi, la Transform Rotate. Alors qu'il tourne. Puis 0 F sur l'axe X et 180 sur l'axe Y et 0 sur l'axe Z. Et pourquoi est-ce que c'est ? Si nous retournons dans notre jeu, et si nous obtenons ces boss de Kelly, si nous faisons une rotation ici, nous y allons, vous pouvez voir qu'il tourne dans l'autre sens, qui est exactement ce que nous voulons. Nous allons donc nous en assurer autrement si nous transformons cette position, mais cette fois, c'est l'inverse. Cela signifie que le joueur est ce qui s'est passé. Le joueur est dans l'autre sens. Ensuite, nous allons nous assurer de
retourner l'ennemi à nouveau. On y va donc. Gardez ça. Maintenant, si nous retournons ici, et quel est le problème ? On a peut-être fait une faute de frappe ici. Oui, on y va. De retour, encore une fois, nous gérons le jeu. Voyons ce qui se passe. Et on y va. donc évident qu'il y a un petit problème. Quel était le problème ? De toute évidence, notre boss ennemi est en train de faire une attaque. Et pourquoi cela se produit-il ? Eh bien, parce que nous essayons de retourner. Remarquez donc ce qui se passe ici lors de la rotation, nous retournons et ensuite nous retournons. Nous essayons de retourner l'ennemi, je veux dire le boss en fonction de la direction des joueurs. Mais parce que nous l'appelons chaque image et cause de l'animation qui
nous fait marcher dans une certaine direction, nous avons ce basculement constant tout le temps. Donc, ce que nous allons faire, c'est de retour ici, nous allons créer une variable qui
vérifiera si nous avons basculé ou non. Donc, ici, je vais créer un public. Et juste pour le rendre public pour l'instant, nous ne suivrons
évidemment pas comme éternellement. Donc si c'est un
lipide retourné et je vais le mettre à faux au début. Donc, ici, nous allons vérifier si nous avons un flippant. Cela signifie qu'il est inversé est égal à faux parce que c'est la direction régulière que nous regardons. Si le joueur est sur le côté gauche, juste ici. Donc, si le joueur est sur le côté gauche, nous ne voulons pas être retournés. Et ici est retourné est égal à vrai. Désolé. Pour une raison quelconque, l'onglet n'est pas pris comme je veux. Visual Studio Community ne me suit pas. Et ensuite, nous allons
l'ajouter ici dans nos conditions. Donc, si le joueur est sur le côté gauche
et, et qu'il est retourné, donc il est retourné, alors nous allons le retourner de l'autre côté. Et ici, s'il n'est pas retourné, alors nous allons le retourner. J'espère que vous comprenez ce qui se passe ici. Tout d'abord, nous avons le retourné au début, c'est faux. Donc ici, cela ne fonctionnera pas seulement lorsque le joueur est l'autre côté du chemin et que nous n'avons pas basculé, puis nous retournerons. Nous allons mettre cela à vrai, et cela nous permettra de ne plus revenir en arrière lorsque
nous n'avons évidemment pas besoin d'être retournés. Alors, lancez le jeu. Et vous remarquerez maintenant que l'ennemi apparaît, il s'en prend à nous. Il est évident que la distance doit être ajustée un peu. Et puis quand nous allons de l'autre côté, alors que ceux-ci se sont retournés, nous y allons. Vous pouvez voir que nous y allons. Il est retourné. Il est retourné. D'accord. Il n'est pas retourné. Il est retourné. Il n'est pas retourné. On y va donc. Maintenant, nous avons du beurre, mouvement et du beurre et une transition de mission pourrait être une meilleure gestion de la distance serait bonne. Donc cinq, je pense, c'est beaucoup, peut-être que 3,5 est un bon nombre. Je ne veux pas que le joueur
ou l'ennemi frappe le joueur V. Peut-être même trois, c'est bien. Je vais sauver ça. Nous avons ajouté un peu de transition. Prenez votre temps et jouez avec les transitions et rendez-les parfaites dans les deux sens, vous aimeriez, avec cela hors du chemin,
assurez-vous de valider vos changements. J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo où nous allons mettre en place l'attaque réelle principalement et commencer blesser notre joueur et pas seulement à balancer MC. Alors, on se voit là-bas.
90. Créer une attaque de patron: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous
allons en fait attaquer au corps à corps à corps. La façon dont nous allons le faire, c'est que
nous allons créer une méthode pour l'attaque. Et ici, nous allons créer un cercle de chevauchement autour d'un certain point. Nous allons nous assurer d'appeler ce système de défense chaque fois que nous lançons une épée. Donc, sans plus rien faire, permettez-moi de vous montrer ce que nous avons fait ici. Alors l'ennemi se lève. Il le fait une fois, des dégâts deux fois, trois fois, et vous remarquez qu'il ne nous endommage que lorsque nous sommes réellement frappés à la tête avec l'épée. Ne perdons donc plus de temps. Et commençons. Alors, allons maintenant créer l'attaque malaise. De toute évidence, pour
l'instant, le patron ne fait que se balancer par le passé, je veux dire, désolé l'épée. Il le balance mais il ne fait aucun dommage. Nous allons donc faire des dégâts réels. Je vais donc tout d'abord vous
expliquer comment faire une attaque. Il est donc évident qu'il existe nombreuses façons de créer des attaques de mêlée, mais c'est ainsi que nous allons les mettre en œuvre. Désolé pour ça. Et c'est ainsi que nous en apprendrons le plus. La première chose que nous allons faire est de créer un cercle de dégâts au joueur à partir d'une certaine position. Ainsi, chaque fois que le
tri du joueur se trouve dans cette position dans l'animation, nous créerons ici un cercle ou un cercle
qui se chevauchera, que vous saurez plus tard que nous vérifierons si le joueur est à l'intérieur. le rayon du cercle, il sera endommagé. Si ce n'est pas le cas, s'il s'en va à temps, vous ne serez pas endommagé. Nous allons donc nous assurer que nous utiliserons quelque chose appelé cercle de chevauchement 2D
physique chaque fois que l'impulsion attaque. Souvenez-vous donc de la physique au cercle de chevauchement. Et nous allons donc créer quelques variables pour cela. Nous allons gérer cette attaque ici même à partir du script. Allons de l'avant et commençons. La première chose que nous allons
faire est de créer un champ sérialisé. Allons de l'avant et rendons celui-ci privé parce que nous savons déjà ce qu'il fait. Donc, le montant
des dégâts et il sera égal à 20 par défaut. Ensuite, nous devrons créer une transformation qui représentera le point d'attaque. Donc, point d'attaque. Et pourquoi avons-nous un point d'attaque ? Parce que si je vous ramène ici, vous verrez que nous avons un certain milieu et ce sera le point d'attaque autour duquel nous construirons
notre cercle et vérifierons le joueur qui s'y trouve. Donc, nous allons évidemment simplement détourner la création de cet objet de jeu. Mais avant de le faire, il faudra évidemment aussi quelque chose appelé rayon, c'
est-à-dire le rayon d'attaque. Donc, à ne pas confondre avec le champ d'attaque et. La portée d'attaque est
donc celle à laquelle nous allons commencer à attaquer. Le rayon d'attaque est le rayon dans lequel le joueur est endommagé s'il reste là. Ensuite, nous allons enfin créer un champ sérialisé de type masque de calque. Et ça va s'appeler ce qu' est un joueur et pourquoi l'appelons-nous ainsi ? Eh bien, depuis que j'ai commencé à utiliser Unity, tous les forums, vidéos YouTube, autres cours et généralement la communauté Unity
ont toujours provoqué ce qui est joueur chaque fois que nous voulons définir une sorte de couche. Donc, et pas seulement le joueur, on appelle parfois ce qui est de la terre. Je suis donc habitué à ça. Vous pouvez l'appeler comme vous voulez, mais c'est le consensus général à ce sujet. Et avant de passer à autre chose, nous avons besoin d'un moyen de voir réellement ce rayon. Nous allons donc utiliser les gadgets OnDraw void sélectionnés. Nous l'avons déjà fait. Rien de trop chic ici. Donc, couleur gizmos, couleur rouge. Et finissons tout ça. Appuyez sur Entrée. Et ici, nous allons aller au gizmos, dessiner
le fil, la sphère. Nous sommes sphère et ça va être sur la position du point d'attaque. Et ce sera le rayon d'attaque comme rayon. Nous y allons donc, La sphère andro, comme vous pouvez le voir, un centre et un rayon. Nous venons de leur donner le point de position d' attaque, le rayon d'attaque. Revenons donc dans notre jeu. Et devons-nous attendre que quelque chose soit compilé ? Sachez que c'était rapide. Je vais donc cliquer avec le bouton droit de la souris et créer un objet de jeu vide en tant qu'enfant du boss. Et nous appellerons cela le point d'attaque. Et sur ce patron Kelly ici, je vais ajouter le point d'attaque. Quel est le joueur ? C'est le joueur et le rayon d'attaque. Je vais juste entrer en scène pour voir ce qui se passe. Et on y va. De toute évidence, comme nous le faisons toujours, ce sera à vous de choisir. Où voulez-vous définir votre animation ou, désolé, je pensais à l'animation. Où voulez-vous définir le point d' attaque et quelle taille voulez-vous l'atteindre ? Je vais donc faire défiler vers le bas et voir l'attaque. Donc, dans l'attaque, on y va. C'est le point où nous allons attaquer, donc exactement ici. Et à partir de là, nous pourrons déterminer quelle mesure voulons-nous déplacer le rayon. Et remarquez que parce que les gadgets OnDraw se trouvent sur le contrôleur de bus, cela signifie
que nous
augmentons un peu ici, juste le faire aussi. Je pense que deux sont un chiffre approprié, mais je vais aller de l'avant et en faire trois. Donc, juste à des fins de test. Je vais donc le déplacer un peu Skelly. Et si nous voyons une autre attaque ici, donc nous ne l'avons pas fait, nous y allons. Si le joueur est debout n'importe où à l'intérieur de ce rayon, il sera pris. Donc sans plus tarder, sauvegardons cela et allons vous lancer un défi car cette fois, vous allez faire l'attaque. Tout d'abord, vous devez créer une méthode et le contrôleur de boss la rend publique. Pourquoi ? Parce que nous en avons besoin ailleurs. Ensuite, nous allons vérifier
le cercle des chevauchements chez les chiens de l'unité. Ce sera votre travail. Vous devrez aller voir comment tout fonctionne. Et vous devez vérifier si le joueur se trouve dans le rayon d'attaque. Si c'est le cas, nous appliquerons des dégâts. Appelez cette méthode à l'aide d'une animation d'événements. Alors, avec ça,
rappelez-vous, laissez-moi juste vous montrer quelque chose. C'est ce qu'on appelle la physique du cercle de chevauchement. Et maintenant, mettez la vidéo en pause et continuez et faites le Shalon. Oh, d'accord, bon retour. Donc, ici, je vais commencer créer un vide public. Et je vais appeler ça la couche d'attaque. Super. Maintenant, que va-t-on faire ici ? Tout d'abord, nous devrons comprendre
comment fonctionne le cercle de chevauchement 2D physique. Disons donc que je suis un développeur de jeux désemparé. Je ne sais pas comment fonctionne la physique au cercle de chevauchement. Donc, tout d'abord, je viens de m'enregistrer ici. Donc la déclaration, une statique publique, pas besoin de s'inquiéter de la statique. Nous pouvons le faire sans l'électricité statique. Je fais défiler ici. Je vois qu'il s'agit d'un cercle de chevauchement 2D du collisionneur. Nous avons un point, nous avons un rayon, un masque de calque, je veux dire une profondeur et une profondeur maximale. Il s'agit donc des
coordonnées z lorsque nous travaillons en 3D, je suppose, ou peut-être que quelque chose inclut l'objet O, des objets qui se trouvent dans le z. Il vérifie
donc également la profondeur. Nous n'en aurons pas besoin. Si nous faisons défiler vers le bas, nous pouvons voir que nous pouvons également obtenir des résultats ici. Et nous pouvons également utiliser des photos de contact en cours d'apprentissage sur les filtres de contact dans l'une des vidéos, nous obtenons un tableau, mais faisons également défiler vers le bas. Ok, donc c'est tout ce dont nous avons besoin. Nous pouvons également renvoyer des listes. C'est donc ce dont nous avons besoin et cela renvoie un collisionneur, collisionneur
2D chevauchant le cercle vérifie si un collisionneur tombe dans la zone circulaire. Le cercle redéfinit les coordonnées, etc. Et ici, vous pouvez
approfondir les coordonnées z. Mais de toute façon, c'est ce dont nous avons besoin de physique, le cercle de chevauchement dans notre jeu. Que voulons-nous faire ici ? Tout d'abord, nous devons trouver le joueur que nous attaquons. Je vais donc créer un collisionneur 2D. Et ce sera le joueur à attaquer. Et je vais dire qu'il est égal au cercle
de chevauchement de points 2D physique. Et je vais dire, qu'est-ce que nous avons ici ? Donc, tout d'abord, nous avons l'intérêt. Quel est le but ? De toute évidence, c'est le point d'attaque, cette position. Ensuite, nous avons besoin du rayon. C'est donc le rayon d'attaque. Et ensuite, nous avons besoin du Joueur, car nous voulons seulement frapper le joueur. Ensuite, ici, nous allons vérifier si le joueur attaquera
la couche, la couche. Donc, ok, donc le joueur à attaquer est différent de null. Alors pourquoi dire qu'il est différent de nul ? Si nous regardons ici, gardons ça. Tout d'abord, imprimez le joueur à attaquer. Alors, sauvegardez ça. Et allons-y et reprenons, et ajoutons ça au système événementiel. Alors, où voulons-nous que cela soit appelé ? Si je vais dans l'attaque ici, je balance l'épée et juste au moment où il se balance et vend, je vais appliquer la fonction. Et quelle fonction devrions-nous appliquer ? À cette couche. Et encore une fois, lorsque nous descendons ici, nous allons ajouter une
autre option, désolé, je veux dire, un autre événement. Et nous allons attaquer le joueur. Alors, sauvez ça, lancez le jeu. Et voyons ce que nous entendons par null. Laissez-le nous attaquer. Donc on y va, doom player, faire couche. On y va. Si on se balance, on y va. Nous pouvons voir que nous avons une valeur nulle ici lorsque nous étions
à l'extérieur. Donc parce que la façon dont nous allons continuer, parce que nous allons amener le joueur à attaquer ce composant par l'intermédiaire du gestionnaire de santé du joueur. Et quelle était la méthode ? Je crois qu'il s'agissait de dégâts causés par
le joueur et de
la quantité de dégâts, du montant des dégâts que nous avons créés ici. Il semble donc que j'espère que vous comprenez ce que nous n'avons pas fait. Si nous n'en avons pas ou si nous ne vérifions pas que le joueur est nul. Nous allons donc accéder au gestionnaire de santé du joueur, qui n'existe pas, ce qui entraînera une erreur. Nous avons donc cette étape supplémentaire de sécurité. Nous vérifions si le joueur à attaquer est différent de null. Si c'est le cas, nous attaquons ou en fait des dégâts. Si ce n'est pas le cas, cela signifie qu'il est en dehors du rayon. Cela signifie que nous ne le faisons pas. Kim et moi allons garder ça ici juste
à des fins de test. Sauvons donc tout ça. Et revenons dans notre jeu et ici, et courons voir ce qui va se passer. Le joueur s'approche donc, il se bat, et comme vous pouvez le voir, il subit des dégâts à chaque fois. Je vais donc faire en sorte que le joueur des dunes max aide un peu plus grand. Santé maximale. Faisons 500 pour les tests, lançons le jeu. C'est génial de pouvoir changer
la vie à chaque fois que nous le voulons, parce que nous avons créé le jeu. Nous y voilà, 202020. On y va. Vous pouvez voir que nous sommes frappés. Nous l'avons compris. Nous sommes touchés à chaque fois. Nous supprimons ou réduisons nos vies de 20. Et vous pensez peut-être, eh bien, pourquoi ne sommes-nous pas frappés lors de la balançoire ? Laissez-moi vous montrer. J'ai donc essayé de me faire frapper. Deuxièmement. Faites-vous frapper. Ok, ça n'a pas bien fonctionné parce que nous
sommes un peu invincibles en quelques secondes. Donc, vous pouvez voir, laissez-moi juste essayer de le faire. Je sais que ça ne fonctionne pas. Laissez-moi donc voir si je peux supprimer le temps de sensibilité à 0. Et de cette façon, nous ne deviendrons pas invincibles. Vous remarquerez que nous sommes frappés en haut et en descendant, en haut et en descendant. Et comme vous pouvez le constater, c'est pourquoi nous avons ajouté un peu d'invincibilité à notre joueur parce que ce n'est pas très amusant être endommagé
à chaque fois. Et si nous continuons à être endommagés, éventuellement, le joueur va mourir pour succomber à ses blessures. Vous pouvez donc voir ici que nous avons quelques erreurs à cause de l'entrée en état. Nous essayons de trouver le joueur, mais il n'y a pas de couche. Maintenant, on pourrait soit garder ça. Il est évident que nous ne devrions pas garder cela parce qu'il s'agit d'une erreur. Cela peut causer des
problèmes ne pas prendre en compte quelques lignes. Donc une vacua ici, c'est
juste vérifier s'il est disponible et ainsi de suite et ainsi de suite. Mais ne nous inquiétons pas à ce sujet. inquiétons de la mécanique de base, des petits détails que nous pourrons contourner plus tard. Cela dit, j'espère que ça vous plaira. J'espère que vous commettez vos changements chaque vidéo. J'espère que vous m'avez laissé une critique parce que cela m'aide beaucoup. Et cela va-t-il s'en sortir ? Dans la vidéo suivante, nous allons amener notre patron à la deuxième étape, la deuxième ou la
deuxième étape, la phase en colère.
91. Boss en deuxième étape: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous allons mettre notre patron en colère. Comme vous pouvez le constater, j'ai créé une transition ici. J'ai créé un déclencheur que nous n'avons pas utilisé. Et nous pouvons passer de la marche à la colère, trop en colère, à marcher trop en colère, à attaquer. Voyons donc à quoi cela ressemble dans notre jeu. Je vais maximiser mon jeu. Je vais aller au programme et faire, non, je veux dire, aller à la marche en colère et faire la vitesse cinq, sauver ça, et maximiser le jeu, lancer le jeu. Donc maintenant, vous devriez voir le patron se fâcher, il devient plus gros, et maintenant il marche beaucoup plus vite. Et vous remarquerez qu'il fait beaucoup plus de dégâts et qu'on peut s'en sortir. Vous pouvez constater qu'en ce moment, notre santé est épuisée. Nous avons essayé de le tirer dessus. Il n'a pas de système de santé. Quel genre de jeu c'est, et maintenant nous arrivons à notre mort en mourant. Donc, avec cela, nous revenons au menu principal. Nous cassons quelques lunettes, nous pleurons, et nous essayons de quitter le jeu, mais cela ne nous permettra pas. Donc, ne perdons plus de temps et commençons. Oh, d'accord, il est donc temps de faire passer notre patron au niveau supérieur. Et au niveau suivant, je veux évidemment le mettre en colère, pas de m'inquiéter de la fusillade. Nous y reviendrons plus tard. Nous connaissons déjà tous les mécanismes de tir. Je vais donc créer une transition de la marche régulière à la colère. Et ici, je vais créer un nouveau déclencheur ou un déclencheur. Je vais donc appeler ça « se fâcher ». Donc, lorsque nous marchons, nous nous mettons en colère, puis nous passons à la colère. Nous devenons donc plus grands, nous devenons plus rapides et nous devenons plus forts, je suppose. Bien sûr, nous deviendrons plus forts. Et quand nous passerons de la colère, je veux dire, quand nous aurons terminé la transition en colère, nous passerons à la colère. Regardons ça. On se fâche. On finit l'animation, on respire un peu, puis on recommencera à marcher. Tellement excellent, tout cela fonctionne parfaitement bien. La prochaine chose que nous allons faire est créer une transition de la marche
en colère à l'attaque en colère et à une transition vers le retour. Et nous allons supprimer toute heure de sortie ici. Et je vais prendre cette heure de sortie et il y en a environ 90. Combien de temps a duré la précédente ? Donc, ici, 97. OK, alors 97. Donc, lorsque nous attaquons, nous attaquons une, une, deux fois, une fois, deux fois. Bon, Excellent. Nous avons donc tout configuré correctement et nous allons utiliser le même déclencheur ici même pour l'attaque. Parce que, pourquoi pas ? Nous pouvons le faire, sauver tout cela. Et maintenant, nous avons l'attaque en colère. Mais, de toute évidence, lorsque nous
attaquons, nous voulons avoir plus de dégâts. Nous voulons avoir un rayon de colère plus grand. Donc pour cela, je vais vous lancer un défi pour que le patron attaque en colère. Donc, tout d'abord, créez une nouvelle méthode qui gère l'attaque énervée du patron. Cette attaque devrait avoir une portée plus large et une attaque plus forte. Vous devrez donc créer des variables juste pour cela et ajouter des événements à l'animation en colère at tech. Cela étant dit, mettez en pause la vidéo dès maintenant et lancez la nouvelle attaque en colère. Bienvenue, mes collègues développeurs de jeux. Permettez-moi de vous montrer ce qui se passe sur notre serveur Discord pendant une seconde. C'est une personne que je vais aider et comme vous pouvez le voir, il m'envoie un peu de code. Je lui ai renvoyé un peu de code. Nous avons un chat, nous avons les chats tout le temps dans le développement général du jeu, etc. C'est tellement actif tout le temps. Les gens s'entraident mutuellement. J'ai essayé d'aider autant que possible. Assurez-vous donc de rejoindre le Discord. J'aurais dû en parler plus tôt,
mais ça ne m'inquiète pas. Finissons cette vidéo pour que je puisse aider à marquer. Je vais donc faire défiler vers le haut ici. Je vais créer deux nouvelles variables. Le premier sera
un champ sérialisé en ré majeur et ce sera plus
furieux que la moyenne. Et nous allons juste le fixer à 30 ans. Donc, 30 ou 40 ans. Nous avons donc doublé parce que nous avons doublé la taille, nous doublons le montant des dégâts. Et un champ sérialisé pour le flotteur et les fâchés du rayon. Et on y va. Nous sauvegardons cela. Allons de l'avant et supprimons ça. Et puis je vais faire défiler vers le bas ici. Et, d'ailleurs,
si vous le souhaitez, vous pouvez également dessiner le rayon d'attaque ici. Donc, dans le rayon d'attaque en colère, je ne vais pas le faire. Je ne pense pas que ce soit nécessaire. Je vais juste créer une nouvelle méthode ici pour l'attaque en colère. Et il y a une autre philosophie à cela, ou une autre façon assez, pas la philosophie, mais vous pouvez appeler la philosophie si vous voulez paraître fantaisiste, comme je le veux en ce moment, nous pouvons, au lieu de faire une autre méthode, nous pouvons en fait changer celle que nous avons ici, mais je pense qu'il est plus approprié de
créer une nouvelle méthode juste pour ne pas avoir de confusions. Tellement en colère contre la couche arrière. Et nous allons faire exactement la même chose. Donc ici, une autre chose que nous pouvons faire est
peut-être simplement de faire cette partie d' une variable générale juste nous n'avons pas de code redondant, mais nous allons simplement le copier, coller dans ici, et nous allons supprimer l'impression ici. Et ici. C'était uniquement à des fins de débogage. Je vous recommande toujours d'utiliser tout le journal des points de débogage. Et au lieu du montant des dégâts, nous allons utiliser le montant des dégâts en colère. Et au lieu du rayon d'attaque, du rayon d'attaque en colère, nous sauvegardons cela. Nous retournons dans notre jeu. Nous vérifions les animations du patron Skelly. L'attaque en colère, en colère, en colère. C'est donc le premier, la pente et les scènes. Nous attaquons avec colère et sur la balançoire. On y va. Ici, nous ajoutons un événement. Nous appelons l'attaque en colère. Et maintenant, nous nous balançons là-dessus juste ici. Nous ajoutons un autre événement et nous faisons du joueur d'attaque en colère. Alors, sauvegardez ça. Allons également au Syllabus du disque où Z. Faites défiler le rayon d'attaque en colère vers le bas, celui-ci était trois, ça fait 16. Dites que peut-être même si ce n'est pas très logique quand nous avons le sol, imaginez comme si nous avons une sorte de champ de force, je ne sais pas, peut-être un champ de force ou quelque chose comme ça. Je ne sais pas. Maintenant, nous sauvegardons tout cela. On dirige le jeu et on devrait voir que maintenant il se fâche et il ne fait absolument rien parce qu'il
y a quelque chose que nous avons oublié de faire. Si nous allons voir l'animateur, nous pouvons voir que la marche en colère n'a aucun comportement. Essayons donc d'ajouter la marche comme ça. Non, ça ne fonctionne pas sur le comportement. Et nous allons juste marcher le patron. On y va. Nous avons donc maintenant une portée d'attaque et nous allons l'agrandir un peu. Donc peut-être quatre, parce qu'il est plus grand et la vitesse devient quatre, disons ça, lancez le jeu. Et maintenant, nous devrions voir qu'il se fâche et maintenant il est plus rapide. Comme vous pouvez le voir, nous
y allons. C'est une attaque. C'est beaucoup plus rapide aux transactions, beaucoup plus de dégâts et il est un peu plus rapide. Peut-être qu'on le rendra encore plus rapide en ajoutant un 50. Oh non, non, non, non, bas. Vous. On y va. Comme vous pouvez le voir, quand le patron est en colère, il est vraiment en colère évidemment. Mais il y a un problème. Vous avez peut-être remarqué qu'il
n'était pas très difficile de ne pas remarquer que nous allons immédiatement
au steak angulaire et ce n'est pas quelque chose que nous voulons, mais c'est quelque chose que nous aurons plus de contrôle d'une fois, nous avons un système de santé pour notre patron, ce que nous ferons dans la prochaine vidéo. Assurez-vous donc de valider vos modifications et je vous verrai dans la prochaine.
92. Ajouter le système de santé de patrons: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous allons créer la couche, je veux dire que le patron subit des dégâts. Donc, lorsque nous lançons le jeu qui est mis sur Skelly, faites défiler vers le bas. Vous pouvez voir en ce moment qu'il a une santé maximale de patron et un bus actuel en santé. Donc je le devrais une fois que vous remarquerez qu'il aura quatre ans. Pourquoi est-il quatre ans ? Je veux dire, pourquoi s'énerve-t-il ? Parce qu'à mi-chemin de son aide, nous allons le mettre en colère. Alors quand sa santé mi-chemin, il se fâche. On lui tire encore une fois dessus. Nous devrions en déduire la dernière fois. Comme vous pouvez le voir, il meurt et il disparaît et la fin. Donc, ne perdons plus de temps et commençons. Oh, l'affaire. Il est donc temps d'ajouter une santé BRAF à notre patron. Allons de l'avant et commençons. La première chose que nous allons faire est passer de la marche en colère à la mort. Et nous allons aller de l'avant et créer ici un déclencheur appelé « die », et mettre les conditions ici pour mourir. Ensuite, nous allons faire défiler vers le bas. Et là où nous marchons pour nous fâcher, nous allons ajouter une condition et
la définir comme cas de déclenchement 0. Donc, avec cela, je pense que c'est tout ce que nous avons dû mettre en place avant de commencer. Je vais donc entrer dans le dossier du script de boss et cliquer avec le bouton droit de la souris et créer un nouveau script C Sharp appelé gestionnaire de santé du boss. Appuyez sur Entrée, attendez qu'il soit compilé. Et nous allons le traîner dans le patron de Kelly. Pourquoi le faisons-nous ici ? Eh bien, parce que mourir est ou le responsable de
la santé du patron ou toute la santé fait partie de l'ensemble du patron. Ce n'est pas spécifié à un seul État, comme nous l'avons dit, c'est pour tout le patron et ça va être assez simple. Tout d'abord, ici, je vais créer un champ sérialisé, qui sera un entier et le boss, santé
maximale, et il sera égal à 500. Ensuite, nous allons créer une santé publique actuelle. Et de toute évidence, nous allons changer cela plus tard. Donc, patron, santé actuelle, sauve ça. Et puis, et commencez. Nous allons juste dire que la santé actuelle des patrons est
égale à la santé maximale des patrons. Correct ? Nous devons donc maintenant créer une méthode qui
nous permette d'infliger des dégâts à notre patron. Pour cela, je vais vous le montrer comme un défi parce que nous l'avons déjà fait. Alors faites en sorte que le patron subisse des dégâts. Tout d'abord, vous devez créer la santé maximale de qualité variable et la santé actuelle. De toute évidence, je ne me suis pas préparé correctement parce que
je pensais que vous auriez dû le faire vous-même. Mais tu y vas. Un pas de plus pour moi pour vous. Continuons et commençons le mouvement actuel de santé extra intelligent par moi, puis créons une méthode qui permet au boss de subir des dégâts en fonction d'un paramètre. Enfin, quelque chose de nouveau à faire. Lorsque la santé est la moitié de la santé maximale, nous devons passer à l'animation mourante. Oups, je dis mourir. Je voulais dire, attendez la magie du montage. Hé, vous êtes le bienvenu. Créez donc une méthode qui permet au boss de subir des dommages lorsque la
santé est
en pleine transition vers l'animation en colère. Vous savez donc quoi faire lorsque le cœur est à 0,
passer à l'animation mourante et enfin les
détruire à l'aide d'un système événementiel. Donc, avec toutes ces informations, mettez en pause la vidéo dès maintenant. Ne commettez aucune erreur comme moi. Et allez-y et relevez le défi. Bon, bon retour. Comment avez-vous fait ça ? Ici, je vais créer un vide public. Les dégâts étaient un nombre entier, la quantité de dégâts. Tout cela est assez basique. Je crois que vous savez déjà comment tout faire. Donc, ici,
je vais dire que la santé actuelle des patrons est moins égale à la quantité de dégâts. Ensuite, je vais dire si la
santé actuelle des patrons est inférieure ou égale à, inférieure ou égale à la santé maximale du boss, bus, santé maximale divisée par deux. Cela signifie donc que nous sommes à mi-chemin dans sa santé. Ensuite, nous allons obtenir le composant, l'animateur. Et il peut parler. Merci. Et nous allons mettre le déclencheur. Et nous allons nous fâcher. Allons donc voir notre animateur et reprenons la colère ici. Collez-le ici. On y va. Maintenant, nous sommes en colère. Ensuite, nous allons aller de l'avant et dire, si la santé actuelle du patron est inférieure ou égale à 0, alors nous allons aller de l'avant et faire de même ici, mais au lieu de nous mettre en colère, nous allons mourir. Excellent. Donc, maintenant, nous allons créer une méthode pour mourir. Donc ici, je vais dire vide, détruire, détruire le patron. Et nous allons simplement aller de l'avant et détruire l'objet du jeu. Et où devrions-nous appeler cela ? Rendons celle-ci publique, juste au cas où nous pourrions y accéder depuis le système événementiel. Alors que le système événementiel, si je clique dessus, Kelly, on passe aux animations, on meurt. Qu'avons-nous ici ? Voyons, dans les scènes, on y va. Nous avons donc cette flaque d'ABA,
pas de sang osseux ou quelque chose comme ça. Et nous devrions rendre celle-ci un peu rouge évidemment. Et peut-être qu'à ce stade, il
suffit de le garder quelques secondes. Ensuite, nous allons ajouter un système événementiel. Ou peut-être que nous savons quoi. Passons à la deuxième deuxième place. Et ici, nous détruisons le patron. Donc, dans l'animation,
nous mourons, puis nous détruisons le patron. Excellent, sauvez tout ça. Voyons ce que nous avons d'autre ? Oh, donc évidemment, nous devons aussi déclencher des dégâts. Où appelle-t-on que le voyage subisse des dégâts ? Eh bien, si nous entrons dans la couche, prenez une balle. Si je l'ouvre et que je trouve le joueur, alors je dis « balle de santé du joueur ». Je parlais de la manette de balle du joueur. Ici. Nous allons vérifier si nous avons l'ennemi, puis nous allons endommager l'ennemi. Voyons voir, avons-nous une couche pour le patron ? Nous n'avons pas d'avocat pour le patron, alors allons-y et modifions les couches. Créez une couche de boss ou vous pouvez créer une balise de bossage. C'est également quelque chose que nous pouvons faire. Ou peut-être que nous avons une note de boss que nous n'avons pas l'obscurité d'Abel, alors allons-y et modifions. Créez des balises. Patron DAG. On y va. Maintenant, si nous entrons ici, maintenant, c'est l'exemple parfait pour
comprendre la différence entre une balise et une couche. Alors, rappelez-vous où. Ok, donc je ne me souviens même pas que dans les pics ici, je vous ai dit que nous pouvons éviter d' utiliser le lecteur de balises de comparaison. Nous pouvons immédiatement dire que
les pics sont une sorte de couche de dégâts, donc ils se trouvent sur le « Est-ce que nous avons quoi que ce soit, les ramassages ou quoi que ce soit, par
exemple, les sauvegardes ». Nous pouvons donc éviter d'utiliser la balise a pour la comparer au joueur, par exemple,
pour nous assurer que seule la couche la porte. Ainsi, seul le joueur peut interagir avec les micros à travers des calques. Nous n'avons pas besoin de vérifier la présence d' une étiquette comparée sur l'entrepreneur. Entrez. Rappelez-vous que j'en ai parlé, mais maintenant dans le contrôleur de balle, nous pouvons dire que la balle n'interagit qu'avec le patron, mais ce n'est pas suffisant car nous voulons également vérifier autrement. S'il y a une balise collision.com avec un boss, alors nous devons appeler un composant totalement différent ou totalement différent oui, composant. Donc, ici, voyons voir, c'est le programme. Oh, nous n'avons pas créé le calque de tri des balises. Non, non. Pourquoi devons-nous trier les couches pour le patron ? Le tag est tellement patron. Copiez ça. Maintenant, nous n'avons plus de
regrets, nous devons définir le tag boss. On y va. Nous sauvegardons cela. De retour dans notre jeu, nous cherchons le patron. Et si c'est le patron, alors nous allons aller de l'avant et obtenir la collision qui obtient le composant, le gestionnaire de santé du boss. Et à partir de là, nous allons subir des dégâts et ce sera la vitesse de la balle. Non, le montant des dégâts. Donc, le montant des dégâts, économisez ça. Maintenant, nous avons tout mis en place, donc je suis vraiment content que cela soit arrivé. C'est un moyen pour vous de faire la démonstration. Nous aurions pu dire que nous avons une couche de balles,
une couche de balle du joueur, et qu'elle interagit uniquement avec le boss et l'ennemi. Mais si nous frappons un ennemi, le boss n'est pas un ennemi. Il est aussi gestionnaire de santé patron. Nous devrons donc avoir accès à la santé et au patron. Si nous essayons d'utiliser celui-ci, cela ne fonctionnera pas. Cela provoquera une erreur si bien que la façon de sauvegarder cela, vous pouvez également copier ces deux lignes et nous pouvons les définir ici. Il s'agit donc évidemment d'un code redondant. Donc, ce que nous pouvons faire, c'est cliquer avec le bouton droit et ici des actions rapides refactoring et nous pouvons dire créer un effet sanguin, extraire la méthode, appeler cela instancier l'effet sanguin. Et j'écris correctement l'instanciation est Dan Shi Da. Oui, on y va. Appliquez les changements et ici nous allons instancier l'effet sanguin. Gardez ça. Maintenant, notre jeu ne devrait pas fonctionner parfaitement. Donc, si je clique sur ce calibre, faites défiler vers le bas et le patron Mac South, faisons-le 20. Non, non, pas 20, peut-être 40, juste pour que nous puissions voir les transitions correctement. Nous gérons le jeu. Maintenant, le patron arrive. On lui tire dessus une fois, et je ne veux pas
maximiser sur le jeu à nouveau. Qui devrait le patron ? Où Z ? Nous devrions donc le patron. Défilons vers le bas. Quelle est sa santé actuelle en matière de santé, les livres. Donc, une telle nouvelle balle. Et d'accord, donc cette erreur n'est pas non plus parce que le cristal a des dommages. Bon, donc je vais faire ça quatre au lieu de 40. Sachez quoi, faisons-le huit. Lancez le jeu. Le système est très pauvre, donc nous devrions tout de suite, nous
y allons, nous faisons défiler vers le bas, c'est à six heures. Nous devrions, euh, deux fois. On y va. On voit qu'il se fâche et maintenant il commence à courir beaucoup plus vite. On lui tire encore une fois dessus. Nous devrions le faire pour la dernière fois. Et on y va. Il va dans la bouteille et il meurt. Mais il y a quelque chose qui ne va pas, mais je ne l'ai pas fait, comme si vous ne l'aviez peut-être pas vu parce que je ne l'ai pas fait. Mais quand on lui tire dessus une fois, lui
tire deux fois, il se fâche. Je peux toujours lui tirer dessus. Et voilà. Vous pouvez voir qu'il se fait toujours tirer dessus et meurt immédiatement après sa transition vers la marche. Donc dans la vidéo suivante, nous allons nous assurer qu'il est invincible pendant qu'il se fâche. Et juste pour m'en souvenir, je vais ajouter un commentaire ici et faire,
vous savez quoi, c'est tout de suite juste. Si vous vous mettez en colère, cela ne devrait pas fonctionner. Et ce n'est qu'une démonstration de la façon dont vous pourriez
parfois vouloir ajouter quelque chose à l'avenir, juste pour ne pas l'oublier. Ajoutez un commentaire, assurez-vous qu'il fonctionne. J'espère que vous avez apprécié. Il s'agissait d'une très belle vidéo qu'elle considérait comme la leçon importante de la différence entre les balises et les calques, car parfois c'est difficile à expliquer, mais c'était l'endroit idéal pour l'apprendre. J'espère que ça vous plaira. J'espère que vous commettez vos changements et je vous verrai dans le prochain.
93. Ajouter la barre de santé de Boss: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, comme vous pouvez le voir, nous avons ajouté une petite image, nous avons ajouté un peu de texte et nous avons ajouté une grande barre de santé pour représenter la santé de notre patron. Alors maintenant, quand on dirige le jeu, quand le patron apparaît, on lui tire dessus. Vous pouvez voir que sa vie s'épuise. Quand on l'a encore tiré dessus, il est en colère. Et si on lui tire dessus alors qu'il est en colère, vous remarquerez qu'il ne peut subir aucun dommage. Et c'est un mécanicien de chaque boss et de chaque match. Alors je l'ai encore tiré dessus, je lui ai encore montré, le Health Bot disparaît, le patron meurt. Et ne perdons plus de temps avec une très longue vidéo, mais laissez-moi, c'est important, et c'est ce qui arrive lorsque nous créons vos yeux. Commençons donc. Ok, donc maintenant, tout fonctionne bien. Nous sommes en mesure d'endommager le patron. Nous sommes capables de le tuer, nous sommes capables de l'enlever, mais nous n'avons aucune idée de l'endroit où sa santé s'ajoute. Ce que nous allons faire, c'est que nous allons
créer une aide pour le patron. Je vais donc monter ici. Et dans cette vidéo,
je pense qu'il y a quelque chose que vous pouvez choisir vous-même. Il existe donc deux types de barres de santé que vous pouvez ajouter au boss. L'un d'entre eux sera, par exemple, si vous voulez que la barre de santé bouge
toujours avec le patron. Mais je pense personnellement que ce n'est pas la meilleure idée, car vous voudriez vos ennemis habituels aient que
vos ennemis habituels aient cette barre de santé au-dessus de leur tête. Donc peut-être qu'avoir une barre de santé de boss vaut mieux ressembler à Dark Souls, soit en bas, soit en haut. Et parce que nous avons déjà la santé, l'argent et les armes en bas à afficher pour le joueur. Ensuite, je vais le créer ici en haut. Je vais donc ouvrir le canevas de l'interface utilisateur. Je vais ouvrir la santé, je vais avoir le curseur santé. Et le, nous savons quelles coupures n'ont pas utilisé les effets sur la santé pour le patron. Je vais le dupliquer. Et je vais le déplacer à l'extérieur. Et je vais devoir ouvrir les préfabriqués et je vais devoir déplacer le, où est-il ? Santé, curseur et dehors juste ici. Regardez-le dans notre jeu. Maintenant, nous avons un curseur de santé 1, qui est également un I par accident. Retirez le curseur d'avoir réel oui. Brève ouverte. Je suis vraiment désolée pour ça. J'aurais dû déplacer l'autre curseur de santé. On y va donc. Celui-là est ici. Et puis je vais dupliquer celle-ci. Et je vais déplacer celui-ci en dehors de la toile. Et celui que nous avons plus grand qu'ici, nous pouvons simplement supprimer. Alors, où est le curseur santé ? On y va. C'est celui dont nous avons besoin. Voyons voir, remonter ça. Ce sera le patron. J'ai un curseur. On y va. Et je vais juste aller de l'avant et peut-être créer un objet
de jeu vide ici, le mettre à l'extérieur. Donc, le patron glisse, je connais ce jeu objet sur le campus. fausse santé. Et puis ajoutez le curseur du boss sous la santé du boss. C'est donc très ennuyeux chaque fois que vous avez un préfabriqué par nouveau envie de le changer, c'est extrêmement ennuyeux. Donc, même si je déplace celui-ci, je dois encore le changer ici. Donc la santé américaine, le
curseur, puis le canevas de l'interface utilisateur et l'objet de jeu vide, qui est la santé du boss. Alors que le patron l'a fait. Et déplacons le curseur vers le boss Health. Et définissons la position à 0, 0. Et on y va. Maintenant, nous avons le curseur Boss. Nous travaillons dans le préfabriqué. Par conséquent, ici, je veux aussi agrandir ça. Donc, si je zoome et voyons ce que nous avons ici. Agrandissez ça sur le côté. Rendez cela plus grand sur le site. Également. Déplacez-le un peu vers le haut. Et je vais juste aller de l'avant. Et si vous le souhaitez, vous pouvez aller de l'avant et le faire vous-même. Remplissez tout. Voyons tous les petits ajustements. Cela prendra un peu très bien
quand vous l' êtes, je pense que vous l'êtes. C'est pourquoi les vidéos où nous vous trouvons sont plus longues que d'habitude. On y va donc. Je pense que c'est suffisant. Oui, ça me semble bien. Enfin, je veux ajouter un peu d'image. Je vais donc entrer dans l'image de l'interface utilisateur. Et cette image aura l'image du boss. Et nous pouvons également ajouter ici le nom du patron. Je vais donc ajouter une sonde textuelle Mesh. Et ce sera Kelly. Rendez-le audacieux, faites-le au milieu. Rendez-le audacieux, faites-en un robot. Et non, non, non. Et nous allons peut-être le déplacer. Vous êtes en dessous ou plus. Ça n'a pas d'importance. Choisissez votre propre façon de créer cela. Je vais faire de la taille automatique. Et on y va. Donc Kelly, on y va, Skelly et ici l'image représentera le patron. Je vais donc trouver dans les sprites,
le z, alors que ces barres de bonbons, on y va. Ainsi, l'image, Skelly et native sont réglés sur la taille native. Préservons le rapport hauteur/largeur. Et faisons en sorte que cela paraisse beaucoup, beaucoup plus petit. Et peut-être le mettre ici et savoir quoi, peut-être que ce n'est pas la meilleure façon de le faire. Peut-être que vous pouvez simplement garder la tête pour savoir quoi, laissez-moi simplement supprimer ceci ou attendre une seconde et je vais éditer cette photo. Bon, bon retour. Tout ce que j'ai fait, c'est juste éditer cette photo et vous l'aurez probablement dans vos ressources. Je vais donc l'ajouter ici. Et l'image du bus sera celle du squelette. On y va donc. Maintenant, nous avons ceci. Je sais que ce n'est pas grand chose, ça n'améliore pas vraiment le jeu, mais ça ajoute juste un peu de finance. Vous savez donc que cette barre de santé appartient
au patron de Skelly et que vous avez une petite image de sa tête. Nous avons donc maintenant une bonne représentation. Donc maintenant, si je reviens du préfabriqué et pour une raison quelconque, ce n'est pas à sa place. Nous avons la santé du patron. Supprimons simplement cela. Gardez ces deux points de santé. Et pour une raison quelconque, il n'était pas à sa place. Je vais passer Slider et définir la position 0, 0. Et maintenant, nous l'avons correctement. Et ajustons un peu la position. Et on y va. Maintenant, nous avons les deux. Santé habilement. Déplacons-le un peu vers la gauche. Et je pense que c'est plutôt bon en ce moment. C'est donc l'aide que nous pouvons voir sur le patron si vous le souhaitez. Nous pouvons également modifier l'image du remplissage. Je ne veux donc pas qu'il soit rouge. Je veux peut-être l'avoir dans les sprites. Voyons voir. Vous avez l'œil. Vous êtes vous, vous êtes des éléments de moi. Je faisais pression sur l'UE, mais je ne l'ai pas compris. Ok, donc je vais entrer dans les éléments de l'interface utilisateur et obtenir le bleu. Nous allons donc utiliser le bleu. Image. Le bleu, non, non, non, non, pas celui-là. Zone de remplissage. Remplissez le curseur bleu. D'accord. Maintenant, nous avons le curseur bleu qui se déplace de haut en bas. Et comme je l'ai dit, toute cette section ou toute cette vidéo, vous devez faire vos propres recherches. Vous devez créer votre propre interface utilisateur et vous devez faire
les choses comme vous le souhaitez . Oh, d'accord. Je pense donc que c'est suffisant. Je ne sais pas si c'est suffisant. Et il y a un peu les bords ne sont pas très lisses, mais pas de soucis à ce sujet tant que cela représente correctement les choses. Nous avons donc maintenant la santé. La prochaine chose que nous devons faire est d'avoir le contrôle. Je vais donc aller dans la santé des patrons, je vais aller dans le scénario. Et dans l'interface utilisateur ou nano en fait dans le boss. On y va. Cliquez avec le bouton droit sur Créer un script C-sharp, et il s'agit de la barre de santé du boss à Entrée. Attendez qu'il soit compilé. Et chaque jour, nous avons le patron impuissant de l'ajouter à la santé du patron ici qui a ouvert la barre de santé du patron. Et que doit-on avoir ici ? Bien sûr, nous voulons une référence au curseur. Donc, curseur de champ sérialisé, nous avons besoin d'un moteur d'interface utilisateur, Unity engine dot u i. Donc maintenant nous pouvons avoir le curseur, puis nous avons le curseur de santé du boss défini ici. Donc, la première chose que nous faisons dès que nous commençons, car nous devons définir la valeur maximale, évidemment. Ainsi, le boss a valeur maximale du point de
curseur est égale à trouver des objets de type. Et ce sera le responsable de la santé du patron. Et de la part du responsable de la santé du patron, nous devons obtenir la santé maximale. Nous allons donc aller voir le responsable de la santé du patron. Et ici, créez une petite méthode qui va être un int public. Obtenez une santé maximale ou obtenez la santé maximale du patron. Ouvrez les crochets, retournez Max, avez. Nous allons sauver ça. De retour ici. Obtenez le patron, Max, la santé. Nous sauvegardons cela. Maintenant, nous allons glisser dans la mise à jour, faire glisser car nous utilisons un curseur ou la fréquence d'attente d'un curseur. Donc, une mise à jour que nous allons tout le temps obtenir la perte de hub a valeur de point de
curseur et il va être égal à trouver des objets de type, gestionnaire de
santé, de boss, de gestionnaire de santé. Et nous allons prendre le courant. Je vais donc dupliquer celle-ci. Obtenez le boss, la santé actuelle, la santé
actuelle, sauvegardez ça. s'agit donc que d'une méthode de retour d'entier. Rien de trop compliqué. Donc, obtenez la santé actuelle du patron tout le temps. Et maintenant, allons de l'avant et assignons le curseur. Alors ouvrez ça. Le curseur et le travail sont le curseur. Celui-ci est les curseurs qui sauvegardent tout ça. Faisons un peu plus grand, lançons le jeu. Donc maintenant, nous devrions voir le curseur de santé déplacer les ennemis pour que vous lui tiriez dessus. On y va. Donc comme vous pouvez le voir, sa santé diminue et il se fâche juste à mi-chemin de notre jeu. Enfin, quand on les tire pour la dernière fois, il meurt. Mais nous avons toujours cette écorce de santé. Et non seulement cela, nous avons cette petite erreur qui apparaît ici, en
fait pas une petite erreur, une erreur constante. Je vais donc l'effondrer. Double-cliquez ici pour voir quel est le problème. Recherchez des objets de type. Il s'agit donc d'une référence nulle. référence nulle signifie que nous
essayons d'obtenir une référence à quelque chose qui n'existe pas ou que le retour ne l'est pas. Ici, nous avons le responsable de la santé du patron. Et évidemment, quand nous mourrons, nous détruisons le patron. Et quand nous détruisons le patron, le responsable de la santé du patron vise William. Nous devons donc trouver une solution à cela, et cela va être votre défi. Votre défi consiste à retirer la barre de santé et à rendre le patron invincible. Votre défi n'est peut-être pas de corriger l'erreur. Quoi qu'il en soit, voyons ce que nous avons ici. Tout d'abord, lorsque le boss meurt, assurez-vous que la barre de santé est supprimée et arrêtez l'erreur. Vous devrez évidemment supprimer la barre de santé et supprimer l'image et l'image. Nous n'avons donc plus besoin d'
appeler cela à chaque fois. Ensuite, vous devrez vous assurer que lorsque le bus entrera dans l'état de colère, nous voulons le rendre invincible. Alors quand il se fâche, on ne veut pas pouvoir le tirer dessus. Tout d'abord, ce n'est pas juste pour le patron parce qu'il ne peut pas nous
attaquer ou bouger quand il se met en colère. Deuxièmement, parce que dans chaque match où un patron passe à la deuxième phase, vous ne pouvez pas le frapper. C'est quelque chose de standard et tous les jeux. Je vais donc vous donner un indice la façon de faire la dernière partie. Vous devrez ajouter un comportement à l'état de colère. Et comme je vous l'ai dit, nous devons résoudre le problème de l'erreur. Bien que, de toute évidence, lorsque nous désactivons réellement le demi-aboiement aux appels pour
les joueurs n'ont plus tenu le gestionnaire de santé des boss, donc nous n'avons plus la flèche. Donc, avec ces informations, mettez en pause la vidéo dès maintenant et relancez le défi. Bon, bon, bon retour. La première chose que nous allons faire est que nous allons entrer dans la mise à jour et ici. Et nous allons vérifier si la valeur du point du curseur de santé du boss est inférieure ou égale à 0, ce qui signifie que nous allons
détruire tout l'objet du jeu. Maintenant, nous n'avons pas à détruire l'objet du jeu. Nous pouvons peut-être définir l'objet de jeu sur actif, faux ou le définir sur inactif. Mais je vais juste le détruire juste nous assurer que nous n'avons plus rien. Alors, sauvegardez ça. Ensuite, nous allons aller voir le responsable de la santé du patron. Et ici, nous allons créer une variable. Et cette variable va être un livre public et est invincible. Et ça va être fausse
au début ou tu sais quoi ? Ne le rendons pas public. Faisons en sorte que ça soit privé. Et nous allons créer
ici une méthode qui sera publique,
int ou non, en fait, désolé, nulle. Set. Le patron. Même subtil. Et il va prendre en compte un paramètre booléen. Et ce sera Skelly ou normal,
ce n'est pas un patron dans un symbole donné. Et puis ici, nous allons dire que c'est invincible est égal à, c'est le patron invincible. Gardez ça. Et ici, avant de subir des dégâts, comme vous pouvez le voir, nous avons le commentaire si nous nous fâchons, cela ne devrait pas fonctionner. Nous allons donc dire que si c'est invincible, alors nous allons aider, alors nous allons juste revenir. Donc, le retour signifie. Lorsque nous revenons, tout comme nous avons les valeurs de retour et ici, une fois que nous arrivons au retour, toute
cette méthode s'arrête. Donc, n'importe quoi sous cette ligne de code. Donc ici, tout ce que nous écrivons
ne sera pas enregistré après le retour. Et c'est exactement ce que nous faisons ici. Donc, quand on subit des dégâts ici, on vérifie s'il est invincible. Nous ouvrons celui-là. Désolé. Nous entrons dans la condition, nous exécutons le retour et aucune de ces lignes n'est exécutée. Nous retournons donc une valeur, et comme il s'agit d'un vide, nous pouvons renvoyer n'importe quoi. S'il s'agissait d'un entier, non d'un vide, nous pourrions simplement renvoyer 0. Je vais donc supprimer ça. Je vais sauver tout ça. Et maintenant, comment allons-nous réellement
définir l'invincible ? Je vais y retourner. Je l'ai fait courir. Et sortons ça. Tout d'abord, le Health Bar. Shruti devrait donc être le Shruti. On y va sûrement. Et quand il aura terminé cette animation, il mourra. Et vous pouvez constater que nous n'avons plus barre
de santé et que nous n'avons plus d'erreurs. Excellent. Maintenant, la prochaine chose à faire est d'entrer dans l'animateur et de se mettre en colère. Et pourquoi cela ne devient-il pas plus petit ? Bon, donc au final, mettez-vous en colère, nous allons ajouter un comportement. On va appeler ça le patron, souligner, se fâcher. Nouveau script, créez une annonce. Et évidemment, il sera créé dans les actifs ici, le patron se fâche. Je vais le déplacer dans
le dossier Boss des scripts
pour le fichier ou comme vous voulez l'appeler. était ainsi, on y va. Donc, les deux se fâchent. Ouvrez celui-ci. Comme nous pouvons le constater, nous n'aurons pas besoin des deux derniers. Et ceux-ci seront contrôlés KU. Touche de contrôle, vous pouvez contrôler KU. Alors, ici, que devrions-nous faire ? Où devrions-nous nous assurer que le patron est invincible ou le mettre en place ? Eh bien, je crois que nous devrions tout d'abord mettre en place lorsque nous entrons dans l'État. Je vais donc accéder au composant Animator. Nous avons donc maintenant accès au responsable de la santé du patron. Et ici, nous allons définir l'invincibilité du patron à vrai. Et quand nous quitterons, je vais dupliquer cette ligne et la déplacer vers le bas. Et quand nous quittons l'État, nous
pourrons encore être frappés. Comme vous pouvez le constater, ici même, nous avons créé le boss de set invincible. Nous avons un paramètre que nous devons envoyer. Nous y accédons en utilisant le composant du gestionnaire de santé du boss, qui est également présent avec l'animateur. Nous avons donc les deux composants sur le même objet de jeu. C'est pourquoi nous pouvons accéder à l'animateur, obtenir un composant qui est le demi Handler a dit le patron invincibilité à vrai. Et ici, quand nous avons dit qu'il est invincible à quel que soit le patron, invincible quel que soit le paramètre. Si c'est vrai, il revient. Si c'est faux, nous ne reviendrons pas. Le patron subit des dégâts. Nous sauvegardons cela. Nous retournons dans notre jeu. Qui l'étaient. Donc, ici, on dirige le jeu. Nous devrions prendre le bus une fois, deux fois. Et vous pouvez voir ici que même s'il est en colère, il ne s'abîme pas. Je l'ai donc tué trois à quatre fois. Il ne s'abîme pas. Enfin, je l'ai abattu, il meurt. Et on y va. Nous n'aurions aucune erreur à l'exception de celle-ci, qui est que je crois quelque chose qui ne nous préoccupe pas, quelque chose au sujet du panel. Nous avons cette bonne heure. Nous allons donc sortir, nous allons nous assurer de mettre en scène tous nos fichiers et maintenant créer une barre de santé. J'espère que vous avez apprécié, excusez-moi pour la longue vidéo, mais c'est ce qui se passe lorsque nous créons une interface utilisateur. Tout dépend de vos préférences, apparence de votre jeu. Et je vous verrai dans la prochaine vidéo. Et je crois que la dernière vidéo où nous allons faire tourner
le patron au bout d'un certain temps. Alors, à ce moment-là.
94. Ajouter la possibilité de prendre la photo: Bienvenue, mes collègues développeurs de jeux. Je sais qu'à ce stade, vous dites probablement Michael, chaque vidéo que vous dites est la plus longue vidéo, mais ce sera la vidéo la plus longue. J'espère que ça vous excite ou non. Je ne sais pas, mais cette vidéo nécessitera beaucoup de réglages. J'ai commis quelques erreurs
, puis je les ai corrigées sur place devant vous. Vous savez donc toujours que je suis transparent autant que possible, donc je ne vais plus perdre votre temps. Nous allons commencer. Bon, maintenant, nous avons un bar de santé. Nous avons la santé, nous avons principalement des attaques, nous avons la marche, nous avons une machine d'état, nous avons tout pour notre patron, mais nous devons aussi ajouter un peu de colère et de support ou de tir. Allons-y et faisons-le. La première chose que nous devons faire est de
créer des points à partir desquels notre patron va tirer. Et je vais zoomer sur le patron. Et la façon dont le tir va fonctionner, c'est que nous allons avoir huit points autour du patron. Quatre seront le tir normal, et huit seront pour la fusillade en colère. Quand il se fâche, il tire plus. C'est logique. Allons-y et faisons-le. Cliquez ici avec le bouton droit de la souris pour créer des points de tir vides. Et ici, je vais créer le premier, qui sera de 0,1. Et allons-y et déplacons-le ici ou juste ici à sa droite. Dupliquez celui-ci. Et évidemment, ce ne sera pas très pratique. Je vais donc appeler ça. Donc 0.1.2, je vais le mettre sur la tête. 0,3, déplacez-le ici. Et 0,4, déplacez-le ici. Maintenant, quand nous allons créer notre tir ou la balle de mousse, elle se déplacera dans la direction des balles, n'est-ce pas ? Nous devrons donc faire pivoter tous ces éléments et plus tard, mais pour l'instant, il suffit de dupliquer les quatre. Mettez-le ici. Peut-être presque à ce stade. Et là encore, 678. On y va donc. Nous avons maintenant huit points autour de notre patron. Maintenant, la prochaine chose que nous devons faire, c'est d'
aller de l'avant et de créer des liens ici. Ainsi, de la marche, de la transition vers la prise et de toute transition de la prise de vue à la marche. Et nous allons ajouter un déclencheur ici, ce qui sera le tournage. Et ensuite, ici, nous allons faire de même. Faites donc la transition, peut-être la transition. Nous n'avons pas de temps de sortie. Et oui, conservez la durée de la transition telle qu'elle l'a fait. Ne vous inquiétez pas à ce sujet. C'est ici qu'il n'y a pas non plus d'heure de sortie, durée de
transition, d'heure. Nous avons donc oublié d'ajouter une condition ici. La condition est donc qu'ils devraient se déclencher. Et ici, la condition est la gâchette oh, tir. Et puis en revenant en arrière, je crois que nous n'avons pas besoin d'une heure de sortie. Et ici aussi, je crois que nous n'aurons pas de temps de sortie, mais nous voudrons jouer toute
l'animation, puis revenir en arrière. Ou peut-être verrons-nous,
nous verrons ce qui se passe lorsque nous
créerons le gain, ce dont nous aurons besoin. Maintenant, la prochaine étape évidente consiste à créer la balle des bus. Je vais donc cliquer avec le bouton droit de la souris dans le dossier Boss. Et ici, je vais créer le patron. Balle. Les balles ont touché Entrée. Attendez que le script soit compilé. Double-cliquez et ouvrons-le. Et qu'allons-nous faire ici pendant que nous allons faire l'évidence ? La première chose, c'est que nous serons évidemment un flotteur pour la vitesse. Ensuite, nous allons avoir un vecteur privé 2 ou un vecteur 3 pour la direction de la balle. Ensuite, nous aurons 14 dégâts thalamiques. Il doit s'agir d'un entier. Ok, super. Maintenant, au début, nous allons définir la direction de la balle et ce sera la direction du sang
égale au point de transformation, non ? Donc, juste, si nous regardons ici, l'axe rouge sur la transformation, si nous montons. Je l'ai peut-être fait trop vite. Ainsi, l'axe rouge de la transformation et de l'espace mondial. Revenons donc sur la scène. Et remarquez que celui-ci, c'est l'axe rouge. Par exemple, la balle jusqu'à la balle volera vers la droite. Donc, ce que nous devrons faire comme il faut le faire pivoter comme
ça, je crois. Donc. On y va. Nous pouvons voir que nous l'avons réglé à 90 degrés. Donc le troisième à 180 degrés a dit le point en bas à peut-être 90 degrés ? Non, non, pas 90 degrés moins 90 degrés. Et nous avons ce point ici. Que devrions-nous le définir ? Voyons voir. Donc, si vous n'êtes pas bon chemin, c'est parfait. On y va. Donc, 45, je crois. Oui, 45, c'est bon pour les six. Cela devrait être moins 45. On y va. Allons le changer. Mais pour que vous puissiez jouer, vous pouvez faire ce que vous voulez et comme vous le souhaitez. Si vous le souhaitez, vous pouvez définir toutes les positions de prise de vue dans une direction. Peut-être comme ça, comme ça. Oui, bien sûr. Pourquoi pas ? On y va donc. Il devrait donc s'agir d'un 135. Et pourquoi est-ce 135 ? Eh bien, parce que j'ai ajouté 90 degrés, puis j'ai ajouté un 45. C'est cent, dix cents se poursuivent. Nous avons maintenant un angle parfait et ce serait 135. Oui, on y va. Nous avons donc maintenant très bons points d'outillage de la part de notre patron. Nous allons donc sauver ça. Nous allons réduire la situation. Et maintenant, nous allons revenir dans notre script et voir ce que nous devons faire ici, une mise à jour. Je vais aller de l'avant et obtenir la position du point de transformation et plus égale la direction de la balle à la vitesse. Et évidemment le temps. DeltaTime. On y va. Time.DeltaTime s'assure donc que même si cela est appelé chaque image, nous la détachons en utilisant Time.DeltaTime. La prochaine chose que nous allons faire, nous allons vérifier si nous n'avons pas le patron dans notre hiérarchie. Donc, si l'instance du
contrôleur de boss doit avoir une instance, nous n'avons pas d'instance, nous allons
donc aller de l'avant et trouver la plupart des objets de type. Ou peut-être devrions-nous créer une instance. Je pense que c'est mieux, ou on peut faire référence au patron, ce qui est également une bonne idée. Mais tu sais quoi ? Trouvons juste le patron et le monde entier. Très bien. Objet de type, contrôleur de boss. Et s'il est actif et objet de jeu et est actif, actif dans la hiérarchie. Donc, s'il n'est pas actif dans la hiérarchie
, nous voulons détruire toutes les balles qui volent déjà. Détruisez les objets du jeu. Donc le bolus est détruit une fois le patron mort, nous ne voulons pas que les balles gardent le client. Ou si vous le souhaitez, nous pouvons
faire voler les balles dans le monde entier. Cela dépend de vos préférences. La prochaine chose que nous voulons faire est de
gérer la façon dont les balles interagiront avec le monde. Et de toute évidence, nous n'avons pas encore créé les balles. Mais je suis presque certain qu'à ce stade vous savez déjà et que vous en avez toutes les connaissances. Je vais donc créer une entrée d'entrepreneur dans le centre des entrepreneurs
et à l' intérieur de ce centre d'entrepreneurs. Je vais dire que
je voulais
vérifier l'étiquette du joueur, dire que
je voulais mais comme nous le savons, nous allons déjà nous assurer que les balles n'entrent en
collision qu' avec un joueur et rien d'autre. Donc, le point de collision obtient un composant. Et nous allons vérifier l'état de santé du joueur. Et nous allons infliger des dégâts ou des dégâts au joueur. Et dans ce joueur de dégâts, nous allons faire des
dégâts par balle centrés sur les dégâts de balle que nous n'avons pas ici, nous pouvons double-cliquer et nous
assurer que c'est ce que nous travaillons. Et alors, que devrions-nous faire ? Je crois que nous devrions détruire l'objet du jeu. Mais le problème ici que je n'aime pas c'est que si nous touchons autre chose, il n'interagira pas avec elle. Le bateau continuera donc à voler pour toujours. Encore une fois, nous devrons vérifier la présence de la collision. Donc, si collision.com a associé la balise et que c'est la couche, et nous allons le faire. Et chaque fois que nous n'avons qu'
une seule ligne de code dans cette condition, nous pouvons éviter d'utiliser les deux lignes tordues. Et pourquoi ai-je choisi à nouveau de créer l'étiquette et de ne pas simplement la garder telle qu'elle était parce que la balle s'envole. Nous voulions frapper un mur pour être détruit de toute façon, parce que nous ne voulons pas que la balle
continue toujours à voler dans le monde et qu'elle ait beaucoup de balles et la hiérarchie qui va simplement prendre de la
place et entraver la performance de notre machine. Alors, enfin, que devrions-nous faire d'autre ? Je crois que c'est tout, et je crois que c'est tout. Allons donc créer notre balle. Alors, où sont nos balles dans le préfabriqué ? Nous avons des balles, nous avons une balle AMI ou non, nous ne voulons pas reproduire les balles ennemies. Allons-y, tu sais, j'y vais. Joueur de poulettes et fusil, fusil de tir. Allez-y et dupliquons le fusil de chasse appelé S1, la balle du boss à Enter. Et voyons ce que nous
utiliserons ici pour voir les sprites. Nous pouvons en utiliser l'un et peut-être utiliser le gros, énorme rouge. Oui, bien sûr. Pourquoi pas ? Prenons l'énorme rouge. Voyons à quoi cela ressemble dans le monde. De retour dans le préfabriqué Boss ? Ou préférerait-il un joueur de balles ? Déplacons-le vers l'extérieur. Ici, nous avons la balle du patron. Mettons-le dans la scène. On y va. C'est ça. Que devrions-nous faire ? Les balles, bien sûr, c'est sur la couche des balles. Voyons ce que nous avons d'autre ? Que ferons-nous ici ? Je pense que la balle est juste un peu plus petite. Echelle 1 sur le x également. Et au lieu d'avoir moins de changement, peut-être le collisionneur, comment ? Parce que le collisionneur n'est pas, c'est parfait. Voyons les dégâts causés par la balle du joueur. Évidemment, nous allons supprimer le composant et nous allons ajouter le nôtre, qui est le contrôleur de balle Boss. On y va. Maintenant, nous avons le contrôleur de balle du boss, le montant des dégâts, le point d'attaque. Notez qu'il s'agit d'un contrôle de boss ou non. Je me demandais quoi, qu' est-ce qui ne va pas avec cette balle de boss ? Des balles de boss. On y va. Donc maintenant, nous avons une vitesse qui devrait ressembler à cinq animaux, les dégâts causés par les balles seront, peut sauver cela. Et lorsque nous créons un nouveau préfabriqué, ne vous inquiétez pas, celui-ci sera supprimé ou nous pouvons simplement appliquer les modifications à la puce Boss. Donc, dans notre possibilité ici, si nous faisons défiler vers le bas et que nous choisissons celui-ci en fait le patron, mais vous pouvez tout appliquer. Et maintenant, la balle fonctionne régulièrement. Je suppose que c'est une balle assez bonne pour nous. Je vais donc supprimer la balle du boss. Nous l'avons maintenant dans notre hiérarchie. Nous avons le script, nous avons le collisionneur, nous avons un corps rigide qui est important, ce qui sauve tout cela. Et voyons ce que nous devons faire d'autre ? Eh bien, nous vous lancerons un défi. Et votre défi est de faire tirer le boss. Donc, tout d'abord, créez une référence
aux points de tir et aux points de tir en colère. Vous devrez donc créer deux références ici. Et tout cela va évidemment se produire. Et le contrôleur du boss, vous devrez
alors obtenir une référence à la balle du boss. Évidemment, vous devrez créer une méthode qui parcourt tous les points à l'aide d'une boucle foreach et instancier les puces. Ensuite, vous devrez créer une autre méthode pour le tir en colère. Et vous devrez utiliser les événements pour appeler les méthodes et les animations afin que les informations, mettre en pause la vidéo dès maintenant, tout cela devra être fait et le contrôleur du boss et relever le défi. Oh, d'accord, bon retour. Alors, où sommes-nous
patron, contrôleur de boss ici, nous allons
créer un champ sérialisé de la forme trans. Il s'agira évidemment d'un tableau pour les points de tir. Ensuite, nous allons créer un champ sérialisé pour la transformation, ainsi que les points de tir en colère. Ensuite, nous allons créer un champ sérialisé pour l'objet de jeu, qui est la balle du boss. Et j'espère que vous avez relevé le défi. J'espère que ce n'était pas trop dur à ce stade, vous devriez être assez bien au courant de tout ce que nous faisons. Donc, rien n'est vraiment connu. C'est pourquoi je suis en train de passer en revue la motion et de tout faire très vite, sans expliquer. Je suis donc presque sûr que vous connaissez déjà la plupart des choses que nous avons faites ici. Continuons. Que devons-nous faire d'autre ? Eh bien, nous devons créer la méthode que nous voulons. Donc ici, sous l'attaquant angulaire, je vais créer un joueur de tir public vide. Et ici, je vais créer une boucle pour chaque boucle, ou une boucle pour chaque boucle qui traversera tout le point transformé. Et un tireur. Quoi ? Je tire des points. Dans les points de tir. Et ici, nous allons instancier la puce du boss sur la rotation de la transformation de
la transformation de la position du point de transformation. Nous devons donc nous assurer que nous avons la même rotation que celle du point de tir réel qui est en cours d'instanciation. Ensuite, nous devrons créer un vide public. Une fusillade en colère. Laissez-moi juste copier celui-ci et ajouter en colère aussi. Il ajoute toujours la colère, la colère. Et je sais que cette vidéo est longue. Je voulais les séparer en deux vidéos. Un pour le Bâle à 14 ans, le tournage régulier. Mais en fait, je
pensais juste que ça ne sert à rien de créer un postulat. C'est très simple, nous l'avons déjà fait. J'ai donc voulu créer deux vidéos en même temps. points de tir tellement en colère. On y va. Nous sauvegardons cela. Maintenant, vous pouvez ajouter un mécanicien supplémentaire et je vous recommande de le faire. C'est assez simple. Au lieu d'avoir ces points de tir et ces points de tir en colère, vous pouvez simplement créer un énorme ou un gros, seulement les points de tir en colère. Et lorsque nous filmons régulièrement au lieu d'un pour chacun, vous pouvez créer une boucle for, passer par des points aléatoires et en instancier des puces. Ce sera peut-être un bon mécanicien de jeu. Je ne sais pas si vous voulez le faire. Allez-y, soyez mon invité et longtemps. Et je ne l'ai pas fait parce que je veux vraiment avoir la direction b et ces quatre, ou vous pouvez le faire, peu importe. C'est votre jeu à vos propres affaires. Donc, dans le programme, je vais faire défiler vers le bas. Et où en avons-nous ? Ok, donc les points de tir, ouvrez ça. C'est moi. Il suffit de verrouiller la balance vers le bas, de
choisir les quatre premiers. Et ce sont les points de tir habituels et tout
le reste, c'est les points de tir en colère. C'est la balle du boss. Et sauvegardez ça. Et enfin, il faut aller voir les animations du tournage. Alors, le tir, où devrions-nous tirer ? Voyons voir, et peut-être ici. À ce poste, nous ajoutons un événement. Débloquons ça. Ce que nous faisons, joueur de tir. Ensuite, nous devenons plus petits, plus grands. Peut-être qu'à ce moment-là encore, nous avons eu un événement qui devrait jouer. Et puis on y retourne peut-être une dernière fois, et ici on tire sur le joueur. Nous devrions donc jouer trois fois. Super. Alors, sauvegardez ça. Maintenant, dans notre fusillade de colère, si en colère, on devient plus gros. Nous devrions avoir plus de coups ici. Tellement un joueur de tir en colère, devenir plus grand, plus petit, plus grand. Pourquoi ne pas devenir plus gros ? Et sur ce point, je ne sais pas, mais évidemment nous avons commis une petite erreur ici, mais pas de soucis. Faisons en sorte que ce joueur de tir angulaire soit plus grand, plus petit. Et d'autres événements. Joueur de tir angulaire plus grand, plus petit. Je pense qu'à ce stade, c'est bien. Ne vous inquiétez pas de l'animation. Nous ne l'avons pas rendu parfait. Joueur de tir en colère. Nous sauvegardons tout cela. Maintenant, nous avons tout mis en place. La dernière chose que nous devons faire, c'est que nous devons vraiment nous lancer dans cette fusillade. Et comment voulons-nous avoir ce mécanicien ? Bien que je pense que c'est la meilleure façon de le faire. Comme disons les patrons qui marchent,
marchent , marchent, il n'arrive pas à se rendre au joueur. Le joueur continue de s'enfuir. Et après un certain temps, il commence juste à tirer sur le joueur. Donc, c'est exactement ce que nous allons faire. Je vais ouvrir la marche du patron. Et ici, je vais créer un compte à rebours ou une sorte de compteur de choc. Et pourquoi devons-nous créer un compteur de tir ? Eh bien, pourquoi pas un comportement mono ? Eh bien, parce que lorsque vous êtes dans un état de comportement de machine, vous n'avez pas de co-routine. Je voulais dire pourquoi ne pouvons-nous pas créer toute une routine ? Vous pouvez créer un appel à l'intérieur, car il ne s'agit pas d'un comportement mono, nous ne pouvons créer que l'égalité et le côté d'un comportement mono. C'est pourquoi ici, je vais créer un comptoir de tir privé et un champ sérialisé pour la séance photo. Je sauve ça. Et puis je vais passer à la mise à jour sur l'état. Et ici, je vais dire que le temps devrait être moins égal, moins égal au temps, point fixe delta temps. C'était le problème ici. Également. Moins égal, pas égal moins, désolé. Et puis ici, je vais dire que si le temps du spectacle est inférieur ou égal à 0, alors nous allons aller de l'avant dans le déclencheur de l'animateur et copier le shoot trucker. Copier cela devrait déclencher, le
mettre ici, fermer cela, enregistrer tout cela. Je crois que nous avons besoin d'un moyen de revenir en arrière. Donc, ici, nous avons besoin d'un moyen de revenir en arrière. Nous allons donc ajouter une heure de sortie. Et nous veillerons à ce que
l'animation soit diffusée à 97 %. Voyons donc à quoi cela ressemble dans l'aperçu. Et on y va. Nous pouvons voir que nous jouons, nous devrions, nous devrions nous émettre et ensuite retourner à la marche. Ok, je pense que c'est assez bien. Et ici, nous aurons également un temps
de sortie à 97 %. Je l'ai déjà. Je pense que lors de la sortie sur l'état, nous devrons également réinitialiser le tournage. Alors, sauvegardez ça. Et je pense que c'est tout. Je pense que c'est tout ce que nous devons faire. Voyons donc voir. Dans The Walking in here, quel est le court laps de temps ? Peut-être après deux secondes de marche. Et si nous allons à la marche en colère, après quoi, peut-être après trois secondes de marche. Il ne s'agit donc que de chiffres arbitraires. Je n'ai pas pensé à savoir si c'est bon ou non. Je vais donc agrandir ça. Et comme vous pouvez le constater, il y a quelque chose qui ne va pas. Tout d'abord, nous avons ici une balle qui n'est pas bonne. Alors, où est-il, où est-il ? Alors que les scènes, cette balle qui va aider, fermons Dui. Que fait
cette balle ici ? Je n'ai aucune idée. Pourquoi ne puis-je pas choisir, hé, bienvenue. Donc, pour une raison quelconque, je ne peux pas trouver ce que c'est. Ne nous inquiétons pas à ce sujet. Ce qui nous préoccupe, c'est de changer la couche de balles en balle ennemie. Gardez ça. Et maintenant, voyons à quoi cela ressemble. Quand la balle
nous tire dessus , on ne trouve vraiment pas ce que c'est. Alors il se promène, il commence à tirer et c'est très mauvais. Ok, super. Il est donc évident que quelque chose ne fonctionne pas correctement. Bonjour, bon retour. est une erreur énorme que j'ai commise. Au lieu d'utiliser la transformation de cette position, je n'aurais pas dû utiliser le point qui se trouve ici. Et le point qui est juste ici. Désolé pour ça. C'est très mauvais, non, ça n'a pas l'air bien. Mais on y va. Maintenant, nous avons résolu tous les problèmes. Cela devrait fonctionner maintenant. Donc, dans notre jeu, nous devrions voir que maintenant, quand le patron tire, on y va. 123. Mais pour une raison quelconque la balle qui monte ne tire pas correctement. Quel est donc le problème ? On y va, on se fait même tirer dessus. Essayons de voir quel est le problème quand il tire dessus. Donc, vers le haut, il y a un problème. Et la façon dont je n'ai
réalisé que comment le dernier fonctionnait comme par exemple, regardez, nous pouvons utiliser image par image. Il devient plus gros 0. Remarquez ce qui s'est passé. Supprimons donc la pause. Et voyons ce qui se passe quand il tire. Vous pouvez voir que la balle sort, c'
est-à-dire les balles du boss, voyez, d'accord, donc
celle-ci, celle-ci sort. Et dès qu'il sort pour une raison quelconque, il disparaît. Alors, quel est le problème ici ? Voyons voir, c'est peut-être à cause du collisionneur. C'est peut-être le cas. Examinons donc le point, évidemment cette 0,2 et le collisionneur. Mais cela ne devrait pas être au collisionneur parce que, bien
sûr, la balle ennemie n'interagit pas avec le boss ou est-ce qu'elle vient ? J'ai donc remarqué que lorsque je déplace le point vers le haut, cela ne crée pas de problème. Je soupçonne donc que la balle du boss, qui se trouve sur la billette ennemie, interagit avec ce boss Kali, qui est sur la couche par défaut. Ce que je vais faire, c'est que je vais
créer une couche pour le patron. Ainsi, dans les calques ici, créez un calque Boss Skelly. Et ensuite, sur le boss, ce sont les balles ennemies. Je vais donc aller dans l'édition, les paramètres du projet, Physics 2D, faire défiler vers le bas et
m'assurer qu'il n'interagit pas avec le boss. Crâne. Déplace, booste Skelly, stimule l'écailleuse. Revenons aux calques, modifions les calques et non boostons le panier Skelly. Muschelli n'interagit donc pas avec les deux Skelly qui travaillent. De retour ici. » A dit le patron, Kelly. Oui, changez tous les enfants. Nous sauvegardons cela. Nous revenons en arrière et les paramètres du projet. Et le troisième est x à la et l'horaire du bus n'interagit pas avec le Boss Kelly et n'interagit pas avec le joueur. Mais nous pouvons réellement déplacer tous ces éléments honnêtement, mais nous allons simplement les garder. Et maintenant, nous devrions voir que toutes les balles, tous les points tirent correctement, même si ce point se trouve à l'intérieur
du collisionneur de boîte du joueur, l'ennemi. Donc maintenant on devrait ce gars, comme vous pouvez le voir, il tire toutes les deux minutes à secondes ou quoi que ce soit. Donc, nous regardons ici. On va tirer, vrai ? Vrai. Va là-dedans. Et essayons de le tirer dessus et de le mettre en colère. Il est donc à 50 pour cent de santé. Il y a donc un problème avec l'animation. Le problème, c'est que le patron entre ici, c'est le compteur de tir. Et lorsque le compteur de tir est réglé sur 0 ou inférieur à 0, nous devons alors réinitialiser le compteur de tir pour qu'il soit égal au tir de temps en temps. Gardez ça. Et on y va. Tout devrait fonctionner correctement. Maintenant. Nous lançons ensuite à nouveau le jeu. J'espère que ce sera la dernière erreur que nous commettons. On tire, on y va. Nous avons terminé l'animation de tournage. Nous marchons un peu, puis nous reprenons le tournage. Et cela fonctionne-t-il ? Non, je ne pense pas que ça fonctionne correctement. Quelque chose ne va pas. OK. Bienvenue de retour. Je ne savais donc pas quel était le problème. Il s'avère que le compteur de tir était très bizarre. Donc, lorsque nous réinitialisions le compteur de tir ici, chaque fois que nous avons fait la transition vers le tournage, le problème était qu'il ne comptait à rebours le problème était qu'il ne comptait à rebours que
lorsque nous étions dans cet état. Donc, nous ne comptons à rebours que lorsque nous sommes sur la mise à jour de la marche du boss. La meilleure solution consiste donc à déplacer
simplement le compteur de tir réinitialisé, ce qui consiste simplement à régler le compteur de tir sur le temps de prise de vue. Rien de la mise à jour à l'état, mais à la sortie sur état. Maintenant, le compteur de choc est réinitialisé chaque fois que nous entrons dans un autre état. Donc ici, quand nous courrons le match, vous verrez que maintenant le patron monte, il tire, vous verrez le nombre de tirs. Et ici, vous y allez. Cinq remontent à 0. On y va donc. Maintenant, tout fonctionne bien. Maintenant, on le met en colère. Voyons la fusillade si ça marche quand on est en colère. Oui, on y va. La fusillade est beaucoup plus répandue, 123. Et je pense que l'un d'entre eux a disparu. Nous voulions avoir dans l'animation plusieurs clichés. C'est la vidéo la plus longue et tout
le cours, je vous le promets. Attaque tellement en colère. Mais avons-nous non, je veux dire, une fusillade en colère, 1, 2, 3, 4. Nous avons ce que nous devrions nous permettre. Nous n'avons pas émis le quatrième. Je pense que c'est à cause de l'heure de sortie. 97. Jouons, jouons le tout. Donc, sauvez ça, sauvegardez ça, lancez le jeu. Voyons à quoi ça ressemble. Et j'aurais pu tout faire hors écran, mais je voulais vraiment
vous montrer comment tout fonctionne. J'espère donc que c'est bien. Combien de fois ce sera 2,
1, 2, 3, 4, donc quatre, même si nous marchons, je pense que c'est bien. Ce n'est pas mal. Nous pouvons tirer sur la dernière fois que nous marchons. C'est une bonne mécanique, les boss sont finalement terminés après 40 minutes d'enregistrement. C'est le temps qu'il me faut après le montage, peut-être que ce sera un peu moins. Je vais donc commettre tous les changements que nous avons apportés. Je vais dire que finalement, j'ai fait le patron. Tirez après près de 100 erreurs. Ce n'est pas quelque chose que vous devriez écrire. C'est pour moi de me rappeler à quel point j'ai fait des erreurs dans cette vidéo. Mais en tout cas, j'espère que ça vous plaira. J'espère que vous apprécierez la transparence et je vous montre tout ce qui se passe en coulisses. Si vous ne l'avez pas déjà fait, c' est le moment idéal pour me laisser un commentaire et je vous verrai dans la vidéo suivante de la dernière section. Je ne sais peut-être pas où nous allons créer le flux
de niveau réel d'une scène à l'autre maintenant que nous avons tout en place. Je vous verrai alors.
95. Section 16 : Génération de pièce (programmation avancée de C Objets axé) - Configuration des pièces: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous venons de créer quelques nouveaux niveaux pour toutes les générations de niveaux aléatoires. Tout d'abord, nous avons créé le niveau des pointes. Si la balance est là où nous avons quelques squelettes, le magasin où nous n'avons qu'un seul ennemi qui garde la nouvelle arme, où nous tuons l'ennemi et récupérons une nouvelle arme, la santé et la santé qui
redonne nous sommes un niveau lâche de 120,5. Tout le monde est une année lâche. Et le niveau du boss, et c'est tout. C'est tout ce que vous devez faire. C'est tout ce que nous avons fait. Donc, ne perdons plus de temps et commençons. Bon, alors bienvenue dans une toute nouvelle section en C Sharp avancé. La première vidéo concerne donc la création de plusieurs pièces. Nous avons donc déjà le niveau 1, niveau 2, le niveau 3, le niveau net et l'écran de titre avec l'écran de victoire. La prochaine chose que nous devons faire est de créer quelques autres pièces. Je vais le faire séparément
parce que je ne veux pas trop perdre votre temps. Donc, ce que je vais faire, c'est vous lancer un défi pour créer plusieurs salles. Tout d'abord, nous voulons avoir plusieurs pièces à traverser. C'est semblable à la façon dont nous aurons le jeu Hadès. Nous avons donc plusieurs chambres. Nous avons la possibilité de franchir deux portes dans chaque pièce après avoir fini de tuer tous les ennemis. C'est exactement ce que nous voulons faire et notre jeu aussi. Voici donc quelques-unes des pièces que vous aurez. Vous aurez besoin d'une pièce pointue, la salle de santé où vous venez et récupérez autant que vous le souhaitez. Le pic de Rome. Donc, une pièce pleine de pointes, il n'y a pas d'ennemis. Vous pouvez avoir des ennemis si vous le souhaitez, mais il y a plein de pointes. Vous devez passer par là sans mourir. Une salle des boss évidemment, et trois autres salles de formes variées. Au total, 1, 2, 3, 4 et 56, 7. Donc, près de sept pièces à choisir. Et il est important de les avoir, car nous aurons plusieurs options sur deux portes de sortie différentes et ainsi de suite. De toute évidence, l'écran de titre et l'écran de victoire ne font pas partie du jeu. Cela restera donc pour autre chose. Et vous devrez ajouter, assurez-vous d'ajouter. Et ce serait le cas, et assurez-vous d'ajouter les règles à l'index de construction, évidemment. Et je vais vous donner un petit indice. Vous pouvez simplement dupliquer le niveau et modifier quelques éléments, de sorte que vous n'avez pas besoin de passer par le processus de création d'une nouvelle scène, d'ajouter une grille, faire toutes ces choses peut simplement il suffit de sélectionner l'un des niveaux, dupliquer, de tout mettre en place, et avant de partir, il y a quelque chose dont nous devons nous occuper. Et c'est que dans le canevas de l'interface utilisateur nous avons toujours la santé des patrons. Nous ne voulons pas que cela se produise. Nous pouvons donc soit en
faire la salle des boss, puis dupliquer et créer d'autres niveaux à partir de celle-ci. Et d'autres toiles d'interface utilisateur ne seront pas tenues par le patron. Ou si vous voulez que la chose la plus intelligente soit faite ici dans le gestionnaire d'interface utilisateur, nous pouvons obtenir une référence à l'état de santé du bus, puis nous pouvons l'activer et l'éteindre en fonction possibilité de trouver un patron et de la zone dans laquelle nous nous battons. Et donc, quelles sont toutes ces informations. Laissez-moi vous ramener au défi. Mettez la vidéo en pause dès maintenant et créez quelques salles pour les prochaines vidéos. Je vous verrai dans un cas un peu nul. Alors, comment ça s'est passé ? Laissez-moi vous montrer ce que j'ai créé. J'ai donc tout d'abord créé
la scène des boss où vous trouvez un patron. Tout est pareil. J'ai gardé les portes sont les portails. Ce que j'ai fait, c'est d'avoir les portails ici dans la pièce séparés de 12 portails pour être juste autour de la hiérarchie. Je les ai placés à l'intérieur de
l' objet des portails à l'intérieur des pièces. Une autre chose que j'ai faite est dans l'administrateur, fermez-les. Celui-ci dans le gestionnaire d'interface utilisateur, juste ici. Dans le gestionnaire d'interface utilisateur, j'ai obtenu une référence au menu Boss et je me suis assuré activer ou de le conserver comme éteint si nous ne trouvons pas le contrôleur de boss. C'est juste pour la barre T des balles. Que faisons-nous d'autre, les lâches ? Ce n'est pas le poids. Pourquoi aussi mon erreur. Celui-ci devrait donc être le lâche moi, donc c'est là que nous avons tous ces yeux actuellement. N'oubliez pas que ce sont ceux qui s'
enfuient et celui-ci sera la salle de santé. Faux. On y va. Et cette salle de santé a un demi-dos et cet Outback rétablit 120 points de santé. Donc, fondamentalement, il restaure toute votre santé. Et vous remarquerez ici que j'ai toujours un ennemi, même dans la salle d'atelier, qui ne devrait pas avoir d'ennemi. Mais c'est le cas. Je l'ai mis là-dedans parce que les portes ne s'ouvrent que si nous tuons un ennemi. Et je sais que c'est un peu encombrant. Peut-être devrions-nous en ajouter quelques autres. Peut-être, disons une ligne
de code supplémentaire pour nous assurer que nous n'avons pas toujours à tuer les ennemis. Pour ouvrir les portes. On peut juste ouvrir les portes sur un connu, tu sais quoi ? Je ne voulais pas y aller
parce que c'est assez simple, mais en même temps long. Je me suis juste dit que nous allons rester là. Nous ajoutons simplement un ennemi que nous avons rassemblé pendant que nous traversons les pièces et que nous continuons. Puis j'ai créé la salle des pointes pour une raison quelconque, ce n'est pas la salle des pointes. Nous avons les squelettes. D'où viennent les pointes ? Donc, les nouvelles armes. Donc, d'accord. La nouvelle arme est donc dans le squelette avec les pointes pour une raison quelconque. Je ne sais pas pourquoi. Permettez-moi de renommer les pointes était juste pour que nous n'ayons pas le même nom. Donc, les pointes et je vais enlever les armes juste et dans ces pointes. Oui, sauvez celui-là et la salle des pointes. Je vais juste les garder comme le et celui-là. Qu'est-ce que celui-ci possède ? Oh attends, c'est aussi les pointes, celle-ci comme les squelettes et celle-ci. Donc, celui-ci n'a rien. Je vais supprimer tous les ennemis ici. Gardez-en un, gardez l'un d'entre eux pour le protéger, disons la poitrine. Si je vais dans les micros Prefabs, où est-il ? Objets de niveau. Bon, donc on y va. C'est la poitrine. Et puis, une fois que nous sommes arrivés cet ennemi, nous pourrons ouvrir la poitrine, récupérer l'arme, puis sortir de là. Alors, que faisons-nous d'autre ? Et ces squelettes, squelettes, pointes, pointes. C'est le oui de Kelly. Renommez cette stèle. Et puis celle-ci est la nouvelle salle des armes. De nouvelles armes. Juste de nouvelles armes. Appuyez sur Entrée. Oui, on y va. Comme vous pouvez le constater, nous avons quelques niveaux. De toute évidence, nous devons aller dans l'endroit où il est, les paramètres modifiables, et nous y allons. Donc de nouvelles armes, des pointes. Ajoutons le niveau de boss, les yeux du lâche, le niveau de santé. La nouvelle arme est déjà là. Le niveau de la boutique, ces ravines et les pointes sont déjà là. Comme vous pouvez le constater, nous en avons maintenant combien sont-ils ? Okay, donc six niveaux, 1234567. Donc, sept niveaux, un écran de titre et un écran de victoire. Et c'est ce à quoi nous allons accéder dans les prochaines vidéos, en
essayant de voir comment tout fonctionne. J'espère que vous avez apprécié vos changements et je vous
verrai dans le prochain.
96. Créer des Spawner de ennemis: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, comme vous pouvez le voir, nous avons quelque chose d'un peu différent. Nous avons des vagues, mais ces ondes ne sont pas seulement des éléments réguliers ou des variables régulières. Ils ont les variables d'amis à l'intérieur d'eux. Et nous pouvons créer une autre vague et une autre vague. Et comme vous pouvez le constater, chacun d' eux a son propre élément. Bienvenue dans la section Advanced C-sharp. Ne perdons plus de temps et commençons. Mais j'ai besoin de votre concentration totale, toute
votre durée d'attention et de votre chute. patients avec moi. Commençons donc. Maintenant que nous avons nos niveaux aléatoires, il est temps de créer des ondes NME aléatoires. Nous n'allons donc pas seulement
avoir les ennemis réguliers ici. Je viens de les installer dans la vidéo précédente pour que nous sachions quelle est
l'idée générale à chaque niveau et que nous
ayons juste quelques différences entre eux. Mais dans cette vidéo, nous allons créer un géniteur ennemi. Commençons donc. La première chose que nous allons faire, c'est que
nous allons ouvrir les gestionnaires. Et nous n'avons pas de gestionnaires ici. Nous allons donc passer à l'un d'entre eux qui n'a pas de manager et c'est tout. Et ce que je vais faire, c'est que je vais entrer dans le préfabriqué. Nous avons un manager ici et je vais juste ajouter
le dossier entier des gestionnaires afin que nous puissions ajouter des gestionnaires à n'importe quelle scène dont nous avons besoin. Je vais donc passer au niveau
du patron que nous avons tous les managers ici. Oui, c'est le cas. Les lâches. Nous n'avons pas les gestionnaires gestionnaires
préfabriqués et les gestionnaires ici. On y va. Nous avons maintenant le niveau de jeu et tout votre manager. Et revenons en arrière et voyons. Donc, les lâches, oui, sauvent la santé. Est-ce que nous avons des gestionnaires ? Non, nous ne le faisons pas. Encore une fois, nous allons voir les préfabriqués préfabriqués Managers. Et on y va. Nous ajoutons les gestionnaires à la salle de santé. Allons voir ce que nous avons de plus avec les nouveaux gestionnaires. Nous ne le faisons plus. Trouve donc les managers à ça. Et si vous le souhaitez, vous pouvez simplement sauter cette partie et aller directement au, vous avez ici. Mais ce n'est pas le préfabriqué, donc je vais le supprimer. Je vais ajouter le préfabriqué du gestionnaire réel aurait
dû faire cela dans un précédent. Aussi des scènes, qu'est-ce que cette boutique ? C'est Kelly, pas de manager. Et les gestionnaires. Et les scènes grimpent, sauvez les gestionnaires. On y va. Niveau Boss. Les gestionnaires que nous voulons. Ce n'est pas le manager que vous recherchez. Alors les lâches le voient ? Oui, oui. Oui, oui, oui. Ok, super. Donc, partout où nous
avons des gestionnaires , il est temps de créer un géniteur. Et le meilleur point de
départ, je crois , c'est dans ces Kelly ici. Dans ce cas, allez dans le gestionnaire de niveaux et allons de l' avant et ajoutons un composant ici ou non, en fait, passons dans les scripts. Et où allons-nous ajouter le géniteur de vagues ? Et ajoutons-le simplement à l'intérieur des gestionnaires ici, nous allons créer un nouveau script C-sharp, qui sera le gestionnaire de génération de vagues. Appuyez sur Entrée, nous venons d'ajouter le Gestionnaire de noms. Encore une fois, nous avons une excuse pour les autres cadres supérieurs. Je vais donc aller de l'avant et l'ajouter au gestionnaire de niveau. Et ici, je vais ouvrir le scénario. Alors, que voulons-nous faire ici ? Nous voulons créer un autre cours. Pourquoi voulons-nous créer un autre cours ? Eh bien, parce que tout d'abord, c'est un C-sharp avancé. Deuxièmement, nous voulons créer
une classe différente pour les une classe différente pour vagues parce que
les vagues ont nommé les vagues ont des ennemis, les vagues ont un équilibre entre les ennemis, le délai entre chaque fois que nous sommes apparus. un ennemi, et ainsi de suite. Donc ici, je vais aller de l'avant et créer un cours public. Et ça va s'appeler la vague. Et cette vague aura quelques choses. Tout d'abord, il aura un nom de chaîne public. Et de toute évidence, nous ne voulons pas qu'il soit toujours public, mais dans ce cas, nous pouvons gagner un peu de temps sans avoir à créer toutes les choses supplémentaires. Nous allons les rendre publics. Ensuite, nous aurons un objet de jeu public et un ensemble d'ennemis. Quel éventail d'ennemis et de moi. On y va. Ensuite, nous aurons un public et le nombre d'ennemis qui apparaîtront. Et enfin, nous aurons un retard de frai public à flotteur. On y va. Ce sont donc tous les éléments, ou disons la partie de l'onde, toutes les variables à l'intérieur de la vague. Si vous voulez appeler cette variable, car il s'agit d'une classe, c'est quelque chose de totalement différent. Mais ce n'est pas la seule chose que nous devons faire. Nous devons également nous assurer de dire qu'ici, s'agit d'un point système sérialisable. Nous sauvegardons donc cela. Et que signifie sérialisable ? Cela signifie que maintenant si j'ouvre les scripts Unity ici, vous le verrez. D'accord, rien ne s'est passé. Pourquoi est-ce que c'est ? Eh bien, parce que nous devons
également faire une autre chose. Et ici, nous allons dire qu'il y a une vague publique. Comme vous pouvez le constater maintenant, nous avons une classe totalement nouvelle, un éventail de vagues. Nous sauvegardons donc cela. Maintenant, lorsque nous reviendrons dans Unity, nous verrons que nous avons la possibilité de créer des vagues. Et si je n'ajoute qu'une vague ici, vous verrez que j'ai des éléments différents pour cette vague. Et je peux avoir un but, avoir un montant, avoir le retard de frai et les ennemis que je veux. Et si j'ajoute un autre élément ici, vous remarquerez encore une fois que j'ai un nom différent, des ennemis différents, quantités
différentes et des retards différents. Comme vous pouvez le constater, c'est pourquoi vous avez recréé ou
veillé à ce qu'il s'agisse d'un point système sérialisable. Cela nous permettra de
créer différents éléments et nous permettra de
créer ces types de variables. Nous avons donc créé une nouvelle variable qui contient différentes variables à l'intérieur. Continuons donc maintenant que nous avons tout cela, la prochaine chose à faire est évidemment d'aller de l'avant
et de commencer à vérifier vague après vague. La première chose que nous devons faire, c'est ici que nous créerons une fin privée et nous tiendrons compte de la prochaine vague. Et évidemment, nous commencerons à 0. La première vague sera donc 0. Et chaque fois que nous créons une nouvelle vague avec un nouveau nombre d'ennemis, avec les différents types d'ennemis, nous passerons à la prochaine vague en l'augmentant d'un seul. Ensuite, nous allons créer un champ sérialisé où nous garderons une trace du temps entre les vagues. Et il suffit de le définir à cinq F par défaut. Ensuite, nous allons également suivre le nombre de vagues. Donc, float wave, je dis nombre de vagues, je voulais dire compte à rebours. Bon, garde ça. Et maintenant, au début, nous devons initialiser
le compte à rebours des vagues pour qu'il s'agisse du temps entre les vagues. Ensuite, nous allons faire quelque chose pour plus tard et nous avons réfléchi, mais maintenant nous voulons avoir quelque chose en plus. Et je pense que c'est l'endroit idéal pour créer quelque chose ou quelque chose que nous avons déjà couvert, qui est une énumération. Et pourquoi voulons-nous créer une énumération ? Parce que les vagues seront dans trois états distincts, nous aurons un frai. C'est donc là que nous reproduisons chacun, je ne connais pas le temps ou le délai entre les ennemis. Par exemple, toutes les deux secondes, nous engendrons un nouvel ennemi. Nous engendrons un nouvel ennemi. moment, nous ne voulons pas faire certaines choses avec notre contrôleur ou notre gestionnaire de générateurs de vagues. Je veux dire, nous devons donc créer différents états. Ce que je vais faire, c'est que je vais lancer un défi. Et votre défi consiste à créer une
énumération pour les différents états que nous allons avoir. Nous avons donc déjà couvert les énumérations dans la section pick-up. Donc, tout d'abord, créez un E rien pour les différents états de frai qui auront, devront avoir le frai, l'attente et le comptage. Enfin, il suffit de créer une variable de
ce type pour que nous puissions l'utiliser comme référence. Alors mettez la vidéo en pause maintenant et allez faire chacune d'elles. Oh, d'accord, bon retour. Comme je vous l'ai dit, dans l'un des pick-up, alors que le pick-up. pick-up, une bicouche ? Non. Article compte-gouttes, dope. Où était-ce ? Où était-ce ? Dans le oh, OK. Ainsi, dans l'article de la boutique, comme vous pouvez le voir, nous avons créé une énumération pour la restauration de la santé, amélioration de la
santé et l'arme. Et sur la base de chacun de ces éléments, nous avons une déclaration de commutateur. Nous allons faire presque exactement la même chose. Je vais donc créer une énumération privée et privée. Et ce seront ces États battants. Et nous allons avoir le bombardement, l'attente et le décompte. Ensuite, nous allons simplement créer une variable de ce type qui sera un état et un état fondateurs privés. On y va, sauve ça. Et ici, au début, par quoi voulons-nous commencer ? Eh bien, nous allons commencer par le comptage. State est égal au comptage des points des états de frai. Nous commençons donc par compter le compte à rebours
, puis commençons également nous assurer que nous nous sommes fixés. Nous avons déjà dit le compte à rebours des vagues. Nous voulons mettre à jour, commencer à compter sur la vague. Donc, si le compte à rebours des vagues est inférieur ou égal à 0, nous allons tout d'
abord vérifier si l' dans lequel nous sommes actuellement est
différent de
l'état de frai, soit le frai des points. Ensuite, ce que nous allons faire, c'est que nous commencerons frayer tandis
que si nous n'avons pas terminé le compte à rebours, nous allons obtenir le compte à rebours et supprimer pour le temps d'inscription, le temps delta. Alors, que se passe-t-il ici ? Faisons simplement un petit récapitulatif parce que tout cela est assez nouveau. Tout d'abord, nous avons le gestionnaire de génération de vagues, qui est rattaché au gestionnaire de niveau ici. D'accord. Attendez que cela soit compilé d'un jour à l'autre. D'accord, merci. Alors, qu'avons-nous ? Nous avons une vague et chaque vague comporte des éléments différents. Nous avons donc décidé de créer
une classe publique entièrement nouvelle pour la représenter. Nous aurions pu, si nous le voulons, créer une classe distincte juste pour celle-ci, dans un script séparé, juste pour celui-ci, et ne pas avoir un comportement mono, juste une tige sérialisable et un système des moyens sérialisables qui nous permettent de créer cela ici. Et cela nous permet de changer les différents éléments ici, comme nous le voulons. Cela peut donc nous permettre de
changer les objets de valeur beaucoup plus facilement. Nous avons donc créé les vagues, nous gardons une trace de la prochaine vague qui pourrait être publique si vous voulez simplement vous assurer que nous voyons tout de façon appropriée, la rendre publique. Nous avons créé le temps entre les vagues, les vagues descendent. C'est assez simple. Ensuite, nous avons créé une énumération pour les
États reproducteurs parce que nous avons différents états de frai. Tout d'abord, nous pouvons frayer, attendre ou compter à rebours. Ensuite, nous en créons un pour
suivre tout ce qui se passe, comme nous l'avions fait dans la boutique. Plus tard, nous aurons des différences si je dis, nous aurons différentes méthodes en cours d' nous aurons différentes méthodes en cours d'
exécution et la mise à jour selon que nous, dans quel état nous sommes, nous aurons des éléments différents, des choses différentes. Et c'est le premier exemple. Si nous comptons à rebours, si nous terminons le compte à rebours et que nous ne sommes pas en état de frai, nous
commencerons à frayer. Si nous n'avons pas terminé le compte à rebours, nous allons simplement supprimer du compte à rebours l'heure, le temps delta jusqu'à ce qu'il soit inférieur à 0. Ensuite, nous vérifions notre réponse. Si ce n'est pas le cas, nous commencerons à frayer dans la prochaine vidéo, où nous allons réellement frayer des ennemis. J'espère que ça vous plaira. Je sais que c'est un peu compliqué, mais c'est ce que vous vous êtes inscrit. Vous êtes venu à la section avancée C-sharp en bonus. J'espère que ça vous plaira. J'espère que vous commettez vos changements et je vous
verrai dans la prochaine vidéo.
97. Spawning divers types d'ennemis: 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à.
98. Réaliser les vagues: Bienvenue, mes développeurs de jeux préférés. Dans cette vidéo, nous allons en fait
terminer la vague et commencer de nouvelles vagues. Une fois tous terminés, nous avons la possibilité d'ouvrir les portes. Ne les ouvrez pas encore, mais nous le ferons. Malheureusement, car cela peut prendre beaucoup de plaisir. Je ne vais pas le démontrer dans l'introduction, mais n'hésitez pas à regarder la vidéo. Vous verrez que cela fonctionne réellement. Nous nous sommes assurés que c'est le cas. Nous nous assurons toujours que c'est le cas. D'accord. Je pense donc que nous sommes à un bon moment. Ainsi, comme vous pouvez le constater, vous avez cherché des ennemis qui fraient au hasard. L'heure est terminée. Laissez-moi bien. Donc, la colonne vertébrale sur la même position que nous les
appelons, nous devrions voir dans l'inspecteur que nous avons terminé toutes les vagues, ce qui signifie que nous allons ouvrir les portes. Donc, ne perdons plus de temps et commençons. Oh, d'accord. Alors, que se passe-t-il en ce moment ? Tout d'abord, j'ai oublié de mettre en scène tous mes dossiers. Je vais appeler ça une instanciation, divers types d'ennemis. C'était la vidéo précédente, mais nous allons maintenant nous concentrer sur ce qui se passe dans le rendement. Vous vous souvenez donc que dans la dernière, nous avons commencé à terminer les vagues, mais pas
tellement Blanches parce que même si nous avons fini une vague, vous l'auriez peut-être remarqué nous avons commencé à terminer les vagues,
mais pas
tellement Blanches parce que même si nous avons fini une vague,
vous l'auriez peut-être remarqué. frai. Pourquoi est-ce que c'est ? Eh bien, c'est parce que
le compte à rebours des vagues est toujours inférieur à 0. Nous allons revenir au frai. Et bien, évidemment, désolé, nous ne reviendrons pas au frai, donc nous recommençons toujours par la co-routine. Alors, de quoi avons-nous besoin ? Faut-il vraiment commencer une nouvelle vague ? Et deuxièmement, nous devons
réinitialiser tout cela et nous assurer qu'à la fin, nous arrêtons toutes les vagues. Nous avons fini toutes les vagues. Nous pouvons ouvrir la porte et ainsi de suite. L'homme. Non seulement cela, dans cette vidéo, nous voulons créer plusieurs points à partir desquels les ennemis vont frayer. Nous avons donc les mains pleines. Ne perdons plus de temps. Que devrions-nous faire ici ? Tout d'abord, je vais faire défiler vers le bas et créer un nouveau vide, Start New Wave. Et que s'est-il passé ? Et ici, je vais dire que
dès que nous aurons envie de commencer une nouvelle vague, nous allons mettre
l'État sur les états de frai qui comptent. Ici, nous comptons pour la prochaine vague et
le compte à rebours des vagues
sera égal au temps entre les vagues. Les gens, pas les ennemis, fouillent le temps entre les vagues. Et puis ici, nous allons vérifier si la prochaine vague plus 1 est égale à la longueur des vagues. Cela signifie donc que nous sommes sur le dernier chemin, que la prochaine vague est la dernière. Ensuite, nous allons dire que le journal des points de débogage. Et ici, nous dirons que nous avons terminé toutes les vagues. Et je viens de dire quelque chose que je crois, n'est-ce pas vrai ici ? Tout d'abord, nous devons ajouter deux égaux, égaux à comparer lorsque nous ajoutons un égal, ce qui signifie que nous attribuons deux égaux comme lorsque nous comparons. Et j'ai dit ici que la prochaine vague est la dernière. Non, quand j'ai dit la semaine prochaine plus 1 correspond à la longueur de la vague, cela signifie
que la prochaine vague ici sans le plus un comme dernier indice. Ainsi, la prochaine vague plus 1 correspond à la taille de l'ensemble du tableau, c'
est-à-dire la longueur du point des vagues. Cela signifie que nous sommes actuellement sur la dernière, ce qui signifie que le journal des points de débogage indique que nous avons terminé toutes les vagues. Et nous allons simplement ajouter un commentaire ici. Nous pouvons ouvrir les portes, ouvrir des portes, obtenir des récompenses, etc. Ok, et une fois que nous avons terminé, donc si nous ne sommes pas sur la dernière vague, qu'allons-nous faire ? Eh bien, nous allons dire que la prochaine vague, plus, plus, donc plus, plus, donc nous avons augmenté la semaine suivante d'un. Donc maintenant, tout ce que nous avons à faire, c'est quand nous vérifions
les ennemis et que nous mettons à jour et que la vague est terminée, nous allons commencer une nouvelle renonciation. Je crois donc que c'est tout ce que nous devons faire. Je vais donc retourner dans mon jeu ici et je vais dire d'un jour
à l'autre, s'il vous plaît. Donc, dans le gestionnaire de niveaux,
voyons voir, nous nous assurons que nous n'avons aucun problème. Je vais changer ça par le, où sont les ennemis ? Faites-le plus petit ou les préfabriqués ennemis sont-ils ennemis ? Ok, donc nous avons le pétrole, assurons que la première vague n'a qu'un squelette ennemi. Et nous allons créer une deuxième vague ici, c'est-à-dire la vague haute parce que nous avons les yeux volants et nous allons avoir les deux. Parmi eux, ce sont les lâches. Nous saurons donc quand nous serons dans la prochaine vague. Je vais donc sauver tout ça. Je vais vérifier ici, d'
accord, le temps entre les vagues. Lançons le jeu et voyons à quoi ça ressemble. Je vais donc diriger le jeu et nous ne devrions voir que des squelettes. Skeleton, on y va. Skeleton, on y va. Maintenant, lorsque nous les tuons, nous ne devrions voir des corbeaux volants qu'après les cinq secondes. On y va, The Flying Crow, on peut le voir derrière ces deux-là, et ils m'ont tué, mais tout semble parfaitement fonctionner. Comme vous pouvez le constater, nous réinitialisons l'heure. Si nous faisons défiler vers le bas. Si vous ne comprenez pas complètement ce qui se passe, laissez-moi le refaire une fois. Dès que nous commençons une nouvelle vague, nous commençons à compter jusqu'à la prochaine vague. Ensuite, le compte à rebours des vagues est réinitialisé
au temps entre les vagues. Donc, une mise à jour. Et ici, nous allons
supprimer time.DeltaTime chaque image, ce qui signifie que nous commençons la nouvelle vague. Alors, on vérifie, sommes-nous sur la dernière vague ? Si c'est le cas, cela signifie que nous avons terminé toutes les vagues et que nous pouvons ouvrir la porte. Malheureusement, nos ennemis
nous ont tués avant que nous ayons eu la chance de le faire. Mais avant de
tester cela et de nous assurer que cela fonctionne ici même. Tout d'abord,
créons plusieurs points à partir desquels les ennemis peuvent apparaître. Parce que, comme vous pouvez le constater, nous n'aimons pas vraiment que tous les ennemis se soient écrasés ensemble et 1 et qu'ils soient petits. Nous voulons avoir une certaine diversité. Pour cela, ce que je vais faire, c'est que je vais lancer un défi pour créer des points d'apparition pour les ennemis. Tout d'abord, vous devez créer un tableau pour générer des liens. Donc,
ces points d'apparition doivent être de type transformer ce tableau. Ensuite, vous devrez créer les points en unité et les ajouter à l'inspecteur, évidemment sur le gestionnaire de niveaux. Enfin, lorsque nous avons engendré un ennemi, choisissez un point de frai aléatoire et placez-le là. Je vais donc vous dire de mettre en pause la vidéo parce que pour une raison quelconque mon punk ne fonctionne pas simplement correctement. Je vous verrai juste un peu. Salut, bon retour. Alors, comment avez-vous fait ça ? Ensuite, si je fais défiler ici et que je crée un champ de transformation sérialisé, qui devient un tableau des points d'apparition. Gardez ça. Et puis je fais défiler vers le, voyons ce que nous avons ici. Oh, alors où répondront aux ennemis ici, nous pouvons simplement supprimer le débogage. Il ne l'a même pas utilisé une seule fois. Alors, ici, que devons-nous faire ? Eh bien, nous allons tout d'abord créer une transformation d'une variable de type évidemment transformer la transformation sur l'objet de jeu pour ce point de puissance. Et j'espère que ce sera la dernière vidéo où je dois dire le mot « spawn, spawn », quel qu'il soit. Donc, entre ces points, et ici je vais dire une plage aléatoire entre 0 et les points d'apparition sur la longueur. Nous choisissons donc un point d'apparition aléatoire. Et ici, au lieu d'utiliser la transformation de l'objet de jeu, nous utiliserons le point d'apparition du point d'apparition aléatoire que nous avons obtenu. Je pense donc que c'est assez facile si vous ne comprenez pas ce qui se passe ici. Nous avons évidemment créé les points d'apparition que nous allons ajouter une nouvelle unité dans un peu. Ensuite, lorsque nous instancions un ennemi à l'avance, nous avons l'habitude de le mettre immédiatement
sur l' objet du jeu de gestionnaire de niveaux. Nous avons dit que nous ne voulions pas faire cela. Ce que nous faisons à la place, c'est d'utiliser le point de bombe transformée. Nous créons un tableau aléatoire en utilisant le tableau que nous avons là-haut, en utilisant une plage de points aléatoires allant de 0 à ce point, la longueur des points. Ensuite, nous définissons l'ennemi, nous les instancions et nous répondons à la documentation des points. Nous sauvegardons cela. Nous retournons dans Unity. Je vais créer tous ces points de liaison sous le gestionnaire de niveaux, puisqu'il gère tous les points sources qui reproduisent. Et je vais créer un point d'apparition vide, 1, 2, 3. J'aurai donc trois points d'apparition. Rendons la scène un peu plus grande. Et ici, voyons voir, le premier sera ici, le second sera ici, et le troisième sera ici. Enregistrez donc tout cela dans Level Manager. Voyons ce que nous avons ici, les points d'apparition. Allons, Oups, verrouillons ça. Nous allons faire glisser, Désolé. Faites glisser les points d'apparition ici. Nous disons, eh bien, que nous gérons le jeu. Et maintenant, nous devrions voir ce que nous regardons, donc 321, nous y allons. avons donc engendré un ici. Ensuite, au bout de deux secondes, l'un est là-haut. Je vais donc essayer de les tuer tous. Et voyons la deuxième vague. Cette vague est tombée. Ensuite, nous avons un ennemi qui est ici, un deuxième ennemi qui est ici. Et puis j'essaierai de les tuer en utilisant la vue sur la scène pour pouvoir les attraper de très loin. Donc le courant, l'ennemi meurt. Et maintenant, nous avons un compte à rebours. Nous pouvons voir ici que toutes les vagues sont terminées. Si nous double-cliquons, où est-il ? C'est ici que nous allons évidemment ouvrir les portes. Et la prochaine vidéo et la création de portails qui nous mèneront à une autre dimension. En fait, c'est juste un autre niveau. Mais de toute façon, vous avez compris l'intérêt. Arrêtons le jeu. Mais arrêtez l'unité. Assurez-vous de valider nos modifications. Et je vais appeler ça le, le, maintenant nous terminons les Waves. Nous commençons à commettre ces changements. Et je vous verrai dans le prochain. Et si vous appréciez, c'est au-dessus de la fin du cours. Assurez-vous de laisser un avis pour vous aider beaucoup. Et je verrai que ça vous intéresse.
99. Choisir une pièce: Bienvenue à mes collègues développeurs
de jeux dans une toute nouvelle vidéo longue. Nous ne perdrons pas de temps. Et cette vidéo, ce que nous faisons, c'est quand nous tuons les ennemis, ce n'est pas très excitant. Je vais juste vous dire que lorsque nous tuons les ennemis, nous choisissons deux numéros aléatoires. C'est ça. C'est tout ce que nous faisons. La prochaine vidéo, vous verrez pourquoi, mais c'est un concept assez compliqué où nous apprenons un nouveau type de boucle. Nous avons appris les tables de vérité. Cela en vaut donc vraiment la peine. Donc, cela ne perd plus de temps et commençons. Oh, l'affaire. Nous sommes donc en train de terminer les vagues. Il est temps de quitter la pièce et de passer à la suivante. Alors, comment allons-nous faire cela ? Prenons un bref moment pour en parler. Nous allons entrer dans les chambres, les portes. Et comme vous pouvez le constater, nous avons deux portes avec deux portails derrière eux. Et c'est quelque chose qui sera le même à tous les niveaux. Je ne voulais pas trop ajouter de choses simplement pour que
tout soit moins compliqué et compréhensible. Ce que nous avons ici, ce sont
les deux portails et les deux portes. Que se passe-t-il lorsque nous tuons toutes les vagues ou tous les ennemis de la dernière
vague, vague, ces portes auront la capacité de s'ouvrir. Mais comme vous l'avez vu dans le jeu Hadès, nous avons toujours deux options. Nous avons donc deux portails que nous pouvons traverser 14, disons le pointu, l'autre
vers une autre arène ennemie. Et c'est ce que nous voulons également faire. Nous voulons avoir la possibilité d'aller à l'un de ces deux ? Nous devrons donc installer ces deux portails avance et ces deux portes également à l'avance. Plus tard, nous créerons peut-être une sorte de nom qui apparaîtra une fois que nous serons à côté de la porte. Donc, lorsque nous l'ouvrons, nous savons où nous allons. Mais pour l'instant, concentrez-vous simplement sur le changement de The,
alors que si nous cliquons sur le portail et le déverrouillons, vous pouvez voir que nous avons le
niveau 2 ou le niveau à charger. Ce que nous allons faire, c'est que nous essaierons les
changer dès que nous tuerons les ennemis. Commençons donc. Je vais revenir dans notre code et la première chose que je
ferai , c'est que je vais entrer dans le niveau de sortie ici. Et au lieu d'utiliser une chaîne, nous allons utiliser un entier. Donc, un entier. Pourquoi travaillons-nous avec des entiers ? Eh bien, car ici, nous
utiliserons plusieurs méthodes dans le gestionnaire de scènes qui ne peuvent prendre qu' un paramètre entier avec lequel nous pouvons travailler. C'est pourquoi nous le changeons pour qu'il soit mis en danger. Plus tard, vous verrez pourquoi tout cela se produit. Je vais m'assurer que cela soit commenté et nous reviendrons plus tard et nous le changerons. Mais pour l'instant, parce que le niveau de chargement prend un entier ou que vous savez quoi, conservez-le. Et gardons ça. Et passons au responsable de niveau. Et au niveau suivant de chargement, au lieu d'une chaîne, nous allons utiliser un entier. Le niveau suivant est donc un entier, et la scène de chargement peut en fait prendre un entier comme paramètre. Donc, tout fonctionne bien pour l'instant. La prochaine chose que nous devons faire est de régler les deux portes ou les sorties à deux niveaux. Et parce que nous avons déjà tout mis en place et nous savons qu'il y aura toujours deux portes. Pour simplifier, je vais créer un niveau public et un niveau pour souligner un. Et puis je vais copier ça et en faire le soulignement deux. C'est donc pour le deuxième niveau. Ensuite, je vais également créer une sortie au niveau public. Et ce sera le premier soulignement
de sortie de niveau et la sortie de niveau soulignera deux. Nous avons donc maintenant la stratégie
de sortie à deux niveaux et créons un sélecteur de niveaux. Je vais donc faire défiler vers le bas, mais pas trop, peut-être ici. Et je vais dire que j'ai un sélecteur de niveau public vide. Et ici, nous allons
employer deux ou trois choses. Ce que nous voulons faire, c'est choisir un niveau. Mais ce n'est pas aussi simple que vous pourriez le penser parce que nous sommes actuellement au niveau du squelette. C'est Kelly. D'accord. Supposons que nous ayons la possibilité d'aller, par
exemple, à la boutique. L'un d'eux sera la boutique. Nous allons essayer de choisir un niveau aléatoire. Nous avons donc la possibilité d'aller au sommet de la première porte, mais à la deuxième porte, nous avons la possibilité d'
aller au crâne, mais nous avons déjà été dans le Skelly. La chose que nous devons garder à l'esprit, c'est que chaque fois que nous voulons avoir la possibilité de choisir un autre niveau, il doit être
différent du niveau actuel auquel nous sommes. Et non seulement cela, nous devons également avoir le niveau. Sur la porte de gauche
différente du niveau de la porte droite. Donc, essentiellement, nous avons besoin de trois choses à suivre. Le niveau auquel nous sommes actuellement. Le niveau auquel nous passerons la première porte et le niveau atteint si nous
passons par la deuxième porte. Alors, comment allons-nous faire cela ? Comment allons-nous mettre en œuvre cela ? trouvez des choses alors que nous sommes encore au même niveau ? C'est ici que nous utiliserons quelque chose appelé une boucle de temps. Permettez-moi donc de vous dire ce qu'est une boucle de temps et vous verrez quel point c'est important dans cette situation ici. Donc tout d'abord, c'est similaire à for loops at exécute un bloc de code plusieurs fois. Au lieu de déterminer le nombre de fois avant la main, nous attendons qu'une certaine condition soit remplie. C'est donc parfait pour notre cas ici, parce que nous ne savons pas combien de fois nous
devons chercher un niveau, mais nous savons que nous continuerons à regarder le niveau que nous voulons définir la première porte est différente du niveau actuel. Et nous continuerons également à regarder tandis que le deuxième niveau de la deuxième porte est différent du premier, qui est déjà et différent du niveau auquel nous sommes actuellement. Laissez-moi juste vous emmener à travers la structure de la boucle for. Vous pouvez voir ici, nous avons le temps. Nous ouvrons les supports, nous mettons dans un état. C'est exactement la même chose que l'énoncé if. Et si c'est vrai, alors nous ferons quelque chose appelé exécuter, puis revenir à la condition, changement de condition. Si ce n'est pas le cas, nous y retournons. Assurez-vous donc de prendre des précautions à chaque fois que vous utilisez des
boucles while car elles peuvent causer beaucoup de problèmes. Vous pouvez vous retrouver dans une boucle sans fin où la condition ne change pas et où votre Unity va planter. Croyez-moi, cela arrive et m'arrive tout le temps chaque fois que j'utilise des boucles while. Alors, assurez-vous de connaître le problème. Assurez-vous de toujours changer la condition et de toujours sortir de la boucle while. Quoi qu'il en soit, cela dit, revenons à Unity. Et ici, je veux dire Visual Studio. Et que va-t-on faire ici ? Nous allons dire que si le niveau pour aller à un est égal au gestionnaire de scène, point, devenir actif, vu point index. Ensuite, nous allons créer un nombre aléatoire qui est égal à une plage de points aléatoires de 0 ou réellement d'un. Qu'est-ce que nous en utilisons un ? Eh bien, parce que nous savons que la scène de l'index 0 n'est pas quelque chose que nous aimerions aller voir. Laissez-moi vous montrer ce que je veux dire. Si je retourne dans le fichier, BuildSettings, le premier comme écran de titre, la nouvelle arme pointe et tout est disponible à l'exception du 0, qui, évidemment, le dernier. Donc ici, au hasard, nous allons commencer par un seul. Ainsi, de l'un au gestionnaire de scènes, la scène compte dans les paramètres de génération. Et vous pouvez voir ici, il s'agit du nombre de scènes et des paramètres de construction. Et nous allons le réduire d'un seul, parce que nous ne voulons évidemment pas le dernier là-dedans. Maintenant que nous avons un nombre aléatoire de nos scènes, je vais simplement imprimer ce numéro aléatoire. Alors imprimez et disons la place pour le nombre aléatoire, le nombre aléatoire est et le premier tour. Et puis, ici, nous allons fixer le niveau pour qu'il soit égal à rant. D'accord, alors que se passe-t-il ici ? Tout d'abord, nous disons que même si le niveau à passer est égal à l'index de construction actuel, nous allons entrer dans la boucle while, numéro aléatoire
choisi attribué au niveau à passer si c'est toujours le même, puis vérifiez l'état ici. Si c'est toujours le même, nous créerons un autre numéro aléatoire et nous l'affecterons au niveau à parcourir. Et nous allons continuer à le faire. Alors que le niveau à passer 1 est égal
au gestionnaire de scène ou à l'index
de génération de la scène active actuellement. Une fois ce n'est pas le cas, une fois que cette condition n'est plus remplie, nous continuerons à nous occuper des choses. Avant de continuer. Évidemment, nous devons faire quelque chose qui est de définir le niveau pour qu'il soit égal au directeur de scène. Il suffit de copier celui-ci. Nous l'envoyons donc
au début comme celui-ci juste pour
pouvoir entrer dans la boucle, puis continuer. Alors, gardons ça. Revenons à notre gain et nous en fait. Nous n'avons pas encore eu ça. Donc, pour appeler cela, où devrions-nous l'appeler ? Je pense que cela fait partie de votre défi. Eh bien, je pense que cela fera partie de votre défi. Malheureusement, nous ne pourrons pas le tester. Mais, ou vous savez quoi, essayons de le tester. Donc, si je vais à quel point pensez-vous que si vous le voulez, vous pouvez en faire un défi. Mais malheureusement, je vous ai déjà montré. Donc, ici, quand nous avons dit le débogage, toutes les vagues sont terminées. Gardons cela, supprimons le commun car maintenant nous pouvons aller de l'avant et accéder au gestionnaire de niveaux. Et je pense que c'est un exemple. Et nous allons accéder au sélecteur de niveau. Et maintenant, nous pouvons choisir un niveau et nous
devons également nous assurer que les vagues sont complètes. Et nous devons également nous assurer que les vagues sont complètes. Alors, comment allons-nous faire cela ? C'est quelque chose que nous aurions dû faire avant, mais pas de soucis. Nous allons créer une variable privée
ici et les vagues sont terminées. Et nous allons le définir comme faux au début. Si privé, oh, désolé, les vagues booléennes sont terminées. Et où est-ce qu'on le réalise ? Ici, une fois que toutes les vagues sont terminées. Les vagues complètes équivaut donc à vrai. Et où cela affecte-t-il tout ? Eh bien, ici, si nous regardons où nous frayons à chaque fois. Je vais donc mettre cela en retrait à l'aide de l'onglet. Et je vais dire si les vagues
ne sont pas encore terminées, n'est-ce pas ? vagues terminées ne sont pas encore terminées. Donc, si celle-ci est toujours fausse, ce qui ne devrait pas être faux tant que nous ne
devions pas vrai ici. Donc, comme cela reste comme ça, je crois que cela fonctionnera, mais vous savez quoi, je vais
ajouter les deux lignes tordues, assurer que tout est correctement configuré. Donc maintenant, une fois que nous avons détruit ou fini toutes les vagues, Waves terminé est terminé. Nous ne comptons plus à rebours et nous choisissons un niveau. Nous allons donc essayer de voir à quoi cela ressemble dans notre jeu. On s'enfuit donc. Et je crois que nous devrions supprimer le juste pour accélérer le processus. Je vais donc tirer sur les ennemis deux fois. Attendez la deuxième vague, qui sont les lâches trouver les yeux. Je vais tirer sur les yeux volants lâches. Et on y va. Et nous en avons encore un ici. Donc, une fois que nous l'avons tué, nous avons le numéro trois aléatoire. Et ouvrons la console et mettons le jeu en pause. Donc, si nous regardons dans la console, nous avons le nombre aléatoire de trois. Donc, évidemment, cela fonctionne pour la première fois. Voyons ce que sont l'indice de construction 40, Kelly's, ses deux. donc trois niveaux de boss. Nous avons donc choisi un autre niveau. Excellent. Je veux vraiment que vous voyiez le nombre aléatoire choisi plusieurs fois, mais pas de soucis, nous aurons beaucoup d' occasions pour ces choses. Je vais supprimer celui-ci ici et le débogage ici, car nous savons déjà que tout fonctionne parfaitement bien. Mais il y a évidemment toujours le deuxième niveau que nous voulons fixer. Je vais donc vous le lancer comme un défi. Et votre défi est de définir le niveau à
atteindre, de l'obtenir. Donc, après avoir défini le premier niveau sur lequel aller, nous devons définir le second. Et le second devrait être différent du premier niveau. Et le premier niveau à
atteindre et celui sur lequel nous sommes actuellement. Vous devrez donc vous assurer de l'initialiser. Et je vais vous donner un indice parce que nous voulons nous assurer que c'est
différent du premier et différent de celui sur lequel nous sommes actuellement. Vous devrez utiliser la salle d' opération pendant le temps pour arrêter. Et je ne vous ai pas encore montré la mer, donc je vais vous la montrer ici. Si vous le souhaitez, vous pouvez peut-être, je ne sais pas, prendre une capture d'écran ou peut-être revenir en arrière et voir toutes les étapes du défi. Je vais maintenant vous montrer la table
de vérité et la table de vérité. Commençons donc par la fin. Donc, la fin est une table de vérité. Comment cela fonctionne-t-il ? Si nous avons plusieurs conditions, comme je l'ai déjà dit, nous devons nous assurer qu'il est différent du niveau actuel et différent du premier que nous avons défini. Il faut donc que ce soit une boucle de temps qui vérifie l'utilisation du tout, alors que le niveau deux que nous allons définir est égal à l'amour et que nous voulons aller ou le niveau deux pour aller, alors nous devrons le changer. Il doit être différent des deux. Permettez-moi donc de vous montrer comment fonctionne
la vraie table de vérité. Si vous avez deux vrais, nous obtenons un vrai. Si nous avons un faux et un vrai, nous obtenons un faux. Si nous avons un faux et un faux, nous obtenons un faux, nous avons un vrai et un faux, nous obtenons un faux. Mais quand il s'agit de l'OR, vous verrez que si nous avons un faux et un vrai, alors. La réponse sera vraie, mais si les deux sont fausses
, la réponse sera fausse. Donc, avec ces informations,
je sais que c'est un peu déroutant maintenant, lorsque
nous avons réellement la solution pour relever le défi, je vais tout vous expliquer, même si cette vidéo est très longue, mais pas de soucis à ce sujet. Mettez la vidéo en pause dès maintenant et relancez le défi. Bon, bon retour. Comment êtes-vous arrivé à ça ? Donc, dans le gestionnaire de niveau, je sais que c'est l'un des défis les plus difficiles, mais nous sommes dans le défi avancé. Donc ici, je vais dire que le niveau sauvage et le niveau 2, oups, le niveau à atteindre est égal au niveau pour aller un. Ou comment sont les deux colonnes,
ou le niveau auquel accéder est
égal à l'index de points du gestionnaire de scène. Donc, l'actuel. Ensuite, ici, nous allons aller de l'avant et faire exactement la même chose. Copiez ça, oups. Collez-le ici. Et le numéro 1 aléatoire, oups, désolé. Maintenant, le numéro 1 aléatoire et le numéro deux aléatoire. Et le niveau auquel aller est égal à aléatoire 2. Et en Inde, nous allons enregistrer que le niveau auquel aller
est égal à l'instance de point du gestionnaire de scène. Ou nous pouvons dire que ce niveau égal au niveau pour aller à un. Mais vous savez quoi, je ne veux pas prendre de risques qui ne font que garder les choses en sécurité. Mais, oups, collez-le ici,
sauf ce qui se passe en ce moment. Il y a donc un problème parce que nous ne pouvons pas utiliser la sortie de niveau vers, nous devons définir le niveau pour le sauvegarder. Alors, que se passe-t-il ici ? Nous avons défini le niveau à atteindre,
pour qu'il corresponde exactement au gestionnaire de scène ou à l'index de la scène actuelle. Et ici, nous vérifions quelle est la situation ici, comme nous l'avons dit, si nous revenons à notre table de vérité, gardons ça ici et
voyons à quoi tout ressemble. Nous commençons donc par vérifier comme niveau pour aller à deux, niveau à un. Et actuellement, le niveau à atteindre ou le niveau solide pour passer un sera différent du gestionnaire de scène actuel. Cette condition est donc fausse, ce qui est bon. Cela signifie que nous n'entrerons pas dans la boucle While. Mais nous vérifions ensuite le niveau pour aller, est-il égal à l'indice de construction actuel ? C'est le cas. Ensuite, nous avons une vraie condition qui est ici, et une fausse condition qui est ici. Donc, si nous regardons dans la table de vérité, nous avons une vraie condition avec une condition fausse, ce qui signifie que l'ensemble des conditions est vrai. Cela signifie que nous retournons ensuite dans la boucle While, et c'est exactement ce que nous voulons. Si nous avons 11 de ces valeurs vraies, nous voulons revenir en arrière et créer un autre numéro aléatoire et définir à nouveau le nombre aléatoire. Et nous continuerons à le faire
jusqu'à ce que cette condition soit fausse. Et cette condition est fausse, car seules deux conditions
fausses font une fausse totale. Donc, ici, si le niveau doit passer
à un niveau différent du niveau pour aller à un, et c'est différent du niveau actuel. Ce n'est qu'alors que lorsque ces deux éléments sont faux, que l'ensemble de la condition est fausse et nous continuons. Revenons donc ici. Nous allons les imprimer et lancer le jeu et vous
faire savoir quoi, supprimons 11 manager qui a supprimé l'un des gars effrayants. Et supprimons également celui-ci et lançons le jeu parce que nous voulons le démontrer assez rapidement. Ainsi, l'ennemi apparaîtra un
peu de sorte que nous
n'aurons qu'un seul squelette à squelette, une fois que nous les avons tués, nous devrions le voir. On y va. Alors on les appelle, va à la console, met la vidéo en pause, on met le jeu en pause. Je veux dire, et vous pouvez voir qu'on les dirige. numéro 1 est 3, le nombre aléatoire 2 est 4. Ils sont tous deux différents. Nous avons choisi des niveaux, veillez à valider vos modifications, et je vous verrai dans le prochain.
100. Passer à le niveau supérieur: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous ne faisons pas grand-chose, mais nous comprenons quelque chose ou une série de méthodes et de
dissections de chaînes très compliquées mais extrêmement nécessaires à notre cas pour continuer. Donc, ne perdons plus de temps et commençons. C'est l'une des vidéos les plus techniques, je crois, et l'ensemble de la série sur l'ensemble du cours. J'ai donc besoin de votre concentration totale. Donc maintenant, nous avons terminé les vagues. Nous avons les niveaux ou les niveaux potentiels que nous
voulons mettre en place. Maintenant, il est temps de passer au niveau supérieur et de l'obtenir, passer au niveau suivant et commencer à afficher
les noms des niveaux auxquels nous pouvons aller juste ici sur les portes. Ce que je vais faire, c'est je vais aller à la porte, je vais cliquer avec le bouton droit de la souris ici et je vais créer un canevas d'interface utilisateur pour cette porte. Où est donc le canevas de l'interface utilisateur ? On y va, la toile. Et si je l'ouvre, ce sera le texte d'affichage Canvas. Et si je vais dans cette toile et que vous voyez quelle est la porte, d'accord, donc, super. Et la toile ici, je vais sélectionner l'espace mondial. Et je vais double-cliquer pour voir l'ensemble du canevas. Nous allons le ramener à 0,001 sur le x et le y. Et je vais réinitialiser la position à 0, 0. Maintenant, lorsque nous double-cliquons, c'est très petit. Nous devons donc faire celui-ci sans 0 et celui-ci sans 0. Et peut-être ajouter un 0, mais faites de celui-ci a2. Oh, cinq. Oui, ça semble bien. Et ces 15 ans, peut-être devrions-nous agrandir ça. Faisons un huit et celui-là. Et c'est aussi, oui, donc je pense que c'est plutôt bon, assez solide. Ici, nous allons donc ajouter les textes que nous voudrons afficher. Et que va afficher ce TextView ? Il affichera le niveau auquel vous pourrez
accéder une fois que vous aurez ouvert cette porte en particulier. Je vais donc aller de l'avant et appliquer les modifications. Et quand j'applique les modifications à la version inférieure, vous remarquerez que la porte a également sa propre toile maintenant et que toutes les autres portes suivantes devraient également avoir ces campus. Je vais donc continuer à travailler ici. Je vais cliquer avec le bouton droit sur l'interface utilisateur et je vais ajouter un texte Mesh Pro. Ainsi, un SMS Mesh Pro, ce sera le nom du niveau. Appuyez sur Entrée, et allons-y et agrandissons un peu. Mettons-le ici ou tu sais quoi ? Mettons le nom du niveau sous et le dupliquer celui-ci et l'ajouter ici. Et cela se lira simplement pour nous ouvrir la porte. Et nous allons tout changer. Eh bien, tout ce que nous faisons toujours, la taille automatique, le maximum, le
niveau, la couleur, et pour une raison quelconque, je ne peux pas le voir. Pourquoi est-ce que je ne peux pas le voir ? Il ne devrait pas s'agir du nom du niveau, il doit
s'agir de la saisie de texte ouvert. Quel est le problème ? Si je le déplace ici, mais il ne s'affiche pas ici. Et si j'ouvre le calque de tri Canvas, réglez le lecteur, alors nous y allons. J'ai donc configuré le calque de tri sur le calque et parce que j'ai le devant ici, je vais juste en faire un pour que tout soit un peu meilleur. D'accord ? Je change donc le calque de tri de la toile réelle ici vous pouvez voir que je le vends sur le lecteur. Et je dis depuis le début nous devons définir de nouvelles couches. Je ne l'ai pas fait. Peut-être que vous l'avez fait. C'est mieux. Vous progressez plus vite que moi. Appuyez donc sur E pour ouvrir la porte. Et ici, il y aura le niveau de texte, le nom du niveau. Et changeons cela aussi. Vendez-le en taille audacieuse, max. Et d'accord, super, donc on va sauver ça. Nous allons aller à la porte et nous allons appliquer les changements. Et on y va. Vous pouvez maintenant voir que celui-ci a également son propre nom de niveau et appuyez sur la touche E pour ouvrir la porte. Alors maintenant, qu'allons-nous vraiment faire ? Nous voulons obtenir le nom du niveau, qui devrait être une chaîne et cette plaque ici. Mais comme vous vous en souvenez. Le niveau de sortie, où s'agit-il d'une sortie ? Nous changeons cela par un entier. Alors, comment
allons-nous vraiment faire cela ici et commencer ? Je vais créer le début. Et maintenant, vous devez beaucoup vous concentrer, mais ne vous inquiétez pas, tout
sera lentement mais sûrement expliqué. Donc, tout d'abord, je vais créer une
variable de chaîne qui sera le chemin de la scène. Et ce chemin sera égal à l'utilité vue. Vu l'utilité, mais évidemment nous ne pouvons pas l'utiliser. Je vais donc ajouter ici la haute direction. Et maintenant, nous devrions avoir accès à l'utilitaire de scène. Et puis à partir du même utilitaire, je vais voir le chemin peut voir ici par l'index de construction. Maintenant, je peux ajouter cela ici, et je peux dire le niveau à charger. Gardez ça. Qu'est-ce que cela va nous donner ? Je vais juste aller de l'avant et imprimer ça ici. Je dirai donc imprimer le chemin de la scène. Et voyons juste le chemin concaténé. Gardez ça. Et avant de passer à autre chose, il y a quelque chose que nous aurions probablement dû faire et c'est en fait utiliser la sortie de niveau un et la sortie de niveau à deux, assignée au niveau à passer. Donc Level Manager et où sont les sorties de niveau ? Des vagues ? Nous avons des spawns 0, donc ils ne sont pas ici. Et je vais sélectionner les portails. Portal a donc celui-là. Lequel a donc le premier portail ? Ce portail et le second
seront le deuxième sur le gestionnaire de niveaux. On y va, on sauve ça. Nous avons donc maintenant accès aux deux portails. Et maintenant, nous pouvons revenir ici, glisser vers le bas et le gestionnaire de niveaux. Et après avoir obtenu le niveau de sortie, un point sur la sortie du niveau, nous pouvons soit l'affecter immédiatement, appeler ce public, soit créer une petite méthode ici, nous dirons qu'il s'agit d'un public vide. Et nous allons le faire définir le niveau à charger. Et ce sera la charge de niveau deux. Ou faisons-le simplement de niveau. Alors raccourcis-le. Et ici, nous allons juste dire que le niveau à bas niveau a bouclé. Enregistrez-le dans le gestionnaire de niveaux qui a défini le niveau à charger. Et ce sera le niveau 1. Et puis ici, nous allons définir le niveau de jeu de points de niveau x2 sur le niveau bas pour passer à deux. Excellent. Donc maintenant, nous devrions avoir ce niveau à charger, sauf ici. Et je vais juste vous montrer ce que nous allons voir à l'écran. Donc, lorsque nous lançons le jeu, nous devrions voir ici, dans la console, faisons une pause. Et la console, nous verrons l'écran de style des scènes de ressources de chemin de scène. donc évident que c'est le chemin que nous
sommes envoyés et c'est le niveau actuel à charger. Et quel est le niveau actuel auquel nous sommes ? Il est actuellement défini sur 0. Donc 0, si nous regardons dans les paramètres ici, vous pouvez voir que 0 est l'écran de titre, ce qui vous permet de voir comment le chemin de la scène était affiché. Notre objectif est donc de tout supprimer et de garder l'écran de titre et de l'
afficher juste ici sous le nom de la porte. C'est donc ce que nous allons faire. Si je retourne ici, retirons l'impression. Et maintenant, c'est la partie effrayante. Je vais dire que l'entier est
la dernière barre oblique et qu'il est égal au dernier index de chemin de scène. Et utilisez cette barre oblique. En fait, c'est entre une seule citation. Que se passe-t-il ici ? Nous allons encore imprimer et, ou savoir quoi. Continuons et vous
comprendrez facilement ce que cela signifie. Donc le nom de la chaîne et il va être égal à la même
sous-chaîne de chemin dernière barre oblique et plus 1, 0 plus 1. Et essayons d'imprimer le nom et de voir ce que nous obtenons. Vous pouvez donc voir la dernière sous-chaîne d'index, puis nous allons l'exécuter à nouveau afin que nous puissions voir ce qui se passe. Nous lançons donc le jeu et nous pouvons voir que nous avons maintenant l'écran de titre. Alors, que se passe-t-il ici ? Tout d'abord, parlons de la sous-chaîne. Permettez-moi de vous montrer ce que c'est. Ok, donc ici, vous pouvez voir la méthode et la
définition de sous-chaîne de points de chaîne et extraire une sous-chaîne de cette instance. Et vous pouvez voir que nous pouvons utiliser un int 32, récupère une sous-chaîne, qui sera évidemment une chaîne. Ensuite, nous avons une sous-chaîne. sous-chaîne commence à une position de caractère spécifique et continue jusqu'à la fin de cette chaîne. C'est donc ce qui se passe ici. Nous obtenons le dernier indice où nous avons cette barre oblique. Ensuite, nous utilisons une sous-chaîne de cela. Rappelez-vous donc comment cela s'afficherait auparavant. Je vais
encore imprimer le chemin de la scène ici le chemin de la scène ici pour que vous puissiez
voir clairement comment tout cela fonctionne. Je prends le temps de
tout expliquer parce que c'est un peu déroutant. Donc, sur la console, nous allons, Assets, scènes, et le dernier index où nous avons cette barre oblique avant, puis un écran de titre. Nous avons le dernier index, qui est l'entier ici. Ensuite, le nom est une sous-chaîne qui commence à la dernière barre oblique plus une. Nous commençons donc immédiatement après la visite juste après la dernière barre oblique. Maintenant, la dernière étape consiste à supprimer également le point. Je vais donc le faire. Et ici, je vais dire que int dot est égal au nom point dernier index de. Et puis je vais utiliser le petit point. Et puis, enfin, je vais imprimer. Et vous devriez probablement le
faire maintenant que vous savez comment tout est fait. Nom de la sous-chaîne de points. Et où se situe entre 0 et le point. Et c'est également une autre forme de la sous-chaîne. Vous pouvez le voir ici, une sous-chaîne et 32 et 32. Ainsi, lorsque nous lui attribuons deux paramètres, il récupère une sous-chaîne de cette instance commence à une position de caractère spécifiée et a une longueur spécifiée. Je vais y retourner. Je vais sauver tout ça et je vais diriger le jeu. Et ils dirigent maintenant le jeu. Et vous verrez dans la console que nous avons d'
abord eu tout le chemin, puis nous l'avons réduit. Enfin, nous avons accès à l'écran de titre. Comme vous pouvez le voir, c'est très puissant et je l'admets un peu compliqué, mais c'est la seule façon de le faire pour la seule façon dont je sais qu' il y a
peut-être un autre moyen, mais pour maintenant, il est temps de relever un défi. Et votre défi consiste à définir le texte dans un nouveau script pour que le texte apparaisse et disparaisse si le lecteur se trouve dans une certaine zone à côté de la porte, d'
obtenir un nouveau script et de l'attacher à l'objet UI. Il est donc évident que vous devrez créer un nouveau script ajouté
aux éléments de l'interface utilisateur ou au canevas de l'interface utilisateur, ou peut-être même la porte si vous le souhaitez, immédiatement ajoutée à la porte, utiliser l'entrée et la
sortie de l'entrepreneur . Comme pour les articles de la boutique, utilisez la touche E pour ouvrir les portes et
assurez-vous de ne pas voir la toile lorsque nous commençons le jeu. Pour cette information, mettez en pause la vidéo
maintenant et allez faire VJ seul. Bon, bon retour. Cette vidéo est donc trop longue. Nous en sommes déjà à environ 15 minutes, et je ne veux pas en faire une vidéo énorme, donc je vais la couper maintenant. J'espère que vous avez relevé le défi. Dans la vidéo suivante, nous continuerons avec tout. J'espère que ça vous plaira. Je vous verrai dans le prochain. Pour la première fois, ne commettez pas vos changements car nous
ferons beaucoup de choses et la prochaine. Alors, à ce moment-là.
101. Niveau supérieur: Bienvenue, mes collègues développeurs de jeux. Regardez ce que nous venons de créer. Nous gérons le jeu. Nous verrons l'un des ennemis ici. Et quand nous le tuerons, nous passerons par les portes. Et vous pouvez voir que nous avons le niveau de patron et que nous avons la salle de santé. Donc, si j'ouvre la porte, j'ai marché jusqu'au cercle juste ici. On y va. Je vais à la salle de santé. Je peux prendre une santé et je peux tuer un ennemi quand il meurt. J'ai quelque chose de différent ici. Nous devrons évidemment tout
changer à tous les niveaux. Mais comme vous pouvez le constater, maintenant, tout fonctionne. Donc, ne perdons plus de temps et commençons. OK. Donc vous pensiez que je vous ai quitté, mais je ne l'ai pas fait. J'espère que vous avez fait le défi de créer ce qui apparaît à partir du nom. Alors, allons-y et faisons exactement cela. Tout d'abord, je vais entrer dans la porte et ici, et je vais ajouter un autre collisionneur de boîte, qui sera le collisionneur de boîte 2D, qui va être un déclencheur et je vais le
faire un peu. Un peu plus gros. Je vais donc le rendre grand. C'est donc juste autour de la porte. Et je vais aller de l'avant et appliquer les modifications, les modifications appliquées. Maintenant, nous devrions voir un collisionneur de boîtes ici, ce qui est également un déclencheur. Les deux sont des déclencheurs. Et maintenant, je vais aller à la porte ou entrer dans les scénarios ici. Rendez cela un peu plus grand parce que nous pouvons à peine voir quoi que ce soit. Et où devrions-nous en ajouter ? Allons de l'avant et créons un nouveau dossier pour la porte. Puis ouvrez-le et créez un nouveau script que je vais
appeler le nom de peur. Appuyez sur Entrée pour que cela puisse être compilé. Aujourd'hui. Maintenant, nous allons double-cliquer ici, ouvrir le script et commencer à taper quelques choses. La première chose que nous allons faire est donc créer un champ sérialisé, qui sera textuel Mesh Pro, donc en utilisant TMP Pro. Ici, nous allons enregistrer le texte. Mesh. interface graphique Bro GUDDAT est l'interface utilisateur du nom de niveau. Ensuite, nous allons créer un champ sérialisé de l'objet de jeu, qui est le nom de niveau Canvas. Ensuite, nous créerons un champ sérialisé qui contiendra l'objet du jeu, qui est la porte à ouvrir. Nous garderons donc une trace de la porte à ouvrir. Et pourquoi garder une trace des portes ouvertes
même si je vais l' ajouter immédiatement à la porte,
je peux dire transformer le point SAT ACT ou SAT non actif. C'est ce que nous devons porter. Mais peut-être pourrions-nous l'ajouter à un autre endroit, alors je voulais le garder ici. Alors, que faisons-nous ? Rendons celui-ci, le dernier public, et vous saurez pourquoi et prendrons la zone porte ouverte. Cela permettra de s'assurer que nous ne pourrons
ouvrir que lorsque nous sommes dans la zone. Donc, lorsque nous commencerons le jeu, je vais dire que le nom de niveau Canvas dots actif comme faux parce que je ne veux jamais le voir visible. Je vais créer
ici une méthode qui est un vide public. Définissez le nom du niveau, qui prendra en compte une variable chaîne, que nous appellerons le nom du niveau. Et ici, nous allons juste dire que le nom de niveau point txt, nom de fichier, UI. On y va. Le texte est égal au nom du niveau qui nous a été envoyé. Ensuite, une mise à jour. Que va-t-on faire ? Nous allons dire que si le point d'entrée obtient la clé avec un point de code de clé E. Et nous sommes, et la zone de porte ouverte, Zen. Zen, nous allons aller Sue. OK. Une porte ouverte, la porte à ouvrir, point-dot-dot, active à fausse. Gardez ça. Maintenant, la prochaine chose que nous faisons est sur Trigger Enter to D et la sortie de
la gâchette armée vers la sortie de sucre vers D. Et je vais vérifier le paramètre est réellement pour la collision. Donc, si la collision compare la balise, même si nous dirons probablement que cela ne peut interagir qu'avec le joueur. Mais je veux juste prendre mes précautions au cas où, juste au cas où. C'est donc ici que se trouve la porte. Est-ce que la porte comporte une couche ? Je ne pense pas. Il n'y a pas de couche, alors gardons à l'esprit le joueur. Par conséquent, seul le joueur peut interagir avec cela. Et ce que nous allons faire, c'est que le nom de niveau Canvas dot set active sur true. Et une zone de porte ouverte est égale à essayer. Et quand nous quitterons, je copierai ceci, je le collerai sur un nouveau set, actif, faux, et nous n'envions plus la zone de porte ouverte. Je crois donc que c'est tout. Je l'ai fait un peu vite, alors j'ai peut-être fait une erreur quelque part. On devrait peut-être le faire. Oh, il y a encore une chose que je veux faire. Si pour une raison quelconque, disons que le joueur ouvre la porte et qu'il retourne et veut ouvrir la deuxième porte. Je veux encore fermer cette porte. Donc, chaque fois qu'il quitte la zone, je vais dire que la porte à ouvrir, porte pour ouvrir les pensées, triste, active est vraie. Alors, sauvegardez ça. Donc peut-être, ou peut-être que le joueur entre réellement par la porte et ensuite il ne peut pas revenir arrière une fois qu'il est à l'extérieur de la zone. Cela signifie donc que vous
devez prendre une décision avant de passer au bout. Donc, avec tout cela hors du commun,
je pense que c'est assez simple. Il n'y a rien qui puisse être compliqué. Je vais entrer dans le niveau de sortie. Et au lieu d'avoir tout cela et de commencer, je vais aller de l'avant et cliquer avec le bouton droit sur action rapide et refactoring. Et je vais extraire la méthode. Et je vais dire que c'est le nom imprimé. Appliquer. Et je vais retirer dès le début, nous n'en avons plus vraiment besoin. Et ici aussi, je vais dire qu'il y a un entier qui est envoyé avec l'index de niveau. Pourquoi est-ce que je fais ça ? Parce que vous verrez juste un peu. Le niveau à charger serait donc égal
au niveau et aux textes envoyés. Donc maintenant, ce que nous pouvons faire est de retour et le gestionnaire de niveau ici au lieu du niveau dimanche à charger, qui est au niveau de la sortie, nous pouvons immédiatement imprimer nom de la
salle et je peux supprimer cette méthode. Alors imprimez Exit, quittez, ce public sait que c'est privé. Je vais donc rendre public le dire ici. Et le nom de la salle d'impression. Louez un nom de chambre, sauf ça. Comme vous pouvez le constater, c'est un peu mieux, un peu plus rapide pour gérer les choses. Sauvons tout ça. Nous pouvons réellement supprimer l'impression, et au lieu de cela, nous devrons aller de l'avant et l'
envoyer au nom apparaissant ici. Et voyons tout d'abord où nous ajouterons le nom à apparaître. Sauvons ça. Et voyons voir, nous allons l'ajouter sur les portes. Nous l'ajouterons à deux ou à un. Et appliquons les modifications. Maintenant, sous un seul, nous
verrons tout ce qui l'
enferme et ajouterons quelques éléments ici. Donc le niveau, le nom, poids, c'est le texte affiché, c'est tout le Canvas. Ensuite, nous avons le nom du niveau sous forme de texte Mesh Pro et la porte à ouvrir, qui est la porte actuelle. Et dans la zone ouverte, pourquoi ai-je rendu cela public ? Je ne sais toujours pas. Allons au nom qui apparaît et supprimons ainsi la classe, la rendre privée. Je ne me souviens même pas pourquoi j'ai décidé de rendre public. Peut-être juste pour s'assurer que tout fonctionne. Peut-être, peut-être que de toute façon, et si j'applique les changements, on peut le voir dans la porte. Si je fais défiler vers le bas et que
nous avons toutes ces options et qu'elle est en fait attachée à la porte 1 et l'affichage du texte est également attaché à la porte, ce qui est très mauvais. Et tout sera là. Nous devons donc tout faire à la main ici. Donc sur la toile, au nom du niveau et ça va aller oh, non, non, non, non, non, non. C'est parce que nous avons ce verrou. Si je clique sur la porte réelle, nous verrons que cela m'a tellement confus parce que je sais que lorsque vous appliquez les changements sur la porte, vous pouvez voir que seule la porte est attachée, mais la porte 2, vous pouvez voir que le texte est juste ici et que le nom du niveau est celui qui se trouve ici, c'est ce que nous voulons. C'est donc le travail incroyable des préfabriqués. Et j'ai été vraiment confus pendant une seconde
parce que j'avais cette serrure et j'ai cliqué sur la porte. C'était pareil. Quoi qu'il en soit, ne vous inquiétez pas à ce sujet. Maintenant que ce n'est pas le cas, nous allons le sauver. Et maintenant, nous devons envoyer en quelque sorte, ou est-ce le niveau de sortie dont nous avons besoin pour envoyer cette sous-chaîne de nom au nom apparaître. Je vais donc dire qu'ici, nous avons le champ sérialisé de l'objet de jeu. La porte. Et ici, nous avons le nom
qui apparaît, où en avons-nous ? Bon, donc le nom du sous-niveau. On y va. Je vais donc enlever ces deux parties. Ensuite, dites que la porte 0 du composant Obtenir, qui est le nom, apparaît le nom du niveau défini. Nous allons fermer cela et maintenant tout
va fonctionner. Ok, donc ici, dans le portail, j'ai assigné une porte. Donc, pour une raison quelconque, nous avons des choses un peu bizarres. Peut-être pourrons-nous déplacer le portail un ici, et le portail ici, je peux juste dire, mais donc le portail un aura la porte comme porte. Ainsi, le port 1 et la porte 1 et le portail normal auront la porte normale. Nous sauvegardons tout cela. Et maintenant, il y a une autre chose que nous devons prendre en considération. Et c'est quelque chose auquel j'ai pensé tout au long de la création de cela. Et c'est que nous ouvrons la porte immédiatement. Je ne sais pas si vous l'avez remarqué. Pourquoi est-ce que c'est ? Eh bien, parce que si nous allons dans le quartier où est-il ? L'un des composants ici, c'
est-à-dire la pièce, le responsable de salle que vous pouvez voir ici. Si nous double-cliquons sur le gestionnaire de salle, vous verrez que dans la mise à jour nous avons si le nombre d'ennemis est égal à 0, nous allons définir toutes les portes pour agir. Et le problème ici est que les ennemis manquent toujours 0, donc la porte s'ouvre immédiatement. Donc ce que je vais faire ici, c'est juste vérifier pour ouvrir les ennemis Goldman. Est-ce que c'est non, pas ça. Je vais juste supprimer ça et on peut ajouter ce mécanicien et au jeu. Et peut-être dans le déclencheur de vagues quand on instancie les ennemis. Ainsi, quand nous avons engendré les ennemis, nous pourrons en faire des enfants de la pièce. Où sont les ennemis ici ? Nous pouvons faire d'eux les enfants de ces ennemis. Ensuite, nous pourrons mettre fin au responsable de la salle. Au lieu de se contenter d'attraper les ennemis, vérifier les chevauchements, les collisionneurs ,
désolé, ici et commencer. Nous pouvons faire une mise à jour toutes les deux secondes. Ensuite, assurez-vous de ne pas ouvrir la porte ou de ne pas vérifier cela tant que nous n'aurons pas tué tous les ennemis. Tout cela est possible. Mais par souci de simplicité, pour juste passer à travers cette chose, je vais juste aller dans le gestionnaire de salle et simplement commenter cela, sauvegarder ça dans notre jeu, lancer le jeu. Et nous devrions voir maintenant que les portes sont toutes fermées. Le nom du niveau ici et le nom du niveau ou IT,
c' est quelque chose que nous voulons corriger. Nous ne voulons pas être en mesure de voir quel est
le niveau ou de l'afficher. Vous pouvez voir ici qu'il est détruit. Je vais tirer sur l'ennemi et on verra une fois qu'il sera tué. Alors quand il meurt, maintenant quand j'aurai, vous pouvez voir que maintenant nous avons le patron de niveau et nous avons la boutique. Je peux ouvrir ça si je pars. Vous pouvez voir qu'il ne se ferme pas pour une raison quelconque. Si je vais ici, je vais ouvrir ça, puis je m'en vais. Il ne se ferme pas. C'est quelque chose que nous allons régler, mais de toute façon, c'était le niveau de boss. Voyons si nous allons au niveau du boss. On y va. Comme vous pouvez le constater, nous allons clairement voir le patron. L'amour. Est-ce que c'est cool ? Maintenant que le patron est que je vais le faire, on y va. Le patron meurt donc. Nous attendrons que cela s'ouvre. Et il est évident que nous devons changer quelques choses ici. Donc, tout d'abord, le nom du niveau, rafraîchissement de l'année et le niveau de sortie dans nom apparaissent dans le Canvas de départ, nous définissons l'ensemble du canevas sur false. Mais quand nous entrerons, nous réglons le canevas sur vrai et nous
corrigerons tout cela peut-être dans la prochaine vidéo. Mais la mécanique fonctionne, les niveaux fonctionnent, et je vous verrai dans le prochain. Assurez-vous de valider toutes vos modifications.
102. Motif de singleton: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, lorsque nous lançons le jeu, vous verrez que nous avons beaucoup d'erreurs. Nous ne les réparons pas tous, mais nous avons réparé la plupart d'entre eux. Je vais donc aller chercher le fusil de chasse, ramasser des pièces de monnaie, me faire frapper par les pointes, passer par la porte, passer par ce portail. Et voilà. Vous pouvez voir que je suis de l'autre côté,
c'était mon pistolet avec ma santé, mais il n'est pas visible parce que nous n'avons pas modifié ces choses. Mais si nous allons faire défiler le joueur vers le bas, vous remarquerez que nous en avions 500. Nous l'avons coupé par les pointes et il est 490, même si nous n'avons rien fait. Donc, ne perdons plus de temps et commençons. Les choses que nous apprenons dans cette vidéo sont très importantes, un peu encombrantes, mais très importantes. Alors, soyons piétinés. O k. Actuellement
, nous pouvons passer d'un niveau à l'autre. Nous avons des options où nous
choisissons l'un des niveaux aléatoires que nous avons. Évidemment, il y a quelques choses que nous devrons
modifier avec l'apparence de la porte et la disparition, etc. Je pense qu'il reste encore un peu de réglages, mais il y a un problème encore plus important. Et c'est une fois que nous avons ramassé les pièces, l'arme, et nous sommes frappés par ces vélos ou quelque chose comme ça. Laissez-moi vous montrer. Quand on prend le fusil de chasse, ramasse de l'argent, on se fait frapper par les pointes. On y va. Nous pouvons donc voir que notre vie est de 9500, nous passons à un niveau de nombre. Peut-être que ce sera le cas, et vous pouvez voir en ce moment, alors que le joueur, si je regarde le joueur de D1, il est détaché. Il n'est pas là. Vous pouvez donc voir que sa vie remonte à 50 ans. Si j'ai essayé de choisir le fusil de chasse, je ne peux pas. Et voilà. Vous pouvez voir que les pièces sont 0 et c'est quelque chose que nous voudrons
changer pour nous assurer que notre joueur
garde réellement tout avec lui au fur et à mesure qu'il franchit le niveau. Allons de l'avant et faisons-le simplement. Je vais donc ouvrir mes scripts ici et je vais
aller à la manette du lecteur, faire défiler vers le haut. Et ce que nous voulons, c'est évidemment que nous voulons garder nos armes d'un
niveau à l'autre et de maintenir la santé du joueur. Donc, pour garder cela, nous devons nous assurer de ne pas détruire le joueur. Nous pouvons l'enregistrer sur un autre objet ou quelque part dans le projet. Mais évidemment, le problème était de charger une nouvelle scène qui réinitialise tout. Donc ce que je vais faire, c'est ici que je vais créer une manette de lecteur statique publique. Et ce sera le cas. Et dans le cas où je vais
créer un privé ou savoir quoi, écrivons éveillé. Et ici, je vais dire que l'instance est égale à cela. Et puis ici, je ne vais pas détruire à charge. Et ce sera ça. Donc, si je sauvegarde cela et que je survole sur ne pas détruire la charge, vous pouvez voir que pour ne pas détruire l'objet cible lors du chargement d'une nouvelle scène. Et c'est exactement ce que nous voulons. Que va-t-il se passer maintenant ? L'objet ou le joueur et notre cas, nous garderons tout ce qu'il avait avec lui de scène en scène. Il ne sera pas détruit, il ne sera pas réstancié. Mais il y a le problème que le départ ne s'appellera pas le Gap. Nous n'allons donc pas régler la caméra principale. Nous garderons l'animateur du joueur, mais la caméra principale changera. Et vous verrez que cela produira beaucoup d' erreurs que nous corrigerons au fur et à mesure que nous avancerons. Mais pour l'instant, comprenez le ne pas détruire la charge et ce qu'elle fait. Maintenant, je vais y retourner. Et si vous regardez le, où se trouve la pièce, le portail, j'ai changé le portail, qui est celui-ci, pour passer au niveau quatre. Nous pouvons donc aller vers les lâches. Et laissez-moi juste aller sur les scènes parce que j'
essayais quelque chose et j'ai
éteint le lecteur de dôme ici. On y va donc. Il l'a allumé. Sauvons ça. Revenons attendre que ça se charge d'un jour à l'autre, gardons ça là où nous servons. Le crâne est là où nous avons celui de Kelly. Oui, nous étions un squelette. Alors, sauvegardez ça. Et vous remarquerez dans la hiérarchie en ce moment, et Unity, la nouvelle mise à jour, désolé, c'est terrible. Donc, dans la hiérarchie, vous remarquerez que nous ne le
détruisons pas et qu'il a le jeu de malheur ou en dessous. Je vais donc prendre le fusil de chasse, devenir les Bitcoins se faire frapper par les pointes, ouvrir la porte, passer au niveau 4. Et on y va. Et vous pouvez voir que maintenant je suis ici, mais le problème, c'est que vous pouvez voir un joueur vers le bas et je joue ici. Nous avons donc maintenant deux joueurs. L'un d'eux a un fusil de chasse, l'autre non. Et vous pouvez voir que nous avons une tonne d'erreurs et d'inconvénients. Je vais donc ouvrir la console. Je vais mettre le jeu en pause. Et tout d'abord, nous avons le doom player. Et voici un débogage que je montrais. Permettez-moi de supprimer cela. Vous verrez ce que je veux dire en un instant. Je vais supprimer ça. Prochaine. Nous aurons la flèche ici, ce qui est correct, donc c'est le problème. Nous allons résoudre ce problème dans la vidéo suivante. Ensuite, nous avons enfin l'objet de type caméra a été détruit. Vous essayez toujours d'y accéder. Je vais donc double-cliquer ici et c'est la caméra principale, et c'est exactement ce dont je vous ai parlé. Maintenant que nous savons que notre joueur est en transition, et nous pouvons voir ici même dans la scène, si je clique sur le joueur de la mort, qui est le « Ne pas détruire », nous devons le faire, donc nous devrons le faire. corrige ça. Mais l'un d'eux a toujours le fusil de chasse. Donc techniquement, il
pourra bouger avec ce fusil de chasse. Et je regarde le joueur de tombeau, faites défiler jusqu'à sa santé et vous pouvez voir que le, sa santé actuelle a aussi une transition. Malheureusement, il y a toujours le problème des bitcoins, mais nous allons résoudre ce problème étape par étape. Commençons tout d'abord par
gérer les standards à double couche. C'est donc une question que nous devrons aborder. Et comment allons-nous ajuster cela ? Eh bien, il y a une astuce très astuce que l'on peut utiliser, qu'on appelle un motif singleton. Permettez-moi de vous montrer à l'aide code ce que c'est, puis nous vous expliquerons. Donc tout d'abord, ici éveillé, au lieu de définir immédiatement l'instance, je vais dire que si nous n'avons pas d'instance, donc l'instance est amine si nous avons déjà une instance, c'est donc différent de null, et l'instance est différente de celle-ci. Ce que je vais faire, c'est que je vais
détruire cet objet de jeu. Qu'est-ce que je fais exactement ici ? Je vais vérifier dès que nous attendons. L'instance est-elle différente de null ? Cela signifie que si l'instance n'est pas nulle, je vais détruire l'objet du jeu. Mais il y a une autre chose si l'instance est différente de celle-ci. Donc ce que je fais ici, alors que je commence le jeu, je vérifie si nous avons déjà une instance ou si l'instance est égale à cet objet de jeu, je vais détruire cet objet de jeu. Et cela garantira que nous créons pas d'
abord une seconde instance de cet objet de jeu. Deuxièmement,
nous ne dupliquons pas l'objet qui se trouve déjà ici. Donc, si nous allons sur une nouvelle scène et que nous constatons que nous avons dans un objet de jeu, il sera immédiatement détruit. Mais sinon, au cas où nous n'avons pas d'instance, donc nous recommençons le jeu, ou lorsque nous commençons une nouvelle scène et qu'aucune instance n'
est égale à cela, alors je vais dire que cette instance est égale à ceci. Cela va simplement créer une nouvelle instance. Et cela permettra de s'assurer que nous n'avons pas deux instances ou qu'il y en a déjà une. Je vais donc sauver cela et je
vais démontrer comment cela va fonctionner et se boucler car nous aurons beaucoup d'erreurs. Et je faisais des tests pour m'
assurer que je peux tout gérer correctement. Alors je ramasse les pièces, je me fais frapper pendant 90, ouvre la porte, je vais frapper le portail, éloigner. Et on y va. Vous pouvez donc voir maintenant
que je n'ai pas de joueur d'équipe. Le deuxième joueur a été détruit. C'est parce qu'il a vérifié et qu'il est éveillé. Y a-t-il une instance ? L'instance est-elle différente de null ? Oui, c'était le cas. Et l'instance est-elle égale à cela ? Oui, c'était le cas. Nous allons donc aller de l'avant et détruire. De retour ici, vous verrez que nous
n'avons que 12 employeurs dotés d'un fusil de chasse. Il peut tirer. Il ne peut pas pointer du doigt et il ne peut pas changer d'arme, mais il a le fusil de chasse. Il est animé, tout fonctionne et vous remarquerez qu' il est dans la même position que dans la scène précédente. Et c'est parce qu'il
gardera ça avec lui au fur et à mesure qu'il bougera. Vous remarquerez donc que lorsque je suis entré sur le portail, j'ai ensuite déménagé parce que je ne
voulais pas rester sur ce portail. Donc, avec cette information, après tout le chemin, voyons quelles erreurs nous avons ici. Je vais donc faire une pause car il y a beaucoup de choses. Tout d'abord, vous verrez le problème avec la caméra, que nous allons résoudre un peu. Vous verrez que nous avons un problème avec les lâches ennemis. Ils essaient de trouver l'objet qui est le joueur, mais ils ne peuvent tout simplement pas le faire. Non seulement cela, il nous indique que la transformation de l'objet a été détruite, mais que vous essayez toujours d'y accéder. Que veuvent-ils dire par là ? Eh bien, dès qu'ils sont arrivés dans ce monde, ils ont vu le petit joueur de malheur qui était là au départ. Et puis quand la scène a commencé, il a été détruit et ils essayaient toujours d'y accéder. Et si nous double-cliquons ici, vous remarquerez que c'est juste ici lors de la poursuite des joueurs. Le problème est donc avec le joueur Chase. Évidemment, nous allons régler cela aussi, la caméra sera réparée. Et enfin, ce problème est également ici et l'objet de jeu du joueur actif et hiérarchie. Donc tout cela sera corrigé et juste un peu. Je vais donc annuler cette pause et
régler les problèmes un à la fois. Alors arrêtez ça, ouvrez ça, le jeu commence. Alors ouvrez les scripts. Et que devons-nous faire ? Tout d'abord, je pense que nous allons résoudre le problème de la caméra principale. Donc, si nous allons à la manette du lecteur où nous utilisons la caméra
principale. Double-cliquez sur la caméra principale et faites défiler vers le bas voir où nous l'utilisons. Nous l'utilisons. On y va, dans le pointage de l'arme. Donc ici, je suis simplement le moment de vérifier si la caméra principale est égale à null. Cela signifie que nous n'avons pas d'appareil photo. Je vais dire que la caméra principale est égale à la caméra principale. Et cela ne se produira qu'une fois que nous
vérifions que la caméra est nulle. Cela signifie que nous n'avons pas de référence. Si c'est le cas, nous allons régler la caméra principale. Une fois encore. Si ce n'est pas le cas, nous continuerons régulièrement, avec le pointage d'un pistolet tout au plus. Donc, de retour dans notre jeu va courir. Le jeu va reprendre celui-ci, s'ouvrant. Quelque chose d'autre ? Nous allons passer par là. Et de l'autre côté, nous verrons dans la scène. On y va. Vous pouvez voir que je suis capable de le souligner, mais évidemment, la caméra dans le monde du jeu ne se concentre
pas sur le joueur. Et c'est quelque chose que nous devrons évidemment fléchir. Alors, passons à la réparation. Je vais entrer dans mes scénarios. Et ici, pendant que nous sommes, nous appellerons ça, où devrions-nous appeler cela ? Voyons voir, où avons-nous mis la caméra de forme ? Pouvons-nous le savoir ? Nous ne savons pas quoi ? Allons simplement dans les scripts et mettons ça à l'intérieur des managers. Managers, gestionnaires, gestionnaires. n'y a pas de gestionnaires. D'accord. Donc, les gestionnaires, pour une raison quelconque, nos caméras. On y va. Donc, et les caméras, je vais créer un contrôle de caméra
ou un contrôleur de camp de caméra. Appuyez sur Entrée, attendez qu'il soit compilé. Double-cliquez ici, et je vais faire quelques choses. Alors, quoi ? Je fais toujours quelques choses. Alors, quelles sont les choses que nous allons faire ? Tout d'abord, ce que nous voulons faire ici, c'est toujours trouver automatiquement la cible du joueur. Auparavant, ce que nous avions l'habitude de faire, c'était si nous allions à
la caméra ici et au camp virtuel, nous avons dit le joueur suivant. Et le problème, c'est que lorsque nous allons dans un nouveau monde, permettez-moi de vous montrer en détail, aurais
dû vous le montrer avant. Donc si, par exemple, j'ai
ici le joueur, je clique sur lui, il est dans la hiérarchie. J'ai ouvert la porte, j'appelle à un autre niveau. Vous remarquerez maintenant que si j'ouvre à nouveau les caméras, qui sont exactement la même caméra virtuelle, vous pouvez voir que la suite est manquante, donc il n'y a pas de lecteur. Pourquoi ? Parce que nous avons déjà réglé le joueur, mais maintenant il a été détruit. Il a disparu, il faut donc les retrouver à nouveau. Donc ici, je vais ouvrir ça et je vais créer une variable qui est le joueur à chasser, qui va évidemment être,
voyons, la transformation ou pas d'atlas fait de lui la couche de contrôleur de couche à regarder. Et il va être égal pour trouver un objet de type. Le joueur, oh, non, non, non, pas ici. Les coûts diminuent et commencent. Nous allons dire que le calque à regarder est égal
à trouver des objets de type, et qu'il s'agira de la manette du joueur. Nous avons maintenant une référence à la manette du lecteur qui crée
également une caméra virtuelle. Donc, la machine de cinéma, caméra
virtuelle hérite également nous devons doubler et C en utilisant cin, une machine. On y va, sauve ça. Donc, machine de
cinéma, machine de cinéma, caméra virtuelle, merci. Ça va être le verbe. Caméra virtuelle. Et nous allons le mettre ici dès que nous commencerons. Il va donc être égal pour obtenir un composant. Et où sommes-nous ingénieur ? Où doit-on fixer le contrôleur de la caméra ? Nous voudrions peut-être le joindre à la conférence. Nous nous attacherons aux caméras virtuelles afin de pouvoir
accéder immédiatement à la même caméra virtuelle de machine ici. Alors obtenez un composant. Et ce sera la caméra virtuelle de la machine de cinéma. On y va. Et que va-t-on faire ici ? Eh bien, nous allons configurer la caméra virtuelle
en haut pour qu'elle soit égale à la couche pour regarder la transformation des points. Ce sera donc au début, mais une mise à jour, nous devrons créer une boucle while. Nous avons donc déjà couvert les boucles. Et ça va être de vérifier que le joueur regarder alors qu'il est égal à null. Cela signifie que nous n'avons pas encore trouvé de joueur. Nous allons continuer à chercher le joueur à regarder. Continuez à trouver la manette du joueur jusqu'à ce qu'on les trouve enfin. Une fois que nous les avons
trouvés, si nous avons une caméra virtuelle. s'agit donc que d'une étape supplémentaire pour éviter toute erreur. La caméra virtuelle ne suit pas. Il sera égal au joueur. Nous allons sauver cela. Et regardons encore une fois ce que nous avons fait. Tout d'abord, nous avons créé la manette du joueur, qui est une variable que nous allons regarder les joueurs, qui est une variable de
la manette du joueur, une caméra virtuelle. Ils sont tous privés. On peut nommer le privé. Je n'ai juste pas eu le temps. Vous savez quoi, veillons simplement que nous n'ayons pas de confusions ici. Si privé, privé parce que nous n'en aurons pas besoin chez l'inspecteur. Nous pouvons définir M si nous le voulons. Nous n'avons pas à le faire. Commencez ensuite. Nous allons trouver la manette du joueur. C'est juste au cas où. Nous commençons et nous avons le joueur dans la scène, puis nous trouvons la caméra, puis nous avons configuré la caméra de suivi pour qu'elle soit le joueur à regarder. N'ayez qu'un seul joueur dans n'importe quelle scène, car nous nous en sommes déjà assurés ici. Et le motif Singleton. On y va. C'est ce qu'on appelle le motif singleton, en gardant à l'esprit que chaque fois que vous le dites à quelqu'un,
il pensera que vous êtes très intelligent. Croyez-moi, même si c'est singleton signifie un seul objet. Alors, juste au cas où ils vous demanderaient ce qu'est un motif singleton ? Quoi qu'il en soit, le point de la caméra virtuelle suit, nous suivons le seul joueur que nous trouvons,
puis une mise à jour juste au cas où c'est pour, disons que le joueur qui ne se détruit pas charge généralement avant tous les autres. objets. Donc juste au cas où nous commencerons le match, nous ne trouvons pas le joueur immédiatement qu'il a disparu. Nous ne pouvons pas le résoudre comme suit. Suivez ensuite une mise à jour que nous continuerons à parcourir jusqu'à ce que nous trouvions que le joueur vérifie si nous avons une caméra virtuelle. Ce n'est qu'une étape supplémentaire. Je ne pense pas que nous en aurons besoin, même pas une seule fois parce que nous allons attacher le script à la caméra virtuelle, mais au cas où il n'y a pas de caméra virtuelle, nous vérifierons la condition et ensuite nous va définir le point de suivi de la caméra virtuelle, sauvegardez-le ici. Allons-y. Et donc les caméras,
voyons, secouons et
secouons le contrôleur de la caméra à travers la caméra virtuelle. Et pour une raison quelconque, je vois que ce n'est pas un préfabriqué. Est-ce que c'est sur préfabriqué ça. Alors quand l'université préfabriquée, alors que les armes vous êtes un pauvre pour niveler les objets ici. Non. D'accord. Je vois donc que je ne préférais pas les caméras pour une raison quelconque que je pensais le faire. Mais de toute façon, c'est juste préférer les camps et ici. Et vous pouvez voir que la caméra virtuelle aura le contrôleur de camp. Alors, sauvegardez ça. Laissez-moi passer à l'autre niveau. Je ne vais pas faire ça à tous les niveaux. Je vais juste le faire avec ceux que nous testons, tout
réparé et ce sera probablement la même chose. Donc, les caméras et ici je vais le supprimer. Et je vais revenir aux préfabriqués et m'
assurer d'ajouter les caméras ici dans la hiérarchie. Sauvez tout ça. Ouvre ça, ok, on dirait que
tout semble bien. De retour dans les scènes. De retour dans le crâne, c'est sauver ça, lancer le jeu. Allez à la porte, ouvrez-la, passez au niveau suivant. Et nous devrions voir, nous y allons. Nous avons donc de nouveau trouvé le lecteur et maintenant les caméras fonctionnent parfaitement bien. Super. Donc maintenant, si nous regardons en arrière dans la console, nous avons toujours le problème du fait que
le joueur soit pourchassé, pas amusant. Et parce que je vois que cette vidéo dure déjà assez longtemps, je vais me positionner ici et ensuite nous
allons continuer dans la vidéo suivante. J'espère que vous avez apprécié. C'est un sujet un peu ennuyeux, je sais, mais au moins vous avez appris ce qu'est un modèle singleton. Vous avez compris pourquoi la caméra n'était pas en marche. J'essaie d'expliquer autant que
possible même si c'est très ennuyeux. Mais je veux que vous compreniez ce que tout se sent. Au début, j'étais aussi confus, mais au fur et à mesure que
j'ai tout traversé, j'ai compris les choses et je voulais vous les transmettre. Alors, avec ça,
merci d' avoir regardé et je vous verrai dans le prochain.
103. Mise en page finale: Bienvenue Mes développeurs de jeux préférés à la dernière vidéo et celle-ci nous allons corriger tous
ces petits détails liés à l'affichage de l'interface utilisateur, liés au Bitcoin venant de niveau niveau et tout les autres trucs amusants. Donc, ne perdons plus de temps et commençons. Oh, d'accord, donc maintenant nous devons résoudre le problème du fait que nos ennemis ne trouvent pas le joueur. Nous voulons également
nous assurer que le gestionnaire de jeu un modèle singleton car nous voulons évidemment maintenir nos bitcoins de niveau à niveau. Pour cela, je vais lancer un défi, et votre défi est de trouver le joueur et de le trouver. Tout d'abord, assurez-vous que les ennemis continuent de
chercher le joueur jusqu'à ce que nous le trouvions. Cela devra donc être une boucle de temps à l'intérieur de la mise à jour et du contrôleur ennemi. C'est un petit lui. Nous voulons garder nos Bitcoins d'une scène à l'autre. Faites donc du gestionnaire de jeu un motif singleton comme nous l'avons fait avec la couche. Assurez-vous de faire de même pour le gestionnaire de jeu. Est-ce qu'il apparaît dans la hiérarchie et le résident détruit-il ? Alors rappelez-vous que lorsque nous avons fait détruire la couche d'application Aidan, elle est apparue dans la hiérarchie sous un certain onglet, ce qui est fait surDestroy. Le gestionnaire de jeu apparaît-il également ? Alors testez-le parce que nous devons nous assurer que le gestionnaire de jeu n'est pas un enfant des managers. Donc la seule façon de s'assurer qu'il ne soit pas détruit est de
s'assurer qu'il n'est pas un enfant de l'ensemble des gestionnaires objets de jeu si bien que cette information. Mettez la vidéo en pause maintenant et allez le faire seul. Oh, d'accord, bon retour. Donc, d'abord nous allons entrer dans le contrôleur ennemi. Défilons vers le haut pour mettre à jour et une mise à jour ici. Je vais vérifier que même si le joueur à chasser est égal à null, nous allons aller de l'avant et amener le joueur à chasser
ou à définir dipolaire pour qu'il poursuive pour trouver des objets de type. L'objet cinq, désolé. Et ce sera la manette du joueur. Et il va s'agir d' transformation en
v points parce que déclaré chasser, comme nous nous en souvenons, est un transport. Nous accédons donc à la transformation après avoir affiné l'objet qui a la manette du joueur sur lui. Cela devrait donc fonctionner, mais tant que nous sommes là, allons voir où est le gestionnaire de jeu ? Faites défiler l'instance vers le haut. Et ici, je vais trouver la manette du joueur. Et ça joue maintenant, ok, donc la manette du joueur, c'est ici. Je vais copier exactement le même code et le
coller ici et supprimer cette instance. Gardez ça. Nous avons donc maintenant un modèle singleton. Nous vérifions s'il y a une instance, nous la détruisons. Si l'instance est différente de null, nous avons détruit et nous avons défini une nouvelle instance. Nous sauvegardons tout cela. Revenons dans notre jeu et voyons ce que nous devons faire ici. La première chose que nous devons faire, c'est d'ouvrir le gestionnaire de jeu ici et de supprimer le gestionnaire de jeu. Non, cela ne me permettra pas de voir dans le préfabriqué si j'ai déjà les gestionnaires de gains. Alors Manager, le gestionnaire de jeu. Je vais donc ouvrir les managers et je vais supprimer le gestionnaire de jeu. Cela supprimera donc le gestionnaire
de jeu de toutes les autres scènes. Et je vais m'assurer que je
n'ai que le gestionnaire de jeu ici. Donc aucun autre manager, un seul, désolé pour ça. Nous n'avons besoin du gestionnaire de jeu que dans la scène. Donc maintenant nous avons le gestionnaire de jeu, nous avons 0 mais les pièces. Sauvons tout ça. Rendez cela un peu plus grand. Allons-le encore une fois. Et voyons ce qui se passe. Donc on ramasse l'arme, devient un peu de pièces, on se fait frapper une fois. Passons au niveau suivant. Voyons voir, nous passons au niveau suivant. Et nous y allons, Nous sommes au nouveau niveau et nous pouvons voir que, pour une raison quelconque, avons-nous les ennemis qui suivent ? Non, ils ne suivent pas. Il y a quelque chose qui cloche. Et comme vous pouvez le constater, les bitcoins
et la santé n'ont évidemment pas été mis à jour. Et c'est parce que si nous regardons le joueur, si nous regardons le ne détruisez pas le gestionnaire de jeu, les Bitcoins n'ont pas non plus été. Donc si on regarde le joueur, vous remarquerez que sa santé est de 490, mais il n'est pas envoyé ici. Pourquoi ? Parce que nous ne mettons à jour, laissez-moi voir, et le responsable de la santé du joueur, nous ne mettons à jour l'état de santé du joueur qu'une fois que nous sommes touchés et non au moment où nous commençons réellement. Nous devrons donc régler cela également. Mais avant de le faire, il y a quelque chose qui
n'est pas tout à fait approprié avec la MS. Je vais donc mettre le jeu en pause
ici et voyons quel est le problème. Vous pouvez donc voir que chacun de nos ennemis n'est pas en mesure de nous trouver. Je vais donc double-cliquer. Et le problème, c'est avec le joueur Chase ici. Voyons donc ce que nous allons faire à ce sujet. Oh, d'accord, donc j'ai passé en revue quelques choses et j'ai finalement trouvé la solution. Le problème ici était donc, et c'est très simple, nous devons simplement déplacer cela tout en boucle ici. Et nous voudrions peut-être extraire cela en une sorte de méthode. Je vais donc appeler cette méthode pour trouver un joueur ou m'assurer que nous avons le joueur. Alors pourquoi le déplacer ici ? Eh bien, parce que si nous essayons d'appeler le mouvement vers la direction, sauvez cela. Alors, quel est le problème dans tout le problème et tout ce qui en est à
l'origine, c'est quand nous
passons à un nouveau niveau avant que la couche, qui est celle qui ne soit pas détruite, passe au niveau suivant. Les ennemis ont déjà une cible, qui était le joueur précédent. Donc, une fois que nous l'avons détruit, nous ne pourrons plus le trouver. Donc si nous essayons ça, disons que nous voulions qu'ils atteignent le nouveau niveau, nous avons tous les joueurs chasser ensemble juste ici dans le début et puis nous le détruisons. Ensuite, nous essayons de poursuivre le joueur ou de nous diriger vers le joueur, et c'est de là que vient l'erreur. Ici, nous essayons donc de poursuivre le joueur. Et une fois qu'il y a une erreur ici,
rien en dessous de cela ne fonctionne. La mise à jour s'arrête, tout s'arrête. C'est pourquoi nous devons avoir le joueur de recherche. Tout d'abord, nous faisons une mise à jour avant de continuer, alors que nous aurons peut-être juste besoin la déclaration if ici, je crois, mais gardons cela aussi, au cas où cela prendrait un peu cinq. Donc, avec cela, si nous lançons maintenant le jeu, nous devrions le voir quand nous passons au niveau suivant. Nous y allons, nous n'avons aucune erreur. On ouvre ça et on y va. Les ennemis lâches s'enfuient et ils tirent dessus. La
prochaine chose que nous devons faire est évidemment mettre à jour l'interface utilisateur du lecteur. Je vais donc entrer dans le gestionnaire d'interface utilisateur. Nous arrêtons le jeu. Oui, nous l'avons fait. De retour dans le gestionnaire d'interface utilisateur. Ici, je vais créer une méthode qui sera
l'interface utilisateur de la couche de mise à jour publique. Et nous allons faire quelques choses ici. La première chose que nous allons faire, c'est que nous allons créer un gestionnaire de santé des joueurs. La santé de la couche profonde est colorée, et elle sera égale à null. Et vous verrez pourquoi dans un peu, car nous allons créer une boucle de while qui vérifiera la santé du joueur. Et même s'il est nul, nous allons continuer à chercher la santé du joueur soit égale pour trouver des objets de type. Et ce sera le gestionnaire de la santé des couches. Et une fois que nous l'avons trouvé, nous pourrons sortir de la boucle while. Et puis ici, nous allons aller de l'avant et d'abord obtenir la valeur maximale du curseur de santé. Et il sera égal à la valeur maximale du point de
santé du joueur . Il est donc évident que nous devons créer un moyen d'
accéder au maximum sur le gestionnaire de santé du joueur. Qu'avons-nous d'une année, d'accord, donc ils sont sérialisés sur le terrain. Allons de l'avant et créons un public et obtenons une santé de couche maximale. Et nous allons juste retourner V-max. Je n'ai pas eu. Nous en avons déjà un. Non, nous ne le faisons pas. Allons de l'avant et créons la bonne couche, la santé
actuelle aussi longtemps que nous sommes ici. Donc, la santé actuelle et de quoi avons-nous besoin d'ici ? Nous aurons peut-être besoin du, Nope, je pense que c'est tout ce dont nous avons besoin. Donc, maintenant, nous pouvons obtenir un maximum de santé. Ensuite, nous devrons définir la valeur du point du curseur de santé pour qu'elle soit égale au point santé de
la couche pour obtenir l'état de santé actuel. Gardez ça. Que devons-nous faire d'autre ? Nous devons également trouver un moyen de mettre à jour notre texte. Je vais donc dire le, comment s'appelait-il ? Le texte sur la santé, s'agit-il de l'étape des technologies de la santé ? On y va, et c'est aussi public. Super. Faites défiler ici. Ainsi, le
texte de points fléchis de santé et de santé sera égal au point de santé du joueur à jour. La santé actuelle. Et c'est plus la barre oblique. Et c'était la santé maximale. Donc le point de santé du joueur GetMax self. On y va. Donc, tout est prêt, mais je vais faire quelque chose ici. Et c'est vrai, un journal de points de débogage. Et je veux juste suivre les mêmes actes Santé. Et laissez-moi juste prendre celui-ci. Et cela aura du sens dans un peu. J'ai tellement bouleversé celui-là. Et vous verrez pourquoi dans un peu. Je vais donc sauver tout ça. Je vais retourner dans Unity. Je vais diriger le jeu. Je vais choisir un appartement qui deviendra les Bitcoins. Faites-vous frapper. S'il vous plaît, prenez-le Bon, donc on y va. Parcourez le monde, passez par le portail, passez au niveau suivant, et vous pouvez voir que c'est 100 ici, même si j'appuie sur la couche, c'est pour 90. Quel est, selon vous, le problème ? Je vais juste vous donner quelques secondes pour y réfléchir. Le problème était et je vais vous dire quel est le problème. Tout d'abord, nous devons mettre à jour la santé des joueurs. Mettez donc à jour l'intégrité de la couche ou l'interface utilisateur du lecteur. Maintenant, allons le tester. Vous l'avez peut-être vu dans le débogueur. Je viens de remarquer que nous ne les appelions même pas méthodes. Alors, tu y vas. Le débogage fonctionne, je vais l'obtenir. Passez par la larve, passez par le portail. Et quelle est la santé ? La santé maximale est donc de 50 et la santé actuelle est 0. Selon vous, quel est le problème ? Eh bien, le problème est comme nous l'avons dit dans la vidéo précédente, nous avions déjà un joueur la scène et ce joueur a été détruit. Donc, une fois que nous voulons fixer cette barre de maison et la taxe, elles sont fixées en fonction de l'ancien joueur. Donc, pour définir le nouveau joueur, que pensez-vous que nous devrions faire ? Bien qu'il existe de nombreuses solutions à ce problème, mais j'ai trouvé que la meilleure consiste simplement à faire passer d'une d' voix publique
à un art public et à un numérateur. Et ensuite, nous allons donner un rendement. Nouveau. Attendez quatre secondes. Et attendons 0,1 et ce sera le moment pendant que, n'oubliez pas, nous avons une image évanouie que nous avons désactivée juste pour accélérer le processus de test. Maintenant, ce qui va se passer, c'est que nous attendrons 0,1 seconde et pendant ce temps le joueur plus âgé sera détruit, le nouveau joueur sera retrouvé et nous recevrons immédiatement notre mise à jour. Donc ici, au lieu de mettre à jour le lecteur, je vais commencer une co-routine, qui sera la mise à jour de la couche de santé vous. Je l'ai sauvegardé dans notre jeu. Nous gérons le jeu. Nous l'avons compris. Nous sortons, nous passons par celui-ci, et nous y allons. Nous pouvons constater que notre santé a été mise à jour et qu'elle est très transparente. On y va, on voit que tout fonctionne parfaitement bien. Et tout d'abord, nous avons aussi les Bitcoins, donc nous devons corriger cela également ici. Et ce que nous voulons également faire, c'est que nous voulons nous
assurer que nous sommes apparus dans la bonne position. Donc, actuellement, répondez juste à côté du portail, ce qui n'est pas utile. Notre objectif est d'accéder à ce portail et non pas de simplement apparaître là-dedans. Je vais donc, tout d'
abord ici, voir ce que nous devons faire. Nous devons donc avoir le texte Bitcoin, les effets BTC. On y va. Donc le texte BTC, le texte est égal à trouver ou non, nous avons le gestionnaire de jeu, l'instance. Oui, mais continue. On y va, je crois que celui-ci retourne les bitcoins tous connus sous le nom de Bitcoin. Donc, si je vais au gestionnaire de jeu pour avoir, obtenez Bitcoin actuel, afin que je
puisse obtenir des Bitcoins actuels, sauvegardez-le. Et cela devrait fonctionner, sauf que ce n'est pas parce que vous ne pouvez pas
convertir implicitement le type et deux chaînes. Donc, les deux cordes, cela convertit n'importe quoi de la chaîne de jeu, sauf ça. Essayons ça un peu du jeu. Et maintenant, nous prenons une pièce et nous passons au niveau supérieur. Bon, donc maintenant, nous devrions voir que nous avons ici dix, nous y allons. Cela prend du temps, mais cela ne sera pas perceptible, surtout une fois que nous aurons l'image du destin, mais nous devons maintenant engendrer le joueur à un certain moment. Je vais donc entrer dans le responsable de niveau et je vais le
faire au niveau manager. Et je vais faire défiler vers le bas ici. Et je vais créer une nouvelle méthode. Donc, ici, nous allons créer une nouvelle méthode qui est un vide public et sa couche spot et son lecteur de points et d'entrée en point, nous allons obtenir l'instance de points du contrôleur du joueur, point pas instancier, point danse, joue une manette de balle. Ok, donc instance de contrôleur de couche. Et nous allons utiliser la position de transformation des points et elle sera égale à une sorte de point d'apparition, la position. Et maintenant, je vais copier ceci et créer un champ sérialisé ici. la transformation et ce sera le point d'apparition. Faites défiler vers le bas et voyez à quoi cela ressemble. Oui, on y va. Ce qui se passe ici, c'est que nous mettons le joueur sur le point dès le départ. Par où commence-t-il ? Ici, nous allons mettre le point de calque. Nous sauvegardons tout cela. Et ce qui se passe ici, c'est
dès que le gestionnaire de niveaux démarre, rappelez-vous que ce n'est pas un destructeur de tonnes, ce n'est pas un seul combat sur l'instance de
point du contrôleur du joueur , la position du point est
placée . immédiatement sur place. De retour ici, nous avons déjà ces points de paume. Nous sommes des points d'apparition 1. Je vais donc créer un nouveau ici et ça va être une couche sur le spawn. Et où est-ce que c'est et la scène. Voyons voir, et ça va se passer ici. Sauvez que si nous passons à un autre niveau, nous pouvons réellement aller de l'avant et passer outre cela. Donc, dans le gestionnaire, remplacez et vous pouvez choisir ce que vous voulez remplacer ? Gardez à l'esprit que nous ne voulons pas
écraser les points d'apparition, car pour chaque niveau il y aura un point d'apparition différent. Je vais donc appliquer
le remplacement du gestionnaire de niveau préfabriqué,
peut-être aussi appliquer le gestionnaire de préférence écraser. On y va. Et ici, le joueur engendre des points. Allons de l'avant et appliquons
également le préfabriqué à l'ensemble du préfèrent. Ok, super. Assurez-vous donc de ne pas postuler. Tout, sauvez tout ça. Et maintenant, je vais diriger le jeu. Je vais passer à un nouveau niveau. Et nous devrions le faire. Non, nous ne l'avons pas fait. C'est parce que nous, oh, d'accord. OK. OK. Donc le problème est ici et 11 manager, quel est le problème ici ? Si nous faisons défiler jusqu'à eux, nous apparions point et le gestionnaire de niveaux. Quel est le problème ? On y va aussi, c'est ici. Nous devons le régler. Et maintenant, nous devons nous adresser aux gestionnaires de niveau et appliquer les modifications. Maintenant, lorsque nous courons, nous devrions voir si nous passons au niveau suivant. Non, ça ne fonctionne toujours pas. Quel est le problème ? La variable n'a pas été affectée. Je pense donc qu'il y a quelque chose qui ne s'installe pas rapidement ici. Appliquez donc au gestionnaire de niveau préfabriqué. Et quel est le problème d'autre ? Je pense donc qu'à l'autre niveau, le point d'apparition n'est pas correctement réglé. J'essaie donc d'appliquer les modifications. Peut-être que cette fois ça marchera. Non, ce n'est toujours pas le cas parce que si nous
allons au gestionnaire de niveau du manager, point d'apparition du
joueur sur le gestionnaire de niveaux, il n'est même pas défini. Alors, que pensez-vous d'un problème ici, c'est que
je pense que nous avons commis une erreur parce que tout ici a été réinitialisé. Vous pouvez donc voir ici que ces derniers ne sont pas fixés. Je vais donc tout postuler pour l'instant. Ce n'est pas la meilleure idée, mais ne nous inquiétons pas pour l'instant. Je vais passer au niveau suivant et m'assurer que nous apparaissons enfin sur le bon point. Mais à l'heure actuelle, nous allons aussi frayer. Et ici, comme vous pouvez le voir, mais nous ne voulons pas cela parce que chaque niveau
aura ses propres ennemis, aura ses propres niveaux, désolé ,
vagues, etc. Mais comme vous pouvez le constater, tout fonctionne. Le seul problème qui reste dans notre jeu est le fait que lorsque nous passons à la porte, cela surgit la première fois et lorsque nous l'ouvrons, quand nous partons,
cela ne disparaît pas. Je veux dire, les mots n'apparaissent plus et la porte ne se referme pas. Pourquoi ? Parce que dans la pièce que vous avez créée et c'était une erreur de ma part. Nous éteignons la porte. Nous éteignons donc la porte, mais l'affichage du texte est toujours sur la porte. Je vais donc vous laisser un dernier défi. Faites en dehors du domaine des partitions. Il suffit retirer ce texte affiché de
la porte et de le placer sur le portail ici, puis de le déplacer ici. Le Canvas devra donc être frappé à la porte, il devra être sur le portail et vous devrez éteindre la porte en fonction du texte, il y aura quelques changements dans le code. Mais je pense qu'à ce stade, vous êtes devenu un bon développeur de jeux à un niveau
aussi élevé avec toutes les longues longues vidéos que je vous ai enseignées. J'espère que cette vidéo vous a plu. J'espère que vous avez apprécié ce cours. J'espère que vous avez beaucoup appris. J'espère que vous apprécierez le voyage et le processus. Et j'espère que vous n'étiez pas trop en colère quand j'ai commis des erreurs. J'espère que vous appréciez la transparence que je vous montre. Et si vous n'avez pas déjà, bien
sûr, laissez-moi un commentaire, assurez-vous de vous joindre à la discorde et je ne vous verrai peut-être pas dans la vidéo suivante car
celle-ci, c'est la dernière. Peut-être qu'un jour dans le futur, nous resterons en contact. Ne vous inquiétez pas à ce sujet. Merci beaucoup d'avoir regardé. Au revoir.