Transcription
1. Pourquoi vous devriez regarder ce cours: Vous avez donc appris à ajouter un corps rigide en tant que composant à un objet de jeu, vous avez peut-être même vérifié ce qu'est un corps rigide dans la documentation d'Unity. Et maintenant, vous connaissez toutes les propriétés et les méthodes. C' est mignon. Mais pouvez-vous ajouter un corps rigide à un objet de jeu, commence à le déplacer, ajouter des animations pour faire marcher les sprites dans un monde que nous avons construit en utilisant un jeu de tuiles. Permettez-lui d'interagir avec le monde et de passer d'une scène à l'autre. Oh, et aussi avoir un script qui est plus de 600 lignes de code pour gérer notre système de combat avec six autres scripts de combat qui fonctionnent tous ensemble des systèmes tels que les objets. Mon nom est Michael Moore, fondateur de WM game dev, et mon objectif est de vous faire le meilleur
développeur de jeu de la manière la plus amusante possible et a développé une stratégie qui a aidé des milliers de jeux en
herbe les développeurs ont atteint leurs objectifs de créer les jeux du monde réel. Et je veux faire la même chose pour toi. Ce que j'ai appris, c'est qu'il peut être très difficile de savoir par où commencer et quelles mesures prendre pour passer du débutant au intermédiaire au professionnel. Non seulement dans le développement de jeux, mais dans la programmation et l'apprentissage du codage. Et c'est là que la stratégie intervient. Je l'appelle la pyramide inverse, où nous commençons par apprendre les concepts très fondamentaux et la programmation C-Sharp, moteur
Unity et la conception de jeux à l'aide de diapositives et de la documentation unitaire, nous utilisons immédiatement ce que nous avons appris pour améliorer notre jeu. Mais on ne s'arrête pas là. Nous continuons à utiliser ce que nous avons appris de manière plus complexe et amusante. Nous plongons plus profondément que n'importe quel autre cours. Et pour le moteur Unity, programmation
C-Sharp et la conception de jeux. Et le plus étonnant, c'est que nous faisons tout ça. Mais la dernière version d'Unity était les dernières techniques et le contenu et le développement de jeux modernes. Et je peux dire avec des scores de confiance absolue, il est facile pour tout débutant avec 0 expérience de codage de sauter et commencer à apprendre à créer des jeux incroyables. J' ai aidé des milliers de personnes à créer des jeux du monde réel et je veux que tu sois l'une de ces personnes. Alors, comment allons-nous faire ça ? Maintenant ? Nous avons beaucoup de sections. Je crois qu'il y a 15 sections, donc je vais jeter un coup d'œil sur eux vraiment, très vite. Nous avons donc la Section 1, qui est l'introduction et la configuration, va télécharger Unity, télécharger Visual Studio, parler de l'interface, créer notre premier programme et comprendre comment utiliser ce cours, qui est l'examen que vous regardez en ce moment. Nous avons la Section 2, qui est le joueur. Nous allons de l'avant et ajoutons un calque, ajoutons des animations pour apprendre des choses fondamentales comme des corps rigides dans les collisionneurs et ainsi de suite dans l'unité. Ensuite, nous commençons à regarder des scènes va créer plusieurs niveaux. Donc, le premier niveau où notre joueur va résider va être dans une ville. Alors je crois que nous allons dans une sorte de montagne ou quelque chose comme ça. Nous comprendrons également la gestion vue et comment Scene Manager peut passer d'une scène à l'autre en utilisant les collisionneurs que nous avons appris précédemment. Et puis nous allons en apprendre davantage sur les cartes et la machine centrale. Nous allons donc utiliser des jeux de tuiles pour créer nos propres cartes. Et vous allez créer vos propres cartes. Vous allez ajouter votre propre travail pour le jeu. Et nous allons utiliser l'une des dernières techniques et l'unité, qui est les machines Cinna pour nous permettre de suivre le joueur pendant qu'il se déplace autour du NADPH. Ensuite, nous allons ajouter Doyle du bio parce que quel genre de RPG n'a pas de dialogue. Nous pouvons donc interagir avec différents accents et ainsi de suite. Mais alors regardez dans les statistiques des joueurs. Donc, comme vous le savez, dans chaque RPG aurait la force, défend le mono sain et ainsi de suite et ainsi de suite. Vous comprendrez comment nous pouvons créer tout cela et c'est très important. Cette section ici aussi, où nous plongons profondément dans C Sharp et les choses commencent à devenir un peu complexes, mais ne vous inquiétez pas à ce sujet. Je vous conduirai à travers chaque étape très facilement, donc vous n'aurez pas à vous confondre. Ensuite, nous avons la Section 7, qui est le système de menu, parce que évidemment nous avons besoin d'une sorte de menu où nous pouvons aller aux éléments, aux statistiques des personnages pour peut-être que nous voulons simplement enregistrer et charger et ainsi de suite. Ensuite, nous avons le système d'inventaire, évidemment parce que nous avançons à travers le monde va apprendre à créer des articles, comment ramasser des articles, comment ajouter à chaque article que toutes les statistiques et les ajouter à l'inventaire que nous avons créé dans le système de menu ajoutera un système de monnaie. Et par mon système, je veux dire, nous allons prédire un peu cohérent si vous n'êtes pas familier, ne vous inquiétez pas, nous en parlerons aussi. Et nous aurons évidemment des magasins où nous pouvons acheter certaines icônes au lieu de simplement les ramasser et les sauvages, et ils peuvent aussi les vendre. Nous allons parler de quêtes parce que évidemment chaque rôle RPG VIP dans RPG, jeu de rôle, RPG est évidemment là où vous avez des quêtes à compléter. Nous aurons la sauvegarde et le chargement va apprendre comment le jeu des pièges fonctionne en détail. Et nous allons apprendre à économiser la charge et toutes ces bonnes choses. Et la sauvegarde et la charge seront appliquées à l'inventaire, aux objets, à l'argent, aux statistiques des joueurs et tout cela. C' est ce que je voulais dire quand je parle de la pyramide inverse. Nous avons donc appris les bases que nous avons créées. Disons que nous avons appris un peu de C-Sharp. C' est ça. Ensuite, nous avons appris à créer de l'argent, des stocks et autres. Et puis nous utilisons l'ordre des préfs du joueur pour combiner tout cela ensemble. C' est ce que je voulais dire par pyramide. Vous commencez par les bases et nous continuons à construire sur tout ça. Ensuite, nous allons également ajouter de la musique et de la pratique sonore, parce que évidemment quels jeux il n'a pas utilisé, il manque vraiment de saveur et de caractère s'il n'y a pas de musique et d'effets sonores. Et enfin, les quatre dernières sections sont personnellement mes préférées parce que nous allons construire un système de combat. Nous commencerons avec le système de combat régulier où nous allons
tout mettre en place et commencer certaines batailles et charger les ennemis et les joueurs jusqu'à ce combat. Ensuite, nous verrons comment l'ennemi peut attaquer et être dans la section 4, intangible, voir comment le joueur peut attaquer. Et enfin, nous allons voir comment nous pouvons tuer des ennemis, tuer des couches, et les Béthel donnent des
récompenses, des récompenses, etc. Alors, à quoi devriez-vous attendre d'ici la fin des scores ? Tu deviendras un maître résolveur de problèmes. Vous comprendrez les principes fondamentaux du codage et apprendrez à programmer des jeux, comme ceux que vous voyez à l'écran en ce moment. Vous aurez également la chance de fléchir les muscles de votre développeur de jeux car avec chaque vidéo, il y a un mini défi pour la boucle complète. Et même si vous pouvez comprendre comment faire le défi, Ne vous inquiétez pas, Je serai là pour vous aider éthique essayé et compléter le défi avec. Tout dans notre gain sera configurable. Ainsi, vous pouvez ajuster, jouer autour et donner les jeux et sensation individuelle et spéciale sur. Vous y mettrez votre propre créativité et vous en ferez vraiment la vôtre. Je suis tellement excité de commencer et j'espère que tu l'es aussi. C' est le moment idéal pour commencer à apprendre à coder. Alors plongez avec moi et je vous aiderai
tout au long de votre parcours de développement de jeu. Et je te verrai dans la prochaine vidéo.
2. Section 1 : Comment utiliser ce cours: Bienvenue de retour, Mes développeurs de jeux préférés. Et cette vidéo, en fait, et pas dans cette vidéo. J' ai créé cette vidéo afin de
maximiser le potentiel d'apprentissage de ce cours. Donc, je vous veux, je veux vous guider à travers quelques étapes que nous pouvons utiliser afin de
tirer pleinement toute l'énergie d'apprentissage du cours que vous suivez actuellement parce que vous avez déjà, vous dépensez déjà votre temps ici. Alors pourquoi ne pas le maximiser ? Donc, la première chose que nous allons comprendre est le fonctionnement des questions et réponses. Alors que vous regardez les vidéos, vous les regardez à travers, peut-être que quelque chose arrive qui ne devrait pas pleinement comprendre. Donc, ce que vous pouvez faire, c'est d'aller de l'avant et de glisser dans les discussions juste ici. Et vous pouvez voir que vous avez plusieurs options. Vous pouvez commencer une conversation, poser une question ou simplement partager un projet. Donc ici, vous pouvez me poser n'importe quelle question que vous voulez. Aucune question n'est de limite. Mais il y a un petit pas que vous devez faire avant de me poser une question. Et c'est-à-dire, allez-y et faites vos propres recherches. Pourquoi je te demande de faire ça ? Eh bien, parce que parfois, quand vous tomberez sur un problème et que vous allez de l'avant et que vous cherchez une solution vous-même, et alors vous le trouvez ou vous ne le trouvez pas. Et quand tu reviens me poser la question, c'est beaucoup plus facile à comprendre. Pourquoi c'est ça ? Parce que vous avez déjà fait quelques suggestions, peut-être qu'aucune d'entre elles n'était appropriée. Mais au fur et à mesure que vous allez trouver la solution à votre problème, vous avez acquis beaucoup de connaissances. Et quand tu viendras me voir, quand tu demanderas à Michael et nous passons ensemble à trouver la solution, tu comprendras comment tout clique et plus tard, quand tu rencontreras peut-être le même problème ou peut-être que tu verras ça problème pour un autre étudiant. Vous pouvez les aider et c'est beaucoup plus facile. Et enfin, chaque fois que vous trouvez une solution à votre question à votre question et y ajoutez un préfixe de sel
parce que d'autres étudiants peuvent avoir le même problème et ils trouveront une solution à leur problème s'ils voient le préfixe résolu derrière elle. Et enfin, avant de partir, vous voulez juste dire une chose qu'il n'y a pas de question de limite. n'y a pas de questions stupides, il n'y a pas de questions stupides. Il n'y a que des développeurs de jeux non professionnels. Personne n'est né professionnel. Nous devons tous apprendre à travers les essais et les erreurs. Vous ne croiriez pas comment citer une citation, mes questions étaient stupides. Parce que je, o, je suis, je ne suis pas né un professionnel dans l'unité m'a pris des années de pratique, d' essais et d'erreurs ou de poser des questions, de googler des choses. C' est donc un processus. Ne vous inquiétez pas, n'ayez pas peur, ne soyez pas à l'abri de certaines des questions que vous pourriez vouloir poser. Soyez assez courageux pour aller chercher une solution si vous n'en trouvez pas, ne inquiétez
pas, laissez juste une question. Je réponds toujours, toujours à tous mes élèves et nous
plongons toujours aussi profondément que nécessaire afin de trouver une solution à n'importe quel problème. Et maintenant, parlons du serveur Discord. Et c'est là que vous pouvez aller plus loin dans la communauté que nous avons créée ici sur le développement de jeux d'armes de destruction massive. Donc, vous pouvez aller soit 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 vous recommande de rejoindre la discorde. Pourquoi ? Parce que la plupart du temps, cela pourrait me prendre quelques heures pour répondre
en fonction d'où venez-vous. Alors peut-être que nous vivons dans des fuseaux horaires différents. Peut-être que quand vous me poserez la question, il est minuit et vous avez besoin d'une solution rapide. Je dors peut-être, je ne pourrai peut-être pas accéder à mon ordinateur. Il est donc très bénéfique pour vous de rejoindre le canal de discorde que nous avons créé. Et laissez-moi vous montrer la chaîne de score juste ici. C' est le début de notre chaîne de discorde. Vous pouvez voir que nous avons la communauté en général. Nous avons le chat C-Sharp, nous avons le chat de conception de jeu, nous avons le spectacle de votre jeu. Nous avons les questions générales de développement du jeu. Et vous pouvez voir qu'on n'a toujours rien ici parce que c'est assez nouveau car j'enregistre ça. Mais plus tard, quand vous entrerez ici, vous remarquerez qu'il y a une énorme communauté de gens qui attendent pour vous
aider et peut-être des gens qui attendent de vous aider. Et c'est très bénéfique d'essayer de résoudre la question des autres. Tu ne croirais pas ce que j'ai appris en aidant les autres. Et vous pouvez voir ici que nous avons plusieurs cours. Ce sont tous les cours que double m jeu gamma vers le bas a ou j'ai créé. Et nous pouvons voir aussi nous pouvons partager des mèmes et ici nous avons des discussions générales sur le jeu, jeux
AAA, je ne sais pas ce que vous aimez jouer. Nous pouvons en discuter ici et le canal social ou la catégorie et ainsi de suite et ainsi de suite. Je vous recommande donc de rejoindre notre serveur discord. C' est très amusant. On va s'amuser beaucoup là-bas. Et c'est tout. C' est tout ce que je voulais dire sur le serveur Discord. Passons maintenant aux diapositives du défi. Alors, quelles sont les diapositives contestées ? fur et à mesure que
vous vous déplacez dans chaque vidéo, vous remarquerez qu'à un moment donné, je vais vous dire de mettre la vidéo en pause et de commencer le défi. Donc, quand vous verrez cette diapositive, vous allez attendre que je termine tous les points et ensuite vous devez mettre la vidéo en pause. Pourquoi je insiste sur le mot, avoir un patron ? Parce qu'il est beaucoup mieux d'apprendre en faisant et pas simplement en regardant de nombreux cours que j'ai appris de ce que j'ai personnellement pris là où je me sentais manquer dans le département de le faire. Tu restes assis, tu regardes quelqu'un créé à nouveau. D' accord. C' est très bien. Et maintenant, c'est fini. D' accord ? Et puis tu finis le cours. Et après quelques semaines, vous remarquez que vous ne savez pas vraiment faire quoi que ce soit. Donc, les diapositives de défi que j'ai créées sont extrêmement importantes parce que vous commencez à faire au lieu de regarder. Et même si vous ne savez pas comment faire le défi, ne vous inquiétez pas à ce sujet. Je serai là pour vous aider une fois que vous aurez essayé et vous aider à relever le défi avec vous. Donc, vous n'êtes jamais laissé seul. Et en plus de cela, tout comme regarder les réponses à vos questions avant de les poser dans les questions, quand vous faites un défi, vous tomberez sur plusieurs variables que vous n'auriez peut-être pas prises en compte auparavant. Et quand vous verrez comment je termine le défi, vous l'aurez bien mieux enraciné dans votre tête lorsque vous avez rencontré le même problème lorsque vous commencez à créer vos propres jeux. Et maintenant, continuons et terminons avec la structure du parcours. Maintenant, nous avons beaucoup de sections. Je crois qu'il y a 15 sections, donc je vais jeter un coup d'œil sur eux vraiment, très vite. Nous avons la Section 1, qui est l'introduction et la configuration, va télécharger Unity, télécharger Visual Studio, parler de l'interface, créer notre premier programme et comprendre comment utiliser ce cours, qui est la vidéo que vous regardez en ce moment. Ensuite, nous avons la Section 2, qui est le joueur. Nous allons de l'avant et ajouter un joueur aux animations et simplement comprendre comment tout va fonctionner avec apprendre des choses fondamentales comme les corps rigides, les collisions et ainsi de suite et l'unité. Ensuite, nous commençons à regarder des scènes va créer plusieurs niveaux. Donc, le premier niveau où notre joueur va résider va être dans une ville. Alors je crois que nous allons dans une sorte de montagne ou quelque chose comme ça. Et puis ainsi de suite et ainsi de suite. Nous comprendrons également la gestion vue et comment un gestionnaire de scène peut
nous faire passer d'une scène à l'autre en utilisant les collisionneurs que nous avons appris précédemment. Ensuite, nous allons en apprendre davantage sur les cartes et la machine de cinéma. Nous allons donc utiliser des jeux de tuiles pour créer nos propres cartes. Et vous allez créer vos propres cartes. Vous allez ajouter votre propre saveur au jeu. Et nous allons utiliser l'une des dernières techniques et l'unité, qui est la machine Cinna pour nous permettre de suivre le joueur comme il se déplace autour de la carte. Ensuite, nous allons ajouter du dialogue ou gagner, parce que quel genre de RPG n'a pas de dialogue ? Sérieusement, nous devrons ajouter un système de dialogue dans notre jeu pour pouvoir interagir avec différentes ambassades et ainsi de suite. Eh bien, regardez dans les statistiques des joueurs. Comme vous le savez, dans chaque RPG, nous avons la force, défense, la santé, le mana et ainsi de suite et ainsi de suite. Vous comprendrez comment nous pouvons créer tout cela et c'est très important. Cette section ici aussi, où nous plongons profondément dans C-Sharp et les choses commencent à devenir un peu complexes, mais ne vous inquiétez pas à ce sujet. Je vais vous emmener à travers chaque étape très facilement, donc vous voulez avoir à vous confondre. Ensuite, nous avons la Section 7, qui est le système de menu. Parce que évidemment nous avons besoin d'une sorte de menu où nous pouvons aller aux éléments, aux statistiques des personnages pour peut-être que nous voulons juste enregistrer et charger et ainsi de suite. Ensuite, nous avons le système d'inventaire, évidemment parce que nous avançons à travers le monde va apprendre à créer des articles, comment ramasser des articles, comment ajouter à chaque article leurs propres statistiques et
les ajouter à l'inventaire que nous ont créé dans un système manuel. On va ajouter un système de monnaie. Et par système monétaire, je veux dire, nous allons créer un système Bitcoin si vous n'êtes pas familier, ne vous inquiétez pas, nous allons en parler aussi. Et nous aurons évidemment des magasins où nous pouvons acheter certains articles au lieu de les ramasser dans la nature, et nous pouvons aussi les vendre. Nous allons parler de quêtes parce que évidemment chaque RPG, le rôle dans RPG TR pour le jeu de rôle, RPG est évidemment là où vous avez des quêtes à compléter. Nous aurons la sauvegarde et le chargement va apprendre comment les préfs des joueurs fonctionnent en détail. Et nous allons apprendre à économiser la charge et toutes ces bonnes choses. Et la sauvegarde et la charge seront appliquées à l'inventaire, aux objets, à l'argent, aux statistiques des joueurs et tout cela. C' est ce que je voulais dire quand je parle de la pyramide inverse. Nous avons donc appris les bases que nous avons créées. Disons que nous avons appris un peu de C pointu. Ensuite, nous avons appris à créer de l'argent, des stocks et autres. Et puis nous utilisons les préfs du joueur et l'ordre pour combiner tout cela ensemble. C' est ce que je voulais dire par pyramide. Nous commençons par les bases et nous continuons à construire sur tout cela. Ensuite, nous allons également ajouter de la musique et des effets sonores parce que évidemment quel jeu ? Et il n'a pas de musique, il manque vraiment de saveur et le caractère s'il n'y a pas de musique et d'effets sonores. Et enfin, les quatre dernières sections sont personnellement mes préférées parce que nous allons construire un système de combat. Nous commencerons par le système de combat régulier où nous allons
tout mettre en place et commencer certaines batailles et charger les ennemis et les joueurs dans cette bataille. Ensuite, nous verrons comment l'ennemi peut attaquer. Et le, dans la Section 14, alors nous verrons comment le joueur peut attaquer. Et enfin, nous allons voir comment nous pouvons tuer des ennemis,
tuer des couches, et la bataille,
donner des récompenses, des récompenses et ainsi de suite et ainsi de suite. Donc, avec tout cela dit, je veux juste vous dire que la chose la plus importante dans les
scores est que vous puissiez maximiser autant que possible. Toutes les informations qui sont ici, vous avez déjà pris le temps de commencer les scores. Donc mes deux conseils que je veux te donner. Tout d'abord, chaque fois que vous rencontrez un problème dans votre propre recherche, si vous ne trouvez pas de solution ou si vous ne trouvez pas de solution appropriée à votre problème, assurez-vous de poser une question. n'y a pas de question de limite, pas du tout. troisième astuce consiste à rejoindre le serveur Discord. Il est très important de se joindre à la communauté pour avoir le sentiment que vous n'êtes pas seul dans la bataille, la bataille. Et pense où est le quatrième conseil que j'ai est de suivre jusqu'à la fin. Vous commencerez donc par apprendre les bases mêmes. Peut-être que vous avez déjà un peu de connaissance et d'unité. Si vous le faites, peut-être que certaines sections sembleront un peu stagnantes parce que je passe chaque étape très, très attentivement. Parce que beaucoup de, disons, peut-être que vous êtes l'un d'eux. Tu n'as peut-être aucune idée de comment fonctionne C-Sharp. Tu n'as aucune idée de comment ça marche. Donc, vous avez besoin de soins supplémentaires et de ralentir. Donc, si vous êtes déjà familier avec l'unité, verra forte. Certaines vidéos peuvent sembler un peu lentes, mais comprennent que c'est très important pour d'autres étudiants essaient d'apprendre à partir de zéro. Donc, avec cela dit, ne perdons plus de temps. Et passons à la prochaine vidéo.
3. Téléchargez Unity et Visual Studio étape par étape: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons télécharger Unity, bloquer et
intégrer avec elle les outils Visual Studio dont nous allons avoir besoin pour les partitions. Alors commençons. La première chose que vous devez aller dans Google et ensuite
aller, allez simplement taper ici, télécharger 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 le get unit bien sûr, et cliquez sur le téléchargement Unity, qui ouvrira cette page ici. Donc ici, vous devrez télécharger Unity Hub si vous n'avez jamais utilisé Unity auparavant. Maintenant, 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 sera partout sur notre ordinateur, quelque part dans différents répertoires et ainsi de suite. Donc, le Hub Unity rend vraiment beaucoup plus facile de passer par votre projet et d'avoir vraiment, si vraiment une bonne organisation. Assurez-vous donc que vous téléchargez Unity en fonction du système d'exploitation que vous avez. Donc, si vous avez le macOS, vous devez vous assurer de télécharger le macOS Unity 40. Et si vous avez un Windows 7, alors 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 juste ici. Lorsque vous double-cliquez dessus, il vous demandera, voulez-vous ? Oui. Donc, vous continuez sur, vous cliquez sur Accepter, vous choisissez la destination où vous voulez placer votre Unity Hub. Et puis vous démarrez l'installation. Maintenant, parce que j'ai déjà installé Unity Hub, je ne vais pas l'installer à nouveau. Alors assurez-vous que vous installez tout et je vous verrai dans un peu. Oh, ok, bienvenue. Donc, si vous avez installé Unity Hub correctement, vous devriez recevoir ici un message ou une fenêtre qui ressemble à ça. Maintenant, nous n'avons pas encore de projets, mais c'est là 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. Donc c'est mon compte ici. J' ai utilisé mon Google Gmail pour créer un compte sur Unity. Vous pouvez soit créer un nouveau compte, soit utiliser votre Gmail ou Facebook. Je ne sais pas s'ils le permettent. Et une fois que vous avez créé un compte sur Unity, vous pouvez aller directement ici dans les installations. Et c'est là que nous téléchargeons différentes versions d'Unity. Maintenant, pour ce cours, j'utiliserai la dernière version d'Unity que nous avons actuellement. Maintenant, si vous voulez installer une nouvelle version d'Unity ou n'importe quel type de 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 soigneusement testés et ils fonctionnent parfaitement. Mais vous pouvez aussi aller chercher les versions 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 pré-release est maintenant
les communiqués de presse fonctionnent de la même manière que la version officielle et les communiqués recommandés, mais ils sont parfois un peu buggy et vous pouvez rencontrer quelques bugs sur les versions officielles. Il peut également être capable de boguer problème, mais ils ne sont pas aussi évidents que dans les versions précédentes. Vous ne rencontrerez peut-être 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 antérieures. Téléchargez donc la dernière version que vous avez sur votre ordinateur. Ou actuellement, peut-être que vous êtes du futur et que vous avez une version plus récente que moi. Alors téléchargez 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 de l'avenir. Maintenant, nous allons cliquer sur Suivant juste ici. Et c'est une partie très importante du téléchargement et de l'installation d'Unity maintenant. Et ici, nous avons des modules, et ces modules sont comme des add-ons à notre unité qui nous permettent de créer des jeux sur différentes plateformes. Ainsi, par exemple, ici vous pouvez voir que nous pouvons maintenant charger des modules pour différentes plates-formes. Ainsi, par exemple, si vous voulez créer un jeu sur Android, vous pouvez utiliser le module pour Android. Ou si vous voulez créer un jeu pour iOS ou des icônes et ainsi de suite. Vous pouvez également chercher à créer des jeux pour Linux ou Mac OS ou quoi. Donc, en fonction de ce que vous voulez créer, vous pouvez choisir l'un de ces modules de modèle, ou vous pouvez juste 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 de l'Unité et elles sont très importantes. Peut-être que parfois tu veux 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'ai aucune idée. Peut-être que vous pouvez utiliser l'un de ces modules linguistiques. Mais la chose la plus importante, et vous devez vous assurer que vous avez Microsoft Visual Studio Community 2019 ou plus récent installé avec votre unité. Parce que nous allons utiliser Visual Studio pour coder tout, tout et tous les comportements des objets que nous créons l'immunité. Maintenant, c'est tout ce que vous avez à faire. Il suffit de cliquer sur Suivant et vous commencerez l'installation de votre unité. Donc, avec cela 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 disposez d'un Windows, vous téléchargez la version de Windows. Ensuite, vous devez télécharger la dernière version. Et enfin, assurez-vous que vous téléchargez également Visual Studio with Unity. Alors arrêtez la vidéo dès maintenant et allez de l'avant et téléchargez l'unité avec Visual Studio. Et dans la prochaine vidéo, nous allons simplement passer sur l'interface de l'unité et Visual Studio que vous venez de voir nous pouvons dépasser nos craintes initiales. Alors je te verrai dans la prochaine.
4. 101 et: Bon, donc bienvenue dans une autre vidéo. Voyons ce qu'est l'unité ? Unity est un moteur de jeu multi-plateforme développé par Unity Technologies. Nous utiliserons Unity pour développer notre jeu. Alors, que signifie Cross-plateforme ? Cela signifie que nous pouvons l'utiliser sur différentes plateformes. Et c'est un moteur de jeu. Et quel est le moteur de jeu, c'est un environnement pour nous de développer des jeux, d'ajouter la physique et d'ajouter différentes choses pour créer notre jeu. Alors voyons à quoi
ressemble Unity et je vais vous expliquer quelques choses là-dessus. Donc c'est l'unité. Tout d'abord, nous avons cette barre d'outils juste ici au-dessus de tout. Et cela donne accès aux fonctionnalités de travail les plus essentielles. Sur la gauche, nous avons
les outils de base pour manipuler la vue de la scène et les objets de jeu qu'elle contient . Au centre, nous avons le jeu, la pause et le bouton de contrôle stub. Et les boutons de droite vous donnent accès au compte Unity Collaboration, Unity Cloud Service et Unity, et ne vous apporteront pas grand-chose à cela. Sur le côté droit de ceux-ci, nous avons le menu de l'unité de visibilité des couches. Et nous avons l'éditeur, qui fournit des mises en page alternatives pour la fenêtre de l'éditeur et vous permet d'enregistrer vos propres mises en page personnalisées. Donc, si vous n'avez pas la même disposition que moi,
vous pouvez simplement cliquer ici sur la mise en page et vous pouvez choisir la mise en page par défaut. Et c'est le joueur par défaut que nous avons. Ce sont les projets ici, l'inspecteur et tout. Ensuite, nous allons parler de la fenêtre de hiérarchie juste ici. Il s'agit d'une représentation textuelle hiérarchique de chaque objet de jeu dans notre scène. Ainsi, chaque élément de la scène a une entrée dans la hiérarchie. Ainsi, les deux fenêtres sont intrinsèquement liées. La hiérarchie suivante révèle la structure de la façon dont les objets de jeu sont attachés les uns aux autres. Donc ici, nous avons la scène de l'échantillon. Et si nous cliquons dessus, nous avons la caméra principale en dessous. Et si nous ajoutons un autre objet de jeu, il apparaîtra également ici. Et voici l'inspecteur, comme vous pouvez le voir à droite. Ceci est l'inspecteur de fenêtre et il donne, il vous permet d'afficher et de modifier toutes les propriétés de l'objet de jeu actuellement sélectionné. Donc, si vous ne sélectionnez pas l'objet du jeu, nous ne voyons rien. Lorsque nous cliquons sur la caméra principale, nous avons ces différentes fenêtres ici, et les mises en page et le contenu du compteur de la fenêtre de l'inspecteur ont changé chaque fois que vous sélectionnez un objet de jeu différent. Donc maintenant, nous n'avons pas d'objet de jeu différent, alors nous allons juste nous installer pour la caméra. Suivant. Ensuite, nous avons est cette vue de scène juste ici. Et la vue de la scène vous permet de visualiser, de naviguer et de modifier votre scène. La vue de scène peut vous montrer une perspective 3D ou une perspective 2D en fonction du type de projet que vous utilisez. Donc, dans les scores seront en utilisant la vue du projet 2D, mais vous pouvez également écrire ici, cliquez sur le bouton pour le bouton et il ira 3D. Comme vous pouvez le voir, nous avons cette vue 3D mais nous n'aurons pas besoin, elle ira simplement en mode 2D. Et enfin, je veux parler de la fenêtre du projet ici, qui affiche votre bibliothèque et les actifs qui sont disponibles à utiliser dans votre projet. Ainsi, lorsque vous importez des actifs dans votre projet, ils apparaîtront ici. Donc, par exemple, pour l'instant, nous n'avons pas d'actifs, aurait seulement le dossier scènes. Et à l'intérieur du dossier des scènes, nous avons cet exemple de dossier. Voici donc un aperçu rapide de l'unité et de ce que sont tous ces panneaux et gadgets. Nous allons, bien sûr, les
approfondir au fur et à mesure que nous suivrons le cours. Mais maintenant, je veux parler de la, quelque chose de très important et c'est le Visual Studio. Alors, qu'est-ce que Visual Studio ? Visual Studio est un Microsoft Visual Studio. Il est bien utilisé, il est développé par Microsoft et c'est un IDE. Et IDE est un environnement de développement intégré. Et ce qu'il fait, en fait, si vous me demandez dans Visual Studio, nous
aidera à écrire le code utilisé pour manipuler des objets de jeu dans l'unité et en utilisant quelque chose appelé scripts. Alors, comment utiliser Unity avec Visual Studio ? Nous avons donc besoin d'un moyen pour l'unité et Visual Studio de communiquer. Mais ils ne le font pas simplement. Nous devons y ajouter quelque chose appelé le fichier CSS point, et c'est nos scripts. Et ces scripts sont, en fait, nous prenons ces scripts, nous les attachons à des objets de jeu, et l'utilisation de ces scripts sera en mesure d'ajouter un comportement trop différent. sortes d'objets de jeu, et nous le verrons très, très bientôt. Alors, allons dans Visual Studio et voyons de quoi il s'agit. C' est Visual Studio. Et peut-être que la première fois que vous l'ouvrirez, vous aurez différents panneaux ici à droite et les fenêtres avant juste ici à gauche. N' hésitez pas à les fermer tous. Et ne vous inquiétez pas de ce qui se passera ensuite. Bien sûr, vous ne l'aurez pas la première fois que vous démarrez Visual Studio, mais vous le verrez assez tôt. Et je vais juste vous présenter quelques lignes de codes ici. Alors, nous allons zoomer un peu. Et ici, en haut, vous pouvez voir que nous utilisons des collections système. Nous utilisons des collections de timbres génériques. Et surtout, nous utilisons le moteur Unity. Qu' est-ce que tout ça ? Eh bien, c'est ce qu'on appelle les espaces de noms. Et fondamentalement ce sont des bibliothèques qui nous donnent la possibilité d'utiliser différents types de manteau. Ainsi, par exemple, le moteur Unity, que nous avons ajouté ici, nous
permet d'utiliser pour la méthode de démarrage et la méthode de mise à jour et différents moteurs pour créer des jeux et le rendre beaucoup plus facile. Et nous écrivons simplement ici en utilisant le moteur Unity. Et cela nous permet d'économiser beaucoup d'or et nous donne toute la bibliothèque à utiliser. Ensuite, nous avons le nom de classe publique. Et c'est le, en fait le ClassName, qui devrait être juste ici. Ce sera le script dont nous avons parlé et il sera attaché à un objet de jeu. Et il englobera tout le code qui va changer le comportement de notre objet de jeu et le comportement
mono est une classe de base et c'est en fait ces deux signifient qu'il hérite du comportement mono, qui lui permet d'utiliser différents types de manipulations, moteur et physique, etc. Et la prochaine chose que nous avons est le début et au-dessus c'est quelque chose qu'on appelle le commun. Donc, chaque fois que vous écrivez du code et ajoutez ces deux lignes ici, il va commenter les choses et les commentaires ne sont pas exécutés dans le GOP, le code, le code, le code et ils sont parfaitement sûrs. Donc, il commence, start est appelé avant la première mise à jour de trame. Donc, dès que notre jeu commence, la méthode de démarrage, et c'est ce qu'on appelle une méthode que nous allons commencer à exécuter. Ensuite, nous avons la mise à jour, et la mise à jour est appelée une fois par franc. Donc, chaque image que nous avons dans notre jeu, la mise à jour est appelée. Par conséquent, start est généralement utilisé pour donner les propriétés ou configurations initiales à certains objets. Et la mise à jour est utilisée pour les objets qui se déplacent ou changent chaque image. Donc, si nous avons une voiture, par
exemple, et
que nous commençons, nous pouvons lui donner la couleur, le nom, la vitesse à laquelle elle peut aller. Une mise à jour va déplacer la voiture, fera le saut, fera la voiture aller plus vite, peut-être augmenter sa vitesse. Vous obtenez donc l'idée de base de Visual Studio et maintenant il est temps de relever votre défi. Votre défi est d'aller faire une messe. Alors ouvrez Unity, créez un projet. Et si vous ne savez pas comment créer un projet, nous le ferons dans la prochaine vidéo. Et quand vous aurez fini, après avoir fait de la masse de foin, allez à la vidéo suivante et nous ferons notre premier code et commencerons. Je te vois dans la prochaine vidéo.
5. Votre premier code: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons créer notre premier code et nos premiers objets de jeu. Comme vous pouvez le voir ici, nous avons un objet de jeu appelé Hello World dans notre cœur et notre hiérarchie. Il est présent dans notre scène, même si nous ne le voyons pas très bien. Et nous avons le script ici attaché à lui. Nous avons également créé les critères de script dans notre projet. Et dans la console. Si nous cliquons sur Play, nous obtenons effectivement un message qui affiche Hello Michele, qui est moi. Dans votre cas, il va afficher votre nom. Je suis donc très excité pour cette vidéo parce que c'est notre première immersion dans le monde de l'unité. J' espère que vous avez apprécié la vidéo et je vous verrai dans un peu. Ok, donc la première chose que nous allons faire est d'ouvrir le Hub Unity. Et actuellement, vous n'avez pas de projets ici, ce qui changera dans la première chose que nous ferons est de cliquer sur Nouveau ici. Et nous devrons choisir un modèle pour notre jeu. Nous allons donc créer un jeu 2D, pas une 3D. Et ce sont différentes options également pour différents tuyaux de projet. Ensuite, nous aurons besoin d'ajouter un nom de projet. N' hésitez pas à le nommer ce que vous voulez. Nous allons l'appeler pour l'instant, le Hello World, le projet. Et assurez-vous de choisir un emplacement pour vos projets Unity. Donc, nous allons cliquer sur celui-ci et revenons en arrière et le sauvegarder dans les projets Unity. Alors sélectionnez le dossier et maintenant nous avons un emplacement pour notre jeu. Tu dois le faire. Tout ce que vous devez faire maintenant est de cliquer sur le béton. Donc, cliquez sur Créer et Unity va commencer à créer votre projet. Et je ne vous ennuierai pas avec l'attente ici. Je vais utiliser la magie de l'édition et je vais simplement sauter dans le projet. Alors, on se voit dans un peu. Bienvenue de retour. J' espère donc que votre projet a également terminé la mise en place. Donc c'est notre scène. Si vous n'avez pas ce genre de vue, comme je vous l'ai dit,
vous pouvez toujours aller à la mise en page et choisir la mise en page par défaut. Et nous aurons la même disposition, tous les deux. Donc, avant de commencer, passons tout d'abord à quelque chose appelé la console. Et comme vous pouvez le voir, avant même de commencer quoi que ce soit, nous avons cette fenêtre de console juste ici. Et ce que cela fait, c'est qu'il nous montre les messages. Et nous allons utiliser cette fenêtre de console pour voir les choses qui vont imprimer à partir de notre code. Et si vous ne l'avez pas, vous pouvez simplement monter ici dans la fenêtre, cliquer dessus. Et juste au-dessus ici, vous pouvez voir sur le général aura la console, alors cliquez dessus, une fenêtre devrait apparaître et vous pouvez l'ancrer où vous voulez. Je vais l'ancrer ici pour les projets. Dans une autre chose dont je veux parler est dans le, où vous avez enregistré votre projet. Je l'ai sauvegardé dans D, Unity projets et Hello world. Donc, comme vous pouvez le voir, nous avons différents dossiers ici. Nous avons les atouts, tenons nos scènes et tout ce que nous créons et projetons. Vous pouvez voir les actifs et les actifs du projet ici. Nous avons aussi la bibliothèque qui a créé automatiquement chaque fois que nous entrons dans un projet, nous avons des journaux,
nous avons des paquets, nous avons des paramètres de projet, tout cela bien que tous ces détails ne seront pas trop dans. Et le dossier temporaire, dont nous discuterons plus tard dans le tube magique du jeu. Revenons à Unity. Et ici, nous allons créer notre jupe. Alors faisons un clic droit ici. Et allons dans Créer et créer. Nous pouvons réellement créer plusieurs choses, comme vous pouvez le voir, nous allons en faire quelques uns dans notre projet, mais pour l'instant nous allons simplement créer un script C-Sharp. Alors cliquez sur ça. Et avant de faire quoi que ce soit, alors ne fais rien, laisse tout. Vous devez vous assurer que chaque fois que vous nommez un script, vous le faites avec précision car cela provoquera une erreur plus tard si vous voulez essayer de renommer votre script. Assurez-vous donc de le nommer correctement dès le début. Donc, nous allons nommer ce monde de bonjour sans espace et cliquer sur Entrée lorsque vous êtes sûr que vous avez décidé sur le nom du script. Alors cliquez sur Entrée et je vais vous dire pourquoi dans un peu. Comme vous pouvez le voir, nous avons quelque chose ici dans l'inspecteur. Et cela a pris un peu de temps et c'est parce que l'unité a besoin de compiler le code ici. Et vous pouvez voir le code dans l'inspecteur. Et pourquoi je vous ai dit qu'il est si crucial de s'assurer que le nom du script ici est défini avant de cliquer sur Entrée car il va être le nom de notre classe. Donc, si vous changez le nom de notre script ici, Tick Nom ne changera pas. Et il y aura une erreur où l'unité ou le studio visuel ne
sera pas en mesure de trouver le bon script dans le projet et cela provoquera des erreurs. Donc, pour éviter cela, assurez-vous
simplement que vous nommez votre script correctement et précisément dès le début. Maintenant, que devrions-nous faire ensuite ? C' est très simple. Vous double-cliquez simplement sur Hello World et le Visual Studio devrait s'ouvrir. Et comme vous pouvez le voir ici, c'est
ce que nous avons décrit quelques peut-être dans la vidéo précédente. Alors, qu'est-ce qu'on va faire ici ? Nous allons simplement imprimer quelque chose sur notre console et nous le ferons en stock. Alors allons de l'avant et imprimons. Donc, comme vous pouvez le voir immédiatement, Visual Studio, notre grand ami commence à nous aider et il donne une suggestion pour ce que nous voulons utiliser. Donc, nous écrivons l'impression et il nous donne la suggestion. Et maintenant, vous pouvez simplement cliquer sur Tab et il le terminera pour vous. Et maintenant, nous ouvrons nos parenthèses et nous pouvons voir que Visual Studio nous aide à nouveau. Et il nous dit que nous devons ajouter un message objet à l'intérieur d'ici. Ce message d'objet va être une chaîne. On parlera de cordes plus tard. Mais pour l'instant, string est une chaîne de caractères que nous mettons à l'intérieur de ces deux guillemets ici. Alors allons de l'avant et ajoutons ces deux guillemets une nouvelle fois. Et maintenant nous écrivons à l'intérieur de ces deux citations, bonjour monde. Alors, est-ce suffisant ? En fait, non, parce que si vous voyez ici, nous avons cette ligne rouge squigggly. Et si nous survolons,
il nous dit qu'il attend un symbole, qui est celui-ci. Et chaque ligne de code dans C Sharp, vous devez ajouter ce point-virgule ici. Alors, sauvegardez ça. Et maintenant, parce que nous l'avons mis au point, dès que nous commençons notre jeu, ce message devrait être imprimé sur la console. Alors essayons ça. Nous retournons dans Unity et nous entrons dans la console. Mais si nous cliquons sur le jeu, comme vous pouvez le voir, rien n'est affiché sur notre écran. Pourquoi c'est ça ? Parce qu'il ne suffit pas de créer un script, vous devez en fait l'attacher à un objet. Donc, créons un objet. Et comme nous le faisons,
nous entrons simplement dans notre hiérarchie. Nous faisons un clic droit sur ici. Nous pouvons créer un objet de jeu vide. Cliquez dessus, et maintenant nous avons un objet de jeu. Allons-y. On peut changer le nom de cet objet de jeu. On l'appellera. Appelons ça bonjour objet monde. Cliquez sur Entrée, et en dessous, vous pouvez voir que nous avons la transformation. Et cette transformation nous indique la position de notre objet de jeu dans le monde. Et ici, nous avons les outils à manipuler. Donc, si vous cliquez sur le tabouret, il peut effectivement mettre l'objet vers le haut ou faire glisser l'objet vers le bas, le
prendre à gauche ou à droite et le mettre où nous voulons. Et actuellement, nous ne pouvons pas voir que nous n'avons rien à représenter ou objet de jeu. Nous avons simplement ses ordonnées et sa transformation. Alors attachons le script de cet objet de jeu. Pour ce faire, il vous suffit de cliquer sur le script et faire glisser dans la hiérarchie et vers les objets hello world. Donc, si vous cliquez sur Hello word objet juste ici, vous pouvez voir qu'il a un script juste en dessous de la transformation qui lui est attachée. Et maintenant, si nous cliquons sur jouer dans la console, nous pouvons voir que nous avons bonjour monde. Félicitations, vous venez d'écrire votre première couche et vous venez d'utiliser votre premier objet de jeu pour afficher quelque chose sur la console. Allez noter, et maintenant c'est l'heure de votre défi. Votre défi est d'imprimer votre propre banque. Donc, au lieu de bonjour monde, vous devrez imprimer votre propre nom. Alors, changez Helloworld en bonjour. Et au lieu de ces trois points, bien
sûr, ce sera votre propre nom. Je vais vous donner quelques indices. Alors ajoutez votre nom et la taille des points. Enregistrez Visual Studio. N' oubliez pas toujours d'enregistrer Visual Studio, nous utilisons le contrôle que vous allez dans Unity et cliquez sur Play et vérifiez votre console. Alors assurez-vous que cela fonctionne. Mettez la vidéo en pause et allez faire le défi. Oh, comment tu t'es trompé avec ça ? J' espère que vous avez fait de votre mieux et ce défi. Allons dans Visual Studio. Et au lieu de monde, je vais supprimer ça et je vais mettre mon propre nom, qui est Michelle. Alors, bonjour Michelle. Et nous allons juste ajouter une exclamation ou trois points d'exclamation pour l'effet dramatique. Et pour vous assurer que vous avez enregistré votre projet. Je veux dire ton script. Quand vous regardez ici, vous pouvez voir qu'il a une petite attaque d'astérix, aussi stricte que les médicaments qui y sont attachés. Et pour enregistrer ce que vous cliquez sur, et cela signifie qu'il n'a pas été enregistré. Donc, quelques maintiennent Contrôle, S, cliquez sur contrôle. Comme vous pouvez le voir que l'astérisque que trixie disparaît, ce qui signifie que le script a été enregistré, retournez dans Unity. Et vous pouvez voir qu'il y a un astérisque juste ici, également à côté de la scène de l'échantillon. Alors, sauvegardez ça. Et maintenant, si nous allons à la console, vous pouvez voir ici que nous avons ce bouton clair. Ou si vous cliquez vers le bas, vous pouvez voir que nous pouvons cliquer sur Play. Vous pouvez supprimer ça. Sentez-vous libre. Ça n'a pas d'importance. Nous allons simplement le supprimer pour voir les changements qui se produisent à l'heure actuelle si nous cliquons sur Play, nous aurons bonjour Michelle, ou bonjour, quel que soit votre nom en tant que mes collègues étudiants. Et c'est 0. Donc clair que, qui s'efforcent à nouveau, cliquez sur jouer et bonjour Michelle. Bonjour, Mes développeurs de jeux préférés. J' espère que vous apprécierez la vidéo et je vous verrai dans la prochaine.
6. 101: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons tout apprendre sur le contrôle de version, arborescence des
sources et la création de référentiels de nos projets. Donc, 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 en fait nous avons renversé quelque chose. Nous avons créé notre commit initial, ajouté un cube, retourné. Nous pouvons réellement inverser ce commit. Une boîte. Alors cliquez sur Oui. Comme vous pouvez le voir, nous pouvons retourner à Unity Reload et nous avons notre cube juste ici. Nous allons tout apprendre dans les moindres détails. Alors donne-moi toute ta 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 êtes engagé à devenir un programmeur professionnel ou développeur de jeux. Alors ne perdons plus de temps et commençons. O k. Donc contrôle de version et mettre sur mon contrôle de version laser. C' est dur à apprendre. C' est encore plus difficile à enseigner, mais je vais essayer de le garder aussi simple que possible. Et quand vous en aurez 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
cherchez à devenir un développeur de jeux professionnel ou même un programme professionnel. Alors commençons par ce qui est. Tout d'abord, c'est 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 changements dans nos programmes, nous pouvons réellement enregistrer ces changements à chaque étape de notre projet. De cette façon, on peut d'abord vérifier ce qu'on a fait. Nous pouvons créer différents types de versions où nous
pouvons revenir en arrière et changer les choses que nous avons créées. Il permet un meilleur travail d'équipe. Par exemple, disons que vous avez quatre ou cinq personnes travaillant sur le même projet, mais que chacune d'entre elles a une tâche différente qu'elles doivent 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 allons l'utiliser pour nous souvenir de la version précédente de notre jeu et avoir plus de flexibilité à expérimenter. Habituellement, le développement de jeux est un environnement où vous avez besoin de beaucoup d'expérimentations. Par exemple, vous voulez ajouter une sorte de propriété à une sorte d'objet de jeu et peut-être qu'il casse l'ensemble de votre projet. Donc, vous voulez toujours avoir une version précédente de votre projet avant d'ajouter ce jeu break mécanique. Donc, vous pouvez 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 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 a une interface très simple que nous pouvons utiliser en tant que débutants. Alors continuons et téléchargeons l'arborescence des sources. Laissez-moi vous montrer où nous pouvons faire ça. Si vous ouvrez Google Chrome ou n'importe quel navigateur que vous avez, allez
simplement sur Google et ici, télécharger l'arborescence des sources. Vous devriez trouver un lien juste ici, et il devrait être l'arbre source. En haut. Lorsque vous cliquez dessus, vous allez directement ici à leur site Web. Si vous faites défiler 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 que vous cliquez ici et que vous téléchargez 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 avez un Windows, téléchargez la version Windows. Assez simple. Maintenant, quand vous aurez fini de télécharger, vous devriez obtenir ce fichier ici. Et lorsque vous double-cliquez dessus, vous devriez démarrer l'installation. Maintenant, parce que j'ai déjà l'arbre source, je ne vais pas l'installer une autre fois. Je vais juste vous emmener à travers le processus d'installation réelle. Ok, donc c'est la première fenêtre qui va apparaître pour toi. Tout d'abord, vous devez accepter la licence, bien sûr. Et vous pouvez peut-être désactiver cette option si vous ne voulez pas courriels à partir de l'arbre source et ainsi de suite à la leçon. La prochaine chose que vous devez faire est que vous devez créer un compte à l'occasion, vous pouvez aller à lysine et placer comme la société mère de l'arbre source peut aller de l'avant et créer un compte là, ou vous pouvez utiliser un compte existant si vous avez déjà avoir un Gmail. Personnellement, j'en crée un en utilisant Gmail. C' est beaucoup plus rapide, C'est beaucoup plus facile et ils ne vous spam pas avec beaucoup d'e-mails. Ensuite,
nous allons le connecter à un compte. Maintenant, c'est, bien sûr, que nous ne le ferons pas. Si vous voulez héberger votre code sur certains sites comme GitHub ou Bitbucket. Nous ne ferons pas cela, donc vous pouvez simplement cliquer ici sur la configuration ignorée. Enfin, lors de l'installation de l'arborescence source vous dira qu'il est incapable de localiser get. Donc, pour compléter cela, il suffit de cliquer sur Télécharger et la version incorporée de Git et continuer. Et puis il peut aussi vous demander quelque chose qu'on appelle un mercurial. Mercurial est un système différent, comme get. Il nous permet d'enregistrer 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 terminé l'installation. Tu devrais avoir ça ici. Et votre, eh bien, cette fenêtre juste ici quand vous démarrez l'arbre source, si vous ne cliquez pas simplement ici sur Créer et vous devriez obtenir cette fenêtre. Maintenant, c'est là que nous créons notre dépôt. 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 allons utiliser 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 notre première fois, donc nous ne créerons aucun compte. Donc, ici, nous allons choisir quel est le chemin de destination de notre dépôt. Alors quoi, quel est le projet que nous allons réellement créer un référentiel pour les versions ultérieures de. Eh bien, créons notre premier projet que nous allons utiliser. Donc ici, c'est ouvrir le Hub Unity. Et comme vous pouvez le voir, nous avons déjà Hello World que nous ne le faisons pas dans une vidéo précédente qui est cliquez sur Nouveau. Et nous allons nous assurer que c'est un projet 3D. Et ça va être 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 te verrai de l'autre côté. Bon, bienvenue. J' espère que tout s'est bien passé pour toi. Donc maintenant, nous avons un nouveau projet qui est cyber malgré 2087. Maintenant que nous avons notre projet créé, nous pouvons réellement aller de l'avant et commencer à créer un référentiel. Maintenant, si nous retournons dans notre arbre source ici, nous pouvons cliquer sur Parcourir et nous pouvons réellement aller de l'avant dans les projets Unity. Et vous pouvez voir que nous avons un monde bonjour et que nous avons un cyberespace d'ici 2087. Alors sélectionnons ce dossier. Il va créer un référentiel sous ce nom. Si nous appuyons sur Créer, cela posera un problème. Ne vous inquiétez pas pour ça. Cliquez sur Oui. Et voilà, maintenant, nous avons commencé à créer un dépôt. Vous avez les fichiers mis en scène ici. Vous avez différents types de boutons. Vous n'avez pas besoin de vous soucier de l'un 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 vous engager 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 faisons défiler jusqu'à la fin, nous pouvons voir certains d'entre eux sont Tampa 10 ou temporairement. Nous pouvons voir aussi que nous avons des paramètres de projet et ce sont tous les fichiers que nous pour notre projet. Nous avons aussi des atouts ici pour l'unité dans les scènes par exemple. C' est donc un dépôt qui est une version de notre projet actuel. Maintenant, le problème ici est, comme vous pouvez le voir, il y a une tonne de fichiers, et B n'en aura pas besoin tous. En fait, nous n'aurons besoin de presque aucun d'entre eux. Nous n'aurons besoin que d'un certain type de fichiers. Donc, nous voulons ignorer la bibliothèque et les fichiers temporaires temporaires. Pourquoi c'est ça ? Laissez-moi vous montrer en ouvrant le répertoire de notre projet. Oh, ok, donc c'est le répertoire Cyberspace d'ici 2080 à 7 dans le projet Unity, comme vous pouvez le voir ici. Nous avons donc les actifs, les journaux de la bibliothèque, les
paquets, et cetera, et cetera. Maintenant, quel est le dossier temporaire et quel est le dossier de la bibliothèque et pourquoi n'avons-nous pas réellement besoin d'eux ? Donc temporaire est juste 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. Donc, par exemple, si je vais dans Unity juste ici et que je le ferme effectivement, vous verrez que le fichier temporaire. Va disparaître. Et même si nous supprimons la bibliothèque en ce moment, alors allons de l'avant et supprimons cette bibliothèque entièrement. Si on retourne dans notre Unity Hub et ouvre 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éé. Donc, bien sûr, le projet devrait prendre un peu plus de temps maintenant pour 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 nous engager et mettre en scène. Et qu'est-ce que je veux dire par scène ? Donc, chaque fois que nous mettons en scène nos dossiers, nous créons réellement un commit à partir d'eux, n'importe quelle version de ceux-ci. Et la bibliothèque prend beaucoup de place. Comme vous pouvez le voir, si nous faisons défiler vers le bas, cela prend la majeure partie de l'espace et nous ne voulons aucun d'entre eux du tout. Alors, comment devrions-nous procéder ? Eh bien, nous pouvons en fait ignorer tous les dossiers qui sont sous la bibliothèque en allant simplement et en choisissant l'un des dossiers qui ont une bibliothèque sur eux. Cliquez avec le bouton droit dessus. Et ici, vous pouvez voir que nous avons la possibilité d'ignorer l'un d'eux. Cliquez sur Ignorer. Et ici, vous avez la possibilité d'ignorer ce nom de fichier exact, ignorer tous les fichiers avec cette extension, ou vous pouvez ignorer tout sous une bibliothèque, et c'est ce que nous voulons. Alors cliquez sur OK. Et comme vous pouvez le voir, tout sous la bibliothèque a maintenant été ignoré, donc nous ne pouvons pas le mettre en scène, donc nous ne pouvons pas l'enregistrer dans notre nouvelle version. Et si vous faites défiler vers le haut, vous avez peut-être remarqué que nous avons un nouveau dossier ici qui est le point git ignore. Et quand nous cliquons sur la droite, vous pouvez voir qu'il a la bibliothèque. Et, et si nous double-cliquez dessus, nous pouvons réellement l'ouvrir dans notre bloc-notes et ici nous pouvons ajouter les différents fichiers que nous voulons également ignorer. Alors, quels sont les fichiers que nous voulons ignorer ? Eh bien, il y a une tonne de fichiers, mais heureusement, quelqu'un a réellement parcouru tous ces fichiers et créé une liste de tout ce que nous pouvons ignorer chaque fois que nous créons des contrôles de version ou des versions de notre projet. Et pour trouver ce fichier, vous pouvez aller à nouveau et à Google ou à l'avant. Allez-y et cherchez dot git, ignorez l'unité. Et vous devriez avoir ce lien juste ici pour le github.com. Et il sera hébergé sur GitHub. Si vous ouvrez ce lien, il vous emmènera ici. Donc, c'est le point gitignore et c'est le point d'unité git ignorer. 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 juste ici, et il ouvrira cette fenêtre ou onglet. Allons de l'avant et sélectionnez-les tous en cliquant sur le contrôle a. Nous allons copier tout cela en utilisant le 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 notre 3 positif. Nous allons sauver cela en utilisant Control S. Et maintenant de retour dans Unity ou je veux dire dans l'arbre source, vous pouvez voir que quand nous avons eu le git ignorer, tout est ignoré. Nous allons mettre en scène tout cela. Et quand nous mettons en scène tout cela, vous pouvez voir que ce sont les fichiers qui vont être commis. Et il s'agirait de notre engagement initial ou notre version initiale de dépôt du projet. Et généralement chaque fois que vous créez votre commit initial, nous appelons ceci l'initiale. Vous pouvez le capitaliser, le initial, oops, commit initial. Et nous cliquons sur Commit ici. Donc maintenant, si vous regardez à gauche, vous pouvez voir que nous avons des branches ici et que nous avons la branche principale. Félicitations, nous avons créé notre premier engagement. Très gentil. Maintenant, laissez-moi juste vous montrer comment nous allons aller plus loin, même si cette vidéo a été assez longue. Mais je pense que nous devons obtenir une base appropriée pour l'arbre des sources et le contrôle des versions au fur et à mesure que nous avançons dans notre projet. Donc, disons que nous sommes dans notre projet juste ici. Et allons de l'avant et créons une sorte de cubes. objet 3d. Cliquez avec le bouton droit dans la hiérarchie. objet 3d, créer un cube, et maintenant nous avons un cube. Allons le mettre à l'échelle un peu. Donc à l'échelle sur le x, le y, et le z. génial. Maintenant, nous avons un cube et notre scène. Et maintenant, si nous allons dans l'arbre source, sauvegardons ça avant de partir. Et il doit l'enregistrer sur 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. Donc, nous avons cet exemple de scène de retour et l'arbre source. Attendez un peu, et vous pouvez voir que nous avons des modifications non validées. Donc, si nous cliquons dessus, vous pouvez voir que les fichiers sur scène sont des changements à l'intérieur des scènes, qui est la scène exemple. Et ici, vous pouvez regarder 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îte. Et fondamentalement, cela représente le cube que nous avons ajouté à notre scène. Alors allons de l'avant et mettons-en scène tout ça. Nous pouvons cliquer sur Commit ici et nommer cela a ajouté un cube. Cliquez sur commentaire. Et maintenant, dans notre branche principale, vous pouvez voir que nous avons un commit initial qui n'avait pas de cube. Et maintenant, dans notre cube ajouté, nous avons ajouté un cube. Alors félicitations. Et comme une note finale, cela peut sembler un peu encombrant. Cela peut sembler 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 à mesure que nous avançons dans notre projet, créons des versions, des versions de celui-ci. Et si jamais nous faisons une erreur, nous pouvons réellement revenir en arrière en cliquant avec le bouton droit de la souris ici, inversant le commit. Et oui, nous pouvons inverser le commit si nous revenons et à l'unité, il nous demandera un rechargement en direct. Nous avons écrit, nous rechargeons, et maintenant nous n'avons pas le cube ou aucun mécanisme de rupture de
jeu que nous avons ajouté en chemin. Et maintenant, c'est l'heure de votre défi. Votre défi sera de télécharger et de configurer l'arborescence des sources et le fichier ignorer. Alors, téléchargez l'arbre source 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 et obtenez le fichier d'ignorer point 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. Ajouter un cube, inverser le commit, voir ce qui se passe. Soyez à l'aise avec l'arbre source. Et si vous rencontrez un peu de problèmes, vous pouvez mettre la vidéo en pause dans cette liste de choses que vous devez créer. Et vous pouvez également toujours revenir en 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 dans un peu.
7. Légends des légends de conception de jeu Conquêtes: Hé, mes collègues développeurs de jeux. Donc, avant de plonger dans les scores et la façon dont nous allons le créer. Je pensais que ce serait une très bonne idée de parler de la conception du jeu de notre jeu. Donc, je vous recommande toujours de le faire. Et la façon dont vous commencez par construire un jeu comme juste faire un concept
très, très, très rudimentaire et simple de votre jeu. J' ai donc décidé d'utiliser un démon comme sprite. Nous verrons ce que sont les sprites dans juste un peu. Et il va être appelé. Je crois que je l'ai appelé Jimmy à certains moments. Donc on va avoir l'œdème de gym. Et je viens de tracer une route, la route dans laquelle nous allons marcher, nous aurons de l'herbe ici, comme l'herbe. On pourrait avoir une grotte pour une entrée. Nous pourrions avoir une falaise et ici, et c'est la disposition de base des niveaux que nous allons avoir. Nous aurons aussi un peu d'eau. Parlons maintenant des personnages et de notre jeu. On a M0, qui est le démon. On a un commerçant. Peut-être que nous allons même créer un endroit pour le démon Jimmy pour aller dans un magasin où nous pouvons acheter des objets, vendre des objets, peut-être même obtenir des quêtes, avoir un peu de dialogue. Ensuite, nous avons des donneurs de quêtes ou juste des MPC que nous pouvons discuter et trouver des quêtes où nous pouvons les obtenir. Donc nous pouvons trouver une sorte de belle femme aux cheveux rouges où elle nous dit que peut-être son fils a disparu. Donc, nous devons aller les trouver. Ensuite, nous avons aussi ces monstres et voici les méchants. Et je les ai dessinés. Peut-être qu'on peut les trouver dans des grottes ou des donjons ou au sommet des collines. Et ce carré bleu en face de lui est l'endroit où nous commençons la bataille. Donc, si nous entrons dans la place, nous commençons immédiatement un combat au tour par tour dont nous parlerons dans un peu. Nous pouvons également trouver des objets sur le terrain, par
exemple, un Bouclier d'or. Ou nous pouvons obtenir ces objets après avoir gagné une bataille, ou nous pouvons les acheter dans la boutique. Donc, tout cela est disponible pour nous. Et nous pouvons voir ici que nous avons ces carrés noirs ici et qu'est-ce qu'ils représentent ? Ils sont un moyen de passer d'une scène à l'autre. Nous allons donc créer une carte de tuiles. Nous allons discuter de ce qu'est la carte des piles. Ne vous inquiétez pas pour ça. Où nous allons tout mettre en place. Mais comme vous le savez, nous ne pouvons pas mettre tout le jeu sur une seule carte. Ce que nous allons faire, c'est passer d'un
niveau à l'autre en utilisant ces routes et en sortant et avant. Allons un peu plus loin. Parlons donc du combat au tour par tour et de ce que c'est. Je vais jeter un coup d'œil juste pour vous montrer quelques jeux qui mettent en œuvre cela, nous allons approfondir plus profondément quand nous arriverons à cette section et notre gain. Vous pouvez voir ici, ce premier était le jeu Final Fantasy. Je crois. C'est un tout nouveau jeu. Je ne crois pas très nouveau, mais au cours des dernières années créé et il est très acclamé et vraiment vendu beaucoup. Donc je vous montre juste les différents types de jeux de combat au tour par tour moderne. Donc vous n'avez pas l'impression que, Oh, ça pourrait être ennuyeux en fait, non, il est toujours utilisé dans le développement de jeux modernes. Et vous pouvez voir ici, c'est comme
ça que nous disséquons une carte de tuiles. Ainsi, vous pouvez voir que chacun d'entre eux sont des tuiles que nous utilisons pour notre jeu pour les dessiner tous. Et c'est pour cousu cinq. Je crois que c'est un jeu assez nouveau, a très acclamé et c'est un combat au tour par tour où chaque joueur prend un tour pour attaquer une sorte d'ennemi devant eux. Allons passer à autre chose. Parlons des légendes de la conception de jeu de conquête. Alors, quelle est la mécanique de base de notre gain ? Ce sera la marche, l'
interaction, et le combat au tour par tour. Qu' est-ce que je veux dire par marcher et interagir ? Eh bien, marcher est assez simple. C'est compréhensible. Interagir, c'est interagir avec d'autres PNJ, interagir avec les commerçants et je vais tout exposer. Interagir avec les commerçants, interagir avec des objets peut-être cachés, interagir avec les donneurs de quête, interagir avec les ennemis, et le combat au tour par tour est aussi l'un des principaux mécanismes du jeu. Nous parlerons aussi du gameplay de base. Donc, le gameplay principal est de prendre des quêtes, vaincre des monstres dans les grottes, gagner de l'argent et de l'expérience. Et nous avons aussi mis à niveau notre joueur et nos armes. Nous allons donc créer un système où nous avons des statistiques de joueur et nous les
améliorons à mesure que le joueur gagne plus d'expérience et ainsi de suite. C' est donc une petite scène à côté de l'eau avec un bateau. Et c'est juste ça. Parlons donc de l'histoire du jeu. Et vous pourriez penser, pourquoi devrais-je avoir une histoire de jeu pendant que vous travaillez sur un projet ? Si vous n'avez pas d'histoire de jeu, si vous n'avez pas. La vue d'ensemble de votre jeu, vous ne saurez pas où vous allez. Vous vous retrouverez manquer de motivation au fur et à mesure que vous vous déplacez dans votre cours. Et vous verrez que c'est lentement, lentement, mais sûrement laisser votre âme plus de motivation. Alors, quelle est l'histoire de notre jeu ? Vous êtes un démon du fond de l'enfer à recherche de votre chevalier noir et de votre frère qui a été capturé par l'empereur. Votre mission est de tuer des monstres dans des grottes qui hantent les villages de l'empire. Et je me suis arrêté ici, mais vous pouvez développer beaucoup sur ce sujet. Donc vous pourriez penser que vous tuez des monstres dans les villages pour l'empire, parce que vous voulez que l'empereur garde votre ami sauver. Peut-être que tu veux le sauver à la fin. Peut-être que l'empereur devient une sorte de démon ou une sorte de traînement à la fin et que vous devez le vaincre après avoir sauvé votre ami de ce qu'il était, le Chevalier Noir, nous utilisons l'un d'eux. Ce n'est pas Batman, une nuit sombre pour laquelle on a trouvé un sprites. Ainsi, vous pouvez voir, par exemple, nous avons un système de dialogue où nous avons parlé au commerçant. Elle nous dit qu'elle est guérisseuse. Elle nous dit que je suis guérisseur. Et nous avons aussi différents types d'environnements. Donc, nous utilisons plusieurs sprites vendus ici. Ce n'est peut-être pas une sorte de banlieue où vous devez trouver une sorte de quête, peut-être trouver des herbes pour le guérisseur ou autre chose. Alors, continuons. Enfin ou pas. Enfin, je saurai Parlons des exigences techniques. Nous allons donc avoir un jeu de tuiles pour l'arrière-plan et les objets solides. Nous allons avoir des entrées du clavier qui contrôlent notre gain. On va avoir une caméra de suivi. Je vais juste ouvrir tout ça. Nous allons avoir où nous suivons cam
qui suivra le joueur en utilisant quelque chose de vraiment, vraiment cool. Et c'est ajouter une prière à travers notre caméra, ce qui est très bizarre je sais, mais cela nous permet d'utiliser la machine Cinna. Donc, vous pouvez voir que c'est un autre environnement différent où nous avons de la lave et ce monstre. Et ici, nous aurons des statistiques claires. Donc, nous aurons dextérité, défense, HB, Manoir, expérience, et ainsi de suite. Tous ces éléments seront estampillés avec un système de nivellement. Nous aurons un système de dialogue, comme vous l'avez vu sur la diapositive précédente. Nous aurons un système de quêtes. Nous aurons un système d'inventaire, ce qui sera très amusant dans le cours parce que nous allons utiliser toutes nos connaissances dans C-Sharp. Ça va être si amusant que tu apprendras tellement. Et puis nous avons le magasin et l'argent, qui va aussi être un très complexe, mais parfois prendre deux idées simples et les combiner pour travailler ensemble, qui est le système d'inventaire et un système monétaire qui va créer, pour travailler ensemble, pour créer une boutique. Ce sera une création très, disons, difficile à faire. Et enfin, nous avons le système de combat
au tour par tour dans lequel nous allons approfondir et apprendre beaucoup. Parlons donc de l'avenir du gameplay. Et je vais tout ouvrir pour qu'on puisse voir la photo à la fin. Donc c'est une photo que j'ai essayé de prendre une capture d'écran du combat au tour par tour. Donc, vous pouvez voir que nous avons les noms de nos joueurs avec leurs barres de santé. Ce sont des barres mineures. Vous pouvez voir que nous avons des options pour attaquer, utiliser la magie, utiliser des objets et fuir. Et vous pouvez voir que nous aurons plusieurs types de joueurs. Et c'est la nuit sombre dont je parlais. Et c'est une sorte de compagnon de voyage, un sombre squelette que vous trouvez le long votre chemin et il accepte de vous aider dans vos batailles. Donc c'est un maître major que j'ai trouvé et c'est un guerrier. Et tout ce sont des sprites que j'ai trouvé
gratuitement sur un site Web dont je parlerai et en utilisant beaucoup. Alors qu'est-ce qu'on a ? Nous avons le mouvement Conquérant. Ce sont les caractéristiques de gameplay que nous avons la marche aura marcher de plusieurs façons. Alors je retourne te montrer. Nous avons donc, par exemple, le démon face à l'avant. Mais ici, par exemple, nous avons le démon face à gauche et à droite et vers le haut. Donc, c'est en fait une fonctionnalité ou un mécanicien si vous voulez. Dans notre jeu, nous avons interagir avec les MPC. C' est aussi une partie très cruciale du jeu. Alors, quels sont les interactifs ? Nous avons parlé de la façon dont nous pouvons nous déplacer à travers les niveaux ou la scène. Vous verrez quelles sont les scènes quand nous arriverons au cours. Donc, nous avons des sorties de zone. Donc ce sont les zones où nous pouvons sortir de N2, d'autres zones, nous avons des zones de combat. C' est là que j'ai parlé de l'endroit où nous avons une sorte d'ennemi devant nous et où nous entrons dans la zone de bataille et nous commençons à les combattre. Nous avons des objets sur le terrain que nous pouvons ramasser. Nous avons des MPC pour les quêtes ou pour magasiner avec. Nous avons un point de départ et de fin, ce qui est très important. Nous aurons un point de sortie que le démon traverse pour arriver à un endroit à l'autre. Avoir également les micros, qui sont les articles sur le sol. Nous avons plusieurs articles aussi, et vous pouvez ajouter le vôtre. C' est la plus belle partie de tous les scores que vous pouvez ajouter vos propres objets dans ce jeu. Nous utilisons actuellement un acte d'argent, une hache d'or, une armure d'argent, une armure d'or. Nous avons des océans monopolaires, nous avons des portions HP et ainsi de suite. Donc, enfin, je vais vous lancer un défi, et ce défi va créer votre propre conception de jeux. Vous aurez donc besoin de trouver une histoire pour votre jeu. Je sais que tu réfléchis, sérieusement. Je veux juste apprendre à coder. Je veux juste créer ce jeu, s'il vous plaît. Michael, laisse-moi tranquille. Non. Vous devez trouver une histoire pour votre jeu. Croyez-moi, quand vous découvrirez une histoire, ce cours sera tellement meilleur. Et je ne suis pas là pour t'apprendre à créer. Encore une fois, je ne suis pas là pour vous apprendre à coder en C Sharp. Je suis ici pour vous apprendre à devenir développeur de jeux, A-Master, résolveur de problèmes. Donc, la première chose que vous devez comprendre est l'histoire derrière votre jeu. Alors je veux que vous trouviez la mécanique du jeu. Tu veux. Peut-être que vous voulez ajouter le saut, peut-être que vous voulez ajouter la course. Mettez-les sur le site. Même si vous êtes un débutant, ajoutez
tout ce que vous aimeriez avoir dans votre jeu. Peut-être que vous ne pouvez pas l'implémenter en ce moment. Peut-être qu'on ne l'implémente pas dans notre jeu. Mais à mesure que vous progressez dans votre parcours de développement de jeu, vous verrez qu'à la fin des scores auront tous les outils pour créer tout ce que vous voulez pour votre jeu. Ensuite, vous devrez télécharger vos propres sprites et par décalages, assurez-vous que vous avez le premier plan et l'arrière-plan. Si tu veux. Attendez un peu ce point ici, quand je vous montre le site, c'est de l'art du jeu ouvert. Ce n'est pas comme un site web secret ou quoi que ce soit. C' est de l'art du jeu ouvert. Va trouver tes propres sprites. Allez trouver vos propres personnages, ennemis,
monstres, PNJ, sets de numérotation, tout ce que vous voulez, allez trouver les vôtres. Je recommande vraiment que vous ayez besoin de comprendre quelles fonctionnalités vous voulez ajouter. Peut-être que vous voulez avoir quelque chose de différent que simplement des objets sur le terrain. Peut-être que vous voulez avoir des objets cachés. Peut vouloir avoir des coffres qui s'ouvrent et trouvent les objets. Allez amuser fou vos propres fonctionnalités. Et je suppose que c'est tout. Nous sommes en train de terminer notre section. Donc je vais laisser ce défi ici devant vous. Je veux que vous preniez le temps de créer l'histoire. Je veux que vous preniez le temps d'écrire les mécaniques que vous aimeriez avoir dans votre jeu. Soyez créatif, même si vous pensez que vous n'avez aucune compétence, faites-le, écrivez-les simplement. Nous traiterons de tout dans ce cours. Alors ne perdons plus de temps. Et je te verrai dans la prochaine vidéo.
8. Section 2 : Configuration de la feuille Sprite: Bienvenue, Mes développeurs de jeux préférés. Dans cette vidéo, comme vous pouvez le voir, nous avons créé un nouveau projet appelé les légendes de la conquête au RPG. Yay, j'ai très excitant. C' est la meilleure partie de la création de projets. Nous avons ensuite ajouté cette image d'arrière-plan. Nous avons ajouté notre petit démon ici qui appellera plus tard. Et nous avons aussi parlé de feuilles de sprite et de rendu de sprite. Nous parlons aussi d'un très excitant, un très beau site web où vous pouvez trouver tous ces gratuitement. Alors ne perdons plus de temps et commençons. Oh, ok, donc la première chose qu'on va faire est de créer un nouveau projet. Et nous allons nous assurer que c'est un jeu en 2D. Et nous allons appeler ça des légendes de la conquête au RPG. Et assurez-vous de trouver le bon emplacement. Je vais le sauver à l'intérieur des projets Unity juste ici. Alors appuyez sur Sélectionner un dossier. Maintenant, il est sauvegardé dans les projets Unity. C' est ce qu'on appelle des légendes de la conquête au RPG. Et nous allons créer le projet. Et je vais sauter cette partie juste parce que je ne veux pas te déranger avec tout ce temps inutile. Oh, ok, bienvenue à tout le monde. Alors maintenant que notre projet a été créé, commençons à y ajouter des choses. Tout d'abord, ajoutons une sorte de fond juste pour avoir une place pour nos personnages pour entrer. J' ai donc préparé quelque chose appelé l'image d'arrière-plan, et vous pouvez simplement le faire glisser ici dans les actifs. Et maintenant, nous pouvons simplement le glisser sur notre c. Donc, comme vous pouvez le voir, c'est un peu petit. Laisse-moi juste recentrer tout ici. Donc, la position est sur le 0 sur le x, 0 sur le y, et 0 sur le zed. Et comme vous pouvez le voir, si nous lançons le jeu en ce moment, c'est un peu trop petit. Maintenant, ce que nous pouvons faire, nous pouvons augmenter l'échelle, mais un, un autre truc très astucieux que nous pouvons faire, un clic de frais juste ici sur l'image. Vous pouvez voir que les pixels par unité sont 100. Il suffit de faire ce 30 pour frapper appliquer. Et comme vous pouvez le voir, l'image grandit. Et j'expliquerai plus tard quels pixels par unité. Maintenant, la prochaine chose que nous allons faire est d'ajouter notre personnage. Et pour cela, nous allons utiliser quelque chose qu'on appelle un sprite. Laissez-moi vous expliquer ce qu'est un sprite. Alors qu'est-ce qu'un sprite ? C' est donc un sprite de notre caractère, ceux que nous allons utiliser. Et c'est aussi un sprite du sol que nous allons utiliser notre jeu. Donc un sprite est un objet 2D. Ils ont des images graphiques appelées textures, comme vous pouvez le voir ici, ce sont des textures sur un objet 2D. Et ils sont utilisés en ajoutant un composant appelé le rendu sprite à un objet de jeu. Laisse-moi te montrer comment ça marche. Tout d'abord, revenons à Unity. Et allons de l'avant et attrapons notre personnage ici. Comme vous pouvez le voir, nous avons beaucoup d'options. Donc, je vais choisir la vanille de marche juste ici et ajouté à nos actifs. Alors appuyez sur Entrée. Et avant de continuer sur cela, nous avons juste changé la mise en page ici de la mise en page par défaut à la mise en page deux par trois. Et cela nous aidera beaucoup mieux. Prenez le jeu et regardez autour comme nous pouvons voir la scène et le jeu en dessous. Parce que ce jeu sera très axé sur la façon dont tout semble comparé de la scène au jeu. Ok, super. Donc la prochaine chose que nous allons faire est de cliquer sur la vanille de marche juste ici. Si vous appuyez sur la petite flèche, vous pouvez voir que tous les démons sont écrasés ensemble. Donc, si nous double-cliquez ici, vous pouvez voir que tous les démons sont sur la même image, mais nous ne voulons pas ça. Nous voulons juste cette image ici pour l'afficher. Parce que si nous l'ajoutons maintenant à la scène, vous pouvez voir qu'il est trop petit et qu'ils sont tous emballés ensemble. Alors laissez-moi juste supprimer ceci. Donc, la façon dont nous allons le faire est tout d'abord, nous allons cliquer sur cette image. On peut regarder ici et l'inspecteur, on peut d'abord faire ça 32 ou changer ça plus tard. Gardez-le 100. Nous devons changer ces modes privés en multiples. Il faudra changer le mode de filtre en un point. Aucun filtre n'appliquera tout cela. Et maintenant, lorsque nous cliquons sur l'éditeur de sprite, comme vous pouvez le voir, nous pouvons commencer à trancher nos germes. Si nous regardons ici, nous avons la possibilité de couper cela automatiquement. Mais si nous avons essayé de couper cela automatiquement, vous verrez que tous les carrés ne sont pas de la même taille. Et ce sera un énorme problème plus tard quand nous essaierons d'animer, parce que comme vous pouvez le voir, c'est l'animation de marche. Nous avons plusieurs tribus. S' ils ne sont pas de la même taille, ça va être un peu dur. Donc, ce que nous allons faire est que nous allons passer d'automatique à grille par taille de cellule. Et si nous frappons cette clé de tranche en ce moment, vous pouvez voir qu'elle crée une tranche très soignée de notre grande feuille de sprite. Ainsi, vous pouvez voir que chaque sprite ou tranche du sprite est de la même taille. Et cela nous aidera énormément électron. Donc maintenant on peut frapper la tranche, on peut frapper l'application. Et comme vous pouvez le voir, chaque tranche a un nom spécifique. Maintenant, vous pouvez changer le nom des sprites pour marcher un bon, par
exemple, mais je ne pense pas que ce soit très nécessaire. Vous pouvez également ajuster la taille des tranches ici, mais je pense que c'est assez bon. Alors appuyez à nouveau sur Appliquer. Sortons. Maintenant, si nous appuyons sur la touche fléchée, vous pouvez voir que nous avons les sprites individuels juste ici. Et nous pouvons commencer par faire glisser celui-ci, le principal, et le mettre sur notre carte de tuiles ou notre image d'arrière-plan, comme vous pouvez le voir, ici, n'est pas visible. Où est notre petit démon ? Eh bien, il est là, mais si on le déplace de derrière l'image de fond, et vous pouvez aussi voir qu'il est très, très minuscule. Et c'est là que nous pouvons changer le pixel par unité. Disons que 32 avait appliqué, et maintenant il est la bonne taille. Si on le déplace ici, tu peux voir qu'on peut le voir par terre. Nous pouvons aussi le rendre plus grand, peut-être faire ce 16 hit Appliquer. Et il a encore disparu. Déplaçons-le de l'arrière-plan. Ok, on y va. Je pense que 16 est un nombre suffisant, mais vous pouvez quand même voir que nous ne pouvons pas le voir de derrière la couche. Et c'est un problème que nous pouvons résoudre maintenant, si nous regardons dans le rendu sprite, c'est un objet de jeu qui a un rendu sprite dessus. Si, par exemple, nous désactivons le rendu sprite, vous pouvez voir que l'image n'est plus rendue ou que le sprite n'est plus rendu. Nous pouvons cliquer ici à nouveau et retourner le sprite. Et on peut changer l'ordre de la couche ici, 21. Et maintenant, si on le déplace, on peut le voir devant notre image. Parce que l'image d'arrière-plan, qui a également un moteur de rendu sprite que nous pouvons désactiver, a une couche d'ordre de 0. Si nous le mettons à deux, vous pouvez voir que le démon disparaît, mais ce n'est pas une très bonne solution. Nous allons résoudre cela dans la prochaine vidéo où nous allons créer des couches de tri. Mais avant de le faire, j'ai un défi pour vous. Et votre défi sera d'aller de l'avant et de créer votre propre joueur et travaillé. Alors explorez un site appelé Open game art que je vous montre. Donc, c'est open game art.org et c'est un site Web incroyable où vous pouvez trouver beaucoup d'actifs gratuits à utiliser dans vos jeux 2D, jeux 3D. Et vous pouvez également trouver la musique et les effets sonores et bien plus encore. Donc, par exemple, cette feuille de sprite ici, ceci, Disons ensemble de tuiles. Je l'ai reçu de l'auteur Savini the New York. Je ne suis pas sûr de savoir comment prononcer cela, assurez-vous de les vérifier. J' ai aussi eu mes démons ici de William Thompson comme j, également sur open game art.org. C' est un site web incroyable. Je vous recommande de l'explorer et de trouver vos propres personnages. Assurez-vous que le personnage que vous trouvez a ces animations de marche sur lui. Revenons donc à notre défi. Ensuite, vous devez trouver des personnages et des sprites qui conviennent à votre style. Peut-être que tu ne veux pas qu'un démon pourchasse dans un village. J' admets que c'était une idée maladroite, mais je voulais essayer quelque chose de nouveau. Pour passer à la vidéo suivante, trouvez vos propres sprites, amusez-vous, profitez de votre temps. C' est, comme je l'ai dit dans la première vidéo, il s'
agit de créer votre propre jeu et ajouter votre propre saveur et style au jeu. Il ne s'agit pas seulement de copier ce que je fais et ce que je trouve bon pour le jeu. Vous devez y ajouter votre propre saveur. Alors prenez votre temps, trouver des sprites de marchandises, explorer ouvert ET portes sont that.org, peut-être que vous trouverez d'autres sites Web et je vous verrai dans le prochain.
9. Trier des calques: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons apprendre sur le tri des couches. Donc maintenant, si nous cliquons sur l'arrière-plan, vous pouvez voir que le calque de tri est l'arrière-plan. Le joueur a son propre calque de tri, le calque de joueur. Alors ne perdons plus de temps et commençons. Oh, ok, donc comme nous l'avons déjà dit, nous pouvons réellement utiliser l'ordre dans la couche pour changer l'ordre dans lequel nos sprites sont rendus. Mais dans cette vidéo, je vais vous montrer une autre façon beaucoup plus sophistiquée de faire les choses. Et tout d'abord, pourquoi avons-nous besoin de cette façon plus sophistiquée ? Vous demandez peut-être, Michael, je peux simplement ajouter un autre objet, mettre à, disons trois et quatre, et ensuite cinq et ainsi de suite. Mais que se passe-t-il si, par exemple, nous voulons ajouter un élément ici et que nous voulons rendre cet élément sur le, disons que les éléments cardiaques et sur les PNJ normaux, vous devrez revenir en arrière à chaque fois et vérifier quel ordre n est le MPC et le lecteur et l'arrière-plan, et ainsi de suite. Donc, pour changer cela, afin d'avoir une manière plus dynamique de choisir les couches, nous pouvons créer des couches de tri. Alors allons de l'avant et créons notre premier calque de tri. Pour ce faire, nous pouvons aller ici dans les calques et cliquer sur Modifier les calques. Donc, comme vous pouvez le voir ici, nous avons les tags, nous avons les calques de tri, et nous avons les calques. Maintenant, les calques et les balises seront conservés pour plus tard. Pour l'instant, nous allons simplement nous concentrer sur les couches de tri. Et c'est là que nous choisissons quel Sprite ou image attaqué devant l'autre. Maintenant, si vous regardez en arrière dans notre vanille de marche, cela a changé cela et appelez ceci le monstre ou
joueur, joueur démon ou gardons juste comme joueur. Vous pouvez voir que le calque de tri qui lui est propre est celui par défaut. Et c'est parce que nous avons seulement une couche par défaut. Maintenant, allons de l'avant et ajouter un nouveau calque en cliquant sur le petit plus ici. Et appelons ça l'arrière-plan. Donc maintenant, nous pouvons aller dans l'image d'arrière-plan et nous pouvons choisir le calque de tri pour être l'arrière-plan. Ainsi, comme vous pouvez le voir immédiatement, le calque de tri ,
qui
est l'arrière-plan, est rendu devant le lecteur. Et c'est parce que le champ regarde en arrière les couches ici. Vous pouvez voir que la couche est en face de la valeur par défaut et vous devez vous assurer que ceux-ci sont triés correctement et sont dans un certain ordre. Ok, super, alors assurez-vous que l'arrière-plan est en face d'ici. Maintenant, nous allons créer un calque pour le joueur, mais ce sera votre défi. Votre défi sera de créer le calque de tri. Créez donc un nouveau calque de tri appelé le joueur. Affectez notre joueur à la couche et assurez-vous que le joueur est affiché devant notre arrière-plan. Assurez-vous donc que l'ordre et les couches de tri sont corrects. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Oh, hé, bienvenue. Comment as-tu réussi avec ça ? J' espère que vous avez essayé. C' est très facile. Nous cliquons simplement sur la fin plus ici. Nous créons une couche appelée le joueur. Ensuite, nous retournons à notre joueur. Et ici au lieu de la valeur par défaut, nous choisissons simplement le joueur et nous pouvons même définir l'ordre là-dedans à 0. Ça n'a pas d'importance. Donc maintenant, le joueur est sur le calque de tri du joueur. L' arrière-plan se trouve sur le calque de tri d'arrière-plan. Donc, même si nous changeons l'ordre et le calque 2, disons 600, même si le joueur est sur le calque d'ordre 0 ici, toujours rendu devant l'image d'arrière-plan. J' espère que vous avez apprécié. Et avant de passer à autre chose, nous avons oublié de faire quelque chose ou en fait nous ne l'avons pas fait dans la vidéo précédente. Et c'est la création d'un référentiel. Maintenant, je ne voulais pas, je ne voulais pas créer de dépôt. Et la première vidéo parce que je pensais que peut-être certains d'entre vous voudraient créer leurs propres sprites et ensuite créer un nouveau projet. Donc, la façon dont nous créons un dépôt, nous avons déjà couvert cela. Nous cliquons sur le Parcourir, nous recherchons nos projets, nous voyons la légende de la conquête. Nous sélectionnons ce dossier et nous allons créer, assurez-vous que c'est un bon Nous allons créer le positif. Oui. Et on y va. Nous devons nous assurer d'oublier la bibliothèque ou d'ignorer. Je veux dire, alors ignorez tout ce qui se trouve sous la bibliothèque. Nous créons. C' est notre fichier ignorer. Alors allons-y et obtenons les cinq listes ignorées. Alors n ici, allez chez les maîtres. On y va. Nous pouvons choisir d'aller Roll, Contrôle un pour tout sélectionner. De retour ici. Où est-il le point gitignore basé tout. Sauvegardez cette sortie. Et maintenant, voyons. Oui, tout semble être bon. Tout mettre en scène. Nous allons engager notre travail et habituellement, comme nous l'avons dit, récupère le commit initial. Et c'est la partie très excitante. Alors maintenant, et nos engagements, où sont nos engagements ? Là ? Nous sommes là, nous sommes, nous avons créé notre premier engagement et nous avons réellement commencé nos projets. Donc, maintenant, nous sommes vraiment engagés. n'y a pas de retour à mes amis. Continuons.
10. Colliders et rigides: Bienvenue, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons apprendre comment nous pouvons ajouter la physique
à notre jeu et ne plus avoir seulement des images et des sprites. Nous avons en fait des corps et de la physique dans notre jeu. Nous avons donc ajouté un collisionneur. Nous avons aussi appris ce qu'est un collisionneur. On a ajouté un corps rigide. Nous avons également appris ce que c'est et nous apprenons quelque chose de nouveau et une nouvelle ressource d'information, à savoir la documentation de l'Unité. Alors ne perdons plus de temps et commençons. Oh, Kay, alors les collisionneurs et les corps riches, ce sont des parties et des composantes essentielles de l'unité. Alors pourquoi avons-nous vraiment besoin d'ajouter ces deux choses bizarres ? Eh bien, parce qu'actuellement, bien que nous ayons un joueur et qu'il a l'air cool et que nous avons un terrain sur lequel nous devons nous tenir. Et nous avons différents Walters et ainsi de suite et ainsi de suite. Mais ce ne sont que des images, ce ne sont que des sprites. Donc, le joueur est juste un sprite, l'image de fond est juste un sprite et nous ne pouvons pas interagir avec quoi que ce soit, ne pouvons pas nous déplacer. Commençons par comprendre ce que sont les collisionneurs. Alors qu'est-ce qu'un collisionneur ? Un collisionneur permet aux objets d'interagir et d'entrer en collision les uns avec les autres. Et nous allons l'utiliser pour faire frapper les objets de notre joueur et interagir avec d'autres objets physiques qui ont également des collisions sur eux. Qu' est-ce qu'un corps rigide ? Un corps rigide fait quelque chose ou un composant dans Unity qui nous
permet de contrôler la position d'un objet par simulation physique. L' objet de la carrosserie rigide serait tiré vers le bas par gravité sans ajouter de couche. Et enfin, nous pouvons aussi appliquer nos propres forces sur eux ou sur les corps rigides. Alors maintenant que nous comprenons un peu ce qu'ils sont,
permettez-moi de vous montrer une autre chose très cool dont vous devez être conscient,
et c'est la documentation de l'Unité. Maintenant, vous pouvez voir ici, je viens de taper dans Google corps rigide 2D dans Unity. Et vous pouvez voir le lien ici. C' est l'unité des docs. Et vous pouvez voir ce qu'est le corps rigide. Maintenant, vous n'avez pas besoin de lire tous les mots ici, mais je vous recommande de passer au moins quelques choses ici. Par exemple, la physique re-cast l'entrée sur collision. Ce sont des choses qui sont bonnes de savoir qu'elles existent au moins et vous pouvez l'utiliser. Je ne me souviens jamais de rien. J' aime généralement juste savoir qu'il y a quelque chose d'utile dans le corps rigide 2D que je peux utiliser plus tard. Et nous avons aussi une page ici pour l'étude sur les collisionneurs. Et vous pouvez voir que nous avons un collisionneur de cercle, un collisionneur de boîte, bord de
polygone, une capsule, et ainsi de suite et ainsi de suite. Donc, de retour dans Unity, Allons-y et ajoutons un collisionneur à notre joueur. Donc, nous allons entrer dans le joueur, va ajouter un composant et ce sera un collisionneur 2D. Vous pouvez choisir le collisionneur que vous voulez. Je pense qu'un collisionneur circulaire s'adaptera très bien ici. Donc, comme vous pouvez le voir, il y a une ligne verte. C' est un peu mince, mais si j'ai essayé de le changer, vous pouvez voir qu'il y a une ligne verte et c'est ce que le joueur peut interagir avec. Donc, nous allons le rendre un peu plus petit pour qu'il s'adapte juste autour du joueur. Et vous pouvez modifier le collisionneur ici en appuyant sur ce bouton. Nous pouvons également changer le rayon et changer le décalage. Donc je vais le déplacer un peu vers le haut et peut-être juste essayer de le rendre aussi grand qu'il devrait l'être. Ne le faites jamais plus qu'il ne devrait l'être. Donc juste à peu près la taille, je pense que c'est assez bon. Et ici, nous avons le déclencheur et utilisé par un facteur. Nous verrons ce que tout cela est plus tard, mais génial. Maintenant, vous avez vu comment nous ajoutons un composant. J' ai cliqué ici sur le bouton Ajouter un composant, j'ai choisi un collisionneur circulaire. J' aurais pu choisir n'importe quoi d'autre. Et vous devez choisir un collisionneur en fonction la forme de votre joueur ou personnage et du monde. Maintenant, la prochaine chose que nous voulons faire est d'ajouter un corps rigide. Donc ça va faire partie de votre défi. Votre défi va être de donner, y a-t-il de la physique ? Alors allez dans l'objet de jeu joueur, vérifiez dans l'inspecteur, ajoutez un composant de corps rigide et assurez-vous qu'il est à D, parce que nous avons deux types de corps rigides. Nous avons un corps rigide normal pour la 3D, et nous avons un corps rigide spécifique juste pour le 2D. Et si vous le souhaitez, vous pouvez également exécuter le code et voir ce qui se passe. Alors mettez la vidéo en pause et allez faire le shell. Kay, bienvenue. Donc ici, nous allons entrer dans l'objet de jeu joueur. On va vérifier l'inspecteur. Ok, très gentil. Et nous allons aller de l'avant et ajouter un autre composant et ce sera un corps rigide et sera un corps rigide 2D. Maintenant, nous avons un corps rigide ici. Et vous pouvez voir qu'il a de la masse, il a une traînée linéaire, il a un médicament angulaire. On ne s'en souciera pas pour l'instant. Mais ce que nous allons nous inquiéter à ce sujet, la gravité qui est ajoutée, parce que comme je vous l'ai dit, nous avons une gravité automatique sur notre corps rigide. Donc quand on frappe Play, et maintenant on voit que notre petit démon commence à tomber et c'est parce que les forces de gravité agissent sur lui. Alors, qu'est-ce qu'on peut faire à ce sujet ? Eh bien, si vous aviez essayé de lire le corps rigide 2D, vous pouvez voir ici que nous avons trois types de corps rigides. Nous avons la dynamique, la cinématique et la pile. Et vous pouvez vous sentir libre d'aller de l'avant et de lire sur tout cela. Ce que vous devez comprendre, c'est que cinématique et dynamique, c'est chaque fois que la gravité agit ou que des forces extérieures agissent sur notre corps. cinématique est quand seules les forces que nous lui donnons, notre action sur le corps et statique, cela signifie
qu'aucune force ne peut agir sur le joueur. Donc si nous frappons la cinématique, maintenant nous exécutons le code. Et vous pouvez voir que notre joueur ne tombe plus si bien qu'aucun, j'espère que vous en apprécierez. Nous devons nous assurer que nous engageons nos changements. Voici donc quelques changements. Mettre en scène tous les commit. ajouté un collisionneur et un corps rigide à mon joueur. Engagez les changements, et je vous verrai dans la prochaine.
11. 101: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons créé un script de joueur et l'avons ajouté à l'objet de jeu joueur. Nous avons également appris sur les variables. Nous avons ajouté un peu de code et comme vous pouvez le voir, nous avons ce champ sérialisé. Très effrayant. Non, je plaisante. C' est très facile. Donc j'ai besoin de ta concentration. Ne perdons plus de temps et commençons. Alors maintenant, il est temps de commencer à contrôler nos objets dans le monde. Et la première chose que nous voulons faire est que nous voulons utiliser le corps rigide que nous venons appliquer pour commencer à déplacer notre petit joueur de démon autour. Et je pense qu'on va appeler ça Jimmy, donc Jimmy le démon. Donc, la première chose que nous allons faire est que nous allons créer un script et ajouté à notre démon juste ici. Donc, à l'intérieur de nos actifs, nous allons cliquer avec le bouton droit de la souris et aller de l'avant et créer un script C-Sharp. Et on va appeler ça le joueur. Tout ce que vous pouvez appeler cela le contrôleur de joueur, gestionnaire de joueur. Je pense que joueur, pour résumer, tout est un bon nom. Assurez-vous donc que vous l'appelez correctement en utilisant le lecteur, appuyez sur Entrée. Attendez un peu juste que le script ici compile. Et vous remarquerez que chaque fois qu'il fait cette petite chose ici, maintenant on peut l'utiliser. Assurez-vous d'attendre que cela se produise parce que je reçois beaucoup de questions tout en ne travaillant pas. Pourquoi tu nous as appris quelque chose de mal ? Non, tu dois juste attendre un peu. Avoir des patients. Maintenant, la prochaine chose que nous devons faire est d'ajouter le script, le joueur. Donc, nous allons simplement le faire glisser sur et vers l'objet de jeu joueur. Et vous verrez ici, dans l'inspecteur, que nous l'avons ici. Oh, a donné très gentil. Ensuite, allons de l'avant et ouvrons et Visual Studio. Donc, pour ouvrir le script, il suffit de double-cliquer sur le lecteur juste ici. Et Visual Studio devrait s'ouvrir. Oh, ok, correct. Ne vous inquiétez pas de tout cela, nous reviendrons plus tard sur la façon dont Start fonctionne, comment Update fonctionne, et tout cela ici, et le comportement mono et le joueur de classe et le public. Mais pour l'instant, concentrons-nous sur faire bouger notre joueur. Pour ça, nous aurons besoin du corps rigide. Et pour cela, afin d'accéder au corps rigide aura besoin d'une référence à celui-ci. Alors, comment pouvons-nous obtenir une référence au corps rigide ? Eh bien, nous devons créer une variable de type corps rigide. Et vous pourriez vous demander, eh bien, quelles sont les variables ? Très belle question. Laissez-moi vous expliquer. Les variables sont comme des boîtes. Disons qu'on a une boîte qui s'appelle les vies. Et ce qu'on fait, c'est qu'on met trois à l'intérieur de cette boîte. Donc maintenant, nous avons une variable de type entier parce qu'il a un entier à l'intérieur de celui-ci, et il est appelé vies. Donc, une variable a quelques choses que vous devez toujours savoir. C' est ainsi que nous écrivons une variable dans coat ou comment nous traduisons cette boîte en code et notre Visual Studio. Donc, tout d'abord, nous avons l'accessibilité. Qui peut y accéder ? Nous avons un public ou un privé et quelque chose que je vais vous enseigner dans un peu, ce qui est appelé domaine sérialisé. Alors, qui peut y accéder en tant que variable publique ? Tout le monde peut entrer. Est-ce une variable privée ? Seul le script sur lequel nous l'utilisons peut utiliser. Ensuite, nous avons le type, comme je l'ai dit, c'est un entier. Nous avons d'autres types que nous verrons plus tard tels que les chaînes, float, et ainsi de suite. Donc, une chaîne est une chaîne de nombres. Nous verrons plus tard quels sont les différents types que nous avons. Nous avons le nom de la variable, et enfin, nous avons les données qui sont stockées à l'intérieur de cette variable. Nous avons donc différents types de variables. Donc, par exemple, disons que les vies peuvent être trois. Nous avons donc trois vies, mais la vitesse, par
exemple, peut parfois être de 4,8 ou 10,6. Donc, afin de représenter la vitesse et d'autres choses telles que la température, nous devons utiliser un flotteur, où nous pouvons utiliser un virgule flottante pour représenter 4 a. Ensuite, nous avons le booléen. Et booléen peut être vrai ou faux. Ainsi, par exemple, notre joueur, nous pouvons créer une variable qui est appelée est morte. Ainsi est notre joueur qui peut être trois ou 4,8. Il doit être soit vrai, soit faux. Donc vrai et faux sont les deux données que nous pouvons mettre dans le booléen. booléens sont très importants, comme vous le verrez au fur et à mesure que nous avançons dans notre projet. Ensuite, nous avons la ficelle. Donc, une chaîne est une chaîne de caractères. Donc le caractère M, I, C, H, E, L. Il s'agit
donc d'une chaîne de caractères qui représentent, par
exemple, l'exploitation minière, qui est Michael ou Michelle. Appelez-moi celui que vous préférez. Et c'est une chaîne de caractères. Ensemble afin de représenter la variable. Ok, donc avec cela fait, la prochaine chose que nous allons faire est que nous allons créer une variable qui est de type corps rigide afin d'obtenir une référence à elle. Donc ici, nous allons créer un public. Si public comme vous pouvez le voir, l'IDE nous aide déjà beaucoup. Public. Corps rigide 2D, et nous appellerons ce corps rigide du joueur profond 2D. Et une autre chose que nous devons toujours garder à l'esprit est la façon dont nous nommons nos variables. Comme vous pouvez le voir, le premier mot n'était pas en majuscule. Le deuxième mot est en majuscule. Et aussi les mots suivants que vous avez à l'intérieur du nom de votre variable sont majuscules. Et je vais te montrer pourquoi ici. Et nous pouvons réellement supprimer le 2D. On n'a pas besoin de ça. Et ici, sauvegardez cela dans notre unité. Nous pouvons regarder à droite et vous pouvez voir que nous avons ici une variable de corps
rigide et une référence à elle. Donc maintenant, nous pouvons ajouter ce corps rigide, il
suffit de le glisser dans cette fente vide. Et maintenant, nous avons référencé le corps rigide des joueurs et maintenant nous pouvons l'utiliser dans notre script. Et comme je l'ai dit, chaque fois que nous mettons en majuscule un mot, vous pouvez voir que nous ajoutons un petit espace ici pour le nom. Par exemple, si je fais ceci un petit b, sauf que dans Unity, le corps
rigide devrait être connecté. Et voilà, c'est ça. C' est pourquoi nous avons ajouté le B. et vous pouvez appuyer sur Contrôle Zed, et nous pouvons revenir en arrière et annuler nos modifications. Donc très agréable maintenant que vous avez appris sur les variables et comment nous pouvons les créer qui juste remettre cela ici. Et maintenant, il est temps de relever un petit défi. Et votre défi sera de créer une variable privée ou de ne pas créer peut-être changé en I variable privée. Donc changé variable de public à privé. Retournez dans Unity et vérifiez la variable dans l'inspecteur. Mettez la vidéo en pause, changez la variable de public à privé et voyez si elle est toujours là dans l'inspecteur. Oh, bienvenue. Donc ici, nous allons changer ça en privé. Assurez-vous de toujours enregistrer votre script et vous savez que votre script n'est pas enregistré. Si vous pouvez voir le petit astérisqué comme strict de leur contrôle S, sauvegardez notre script dans Unity. Et maintenant, nous pouvons voir que nous n'avons plus la variable ici. Alors, comment pouvons-nous référencer notre corps rigide ? On peut utiliser quelque chose qu'on appelle un champ sérialisé. Et laissez-moi vous montrer ce qu'est un champ sérialisé. Et j'expliquerai aussi pourquoi parfois nous avons besoin d'utiliser un domaine public, privé et supervisé. Alors, quelle est la différence ? Donc, une variable privée n'est pas disponible à partir d'autres classes. Ce n'est pas visible dans l'inspecteur. Alors pourquoi avons-nous parfois besoin d'une variable privée ? Disons par exemple que nous avons la vitesse de notre joueur et que nous ne voulons pas, par
exemple, être en mesure d'accéder à la vitesse de notre joueur par accident à partir,
disons, de l'élément bouclier. Donc, nous le rendons privé. Il ne peut donc être accessible qu'à partir du script du lecteur. Donc, la vitesse qui est privée ou la vitesse du joueur est privée. Et il ne peut être accessible qu'à partir du script du lecteur, pas à partir du bouclier, du script, par exemple. C' est donc le pouvoir d'utiliser des variables privées. Maintenant, les objets de valeur publics sont disponibles dans d'autres catégories, sont visibles dans l'inspecteur et, bien sûr, ils ne sont pas visibles dans l'inspecteur. Vous pouvez en fait les voir plus la colonne que je pense est inutile. Mais de toute façon, et le champ sérialisé, les articulations force à la fois le public et le privé, car les champs sérialisés ne sont pas disponibles à partir d'autres classes, mais vous pouvez toujours les voir dans l'inspecteur. Et c'est un outil très, très utile dans Unity. Alors allons de l'avant et faisons de notre corps rigide un champ sérialisé. Donc, au lieu de privé, nous allons en faire un champ sérialisé et assurez-vous d'ajouter toujours ces deux crochets autour d'eux. Donc nous sauvegardons notre script. Nous retournons dans Unity, et maintenant nous avons la possibilité d'ajouter le corps rigide et vous pouvez voir qu'il est déjà là. Donc nous allons sauver ça. Et dans la prochaine vidéo, nous commencerons à utiliser notre corps rigide pour déplacer notre lecteur. Comme toujours, n'oubliez pas de valider nos changements. J' arrêterai de le faire, mais je ferai toujours avec, à la fin de chaque vidéo, car cela prend un peu de temps de toute façon. Eh bien, non, j'espère que ça vous plaira et je vous verrai dans la prochaine.
12. Entrées et velocité: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons en fait apprendre sur entrées et nous allons utiliser notre corps rigide pour quelque chose d'utile. Donc maintenant notre Jimmy, le démon, ne reste pas juste là. Il peut en fait se déplacer vers le haut, se déplacer vers la gauche, descendre, se déplacer vers la droite. Et il peut réellement se déplacer non seulement horizontalement et verticalement, il peut également se déplacer. Alors ne perdons plus de temps et commençons à utiliser notre démon o k. Alors ouvrons tout d'abord notre script et expliquons quelques choses ici. Donc, tout d'abord, nous avons ces trois lignes ici qui commence par l'utilisation, et c'est une collection de bibliothèques. Ainsi, par exemple, lorsque nous écrivons à l'aide du moteur Unity, cela signifie
que nous accédons à un
énorme code énorme qui nous permet d'utiliser, par exemple, le démarrage, la mise à jour, le comportement mono et ainsi de suite. Et c'est la même chose pour les collections système et les collections système. Générique, ce sont d'énormes bibliothèques. Et au lieu d'écrire tout le code pour, par exemple, pour le début et ainsi de suite, nous ajoutons simplement l'utilisation ici et nous pouvons utiliser n'importe quel code que nous voulons. Nous en verrons beaucoup plus tard où nous
ajouterons nos propres bibliothèques et en utiliserons différentes ici. Maintenant, la prochaine chose, nous avons un joueur de classe publique. Donc, tout comme nous avons les variables qui peuvent être publiques ou privées, nous pouvons aussi avoir des classes, et ces classes peuvent avoir à l'intérieur d'elles des méthodes et des variables. Vous pouvez le considérer comme une collection de petits codes à l'intérieur de la classe. Ensuite, nous avons le nom de la classe qui est joueur. Et en aucun cas vous ne changez le nom et ici, parce que si vous changez le nom ici, mais vous ne changez pas le nom du script ici. Vous aurez une énorme erreur et il est très difficile de changer plus tard. Ensuite, nous avons ceci, ces deux petits points ici et le comportement mono. Et je ne parlerai pas beaucoup du fonctionnement de l'héritage. Mais cela signifie que l'héritage du joueur du comportement
mono et du comportement moral est une classe de base. Et qu'est-ce qu'une classe de base ? C' est là que nous avons le début et la mise à jour. Donc, en gros, quand nous tapons ceci ici, cela signifie
que nous pouvons attacher le joueur à un certain objet de jeu et nous pouvons utiliser le début et la mise à jour. Maintenant, ce que notre début et la mise à jour, nous avons un commentaire ici. Donc, le commentaire est toujours précédé de ces deux barres obliques avant. Et start est appelé avant la première mise à jour de trame. Donc, chaque fois que nous commençons notre jeu, chaque fois que
le joueur d'objet commence, la méthode de démarrage s'exécute réellement et nous pouvons ajouter beaucoup de choses ici que nous voulons exécuter chaque fois que l'objet de jeu joueur apparaît ou démarre ou quoi que ce soit ou vient à la vie. Ensuite, nous avons la mise à jour et la mise à jour appelée une fois par trame. Donc, je pense que parce que vous essayez de créer des jeux, vous êtes familier avec les cadres par seconde. Eh bien, la mise à jour s'appelle chaque image par seconde. C' est là que nous pouvons réellement déplacer notre joueur et faire diverses choses. Vérifiez dans l'environnement, voyez ce qui se passe et comment le joueur interagit avec le monde. Donc, si vous voulez commencer comme pour l'initialisation et la mise à jour est pour un mouvement et faire certaines choses. Alors commençons à appliquer tout ça. Et nous allons appliquer d'abord, le mouvement de nos joueurs. Donc nous avons notre corps rigide. Maintenant, ce que nous voulons faire, c'est que nous voulons commencer à bouger. Donc, ce que nous pouvons faire est que nous pouvons utiliser la vitesse de point du corps du joueur. Et vous pouvez voir ici, si nous passons juste au-dessus, un corps rigide, vitesse de point
2D, vitesse linéaire du corps rigide en unités par seconde. Donc, comme vous pouvez le voir, c'est de type vecteur 2. Et nous savons tous ce qu'est un vecteur. Vector est juste un composant en mathématiques qui vous
permet d'utiliser l'axe x et le y et mérité. Mais parce que nous utilisons le vecteur 2, cela signifie
que nous n'utilisons que les x et y. c'est parce
que nous sommes en 2D, peu
importe si nous utilisons l'ensemble ou non. Quoi qu'il en soit, retour dans notre code. Donc la vélocité, j'aime toujours utiliser les suggestions d'ID et le nouveau vecteur deux. Et on va juste lui donner un par un. Donc, ce code ici s'appellera chaque image unique. Ainsi, la vitesse du corps rigide des joueurs viendra le nouveau vecteur 2, 1 f, 1, f, qui sont les coordonnées. Donc, il devrait commencer à avancer dans la direction supérieure droite quand nous commencerons notre jeu. Alors sauvegardons le script. Revenons dans notre jeu et essayons ça. Donc quand on frappera le jeu, tu verras, on y va. Donc notre petit démon Jimmy commence à se déplacer vers le haut et vous pouvez voir que cela arrive à chaque image. Et nous pourrons également tester le départ plus tard. Ok, super. Maintenant, nous avons un peu de mouvement. La prochaine chose que nous voulons faire est que nous voulons réellement utiliser mouvement seulement quand nous avons entré nos Keats avant de plonger dans. Je veux juste dire quelque chose de clair sur les scores. Je ne suis pas là pour vous montrer comment tout est fait. Je suis ici pour vous apprendre comment c'est fait. Donc mon but n'est pas seulement de vous asseoir et de me regarder taper du code. Mon but est de faire de vous une solution de problème de maître. Et la façon dont nous le faisons est de commencer à penser comme un développeur de jeux. Donc, disons, par exemple, que je suis tombé sur ce problème. Je veux avoir des entrées pour mon gain. Alors, qu'est-ce que je fais ? Eh bien, je vais dans Google et disons comment entrer dans Unity. Ok, donc on peut voir ici qu'on a quelque chose qui s'appelle un gestionnaire d'entrée. Allons donc dans les entrées. Donc on regarde ici, d'
accord, et on met très gentil. On a accès, très gentil. Nous pouvons faire défiler vers le bas et Whoa, nous avons les propriétés statiques. Donc, nous faisons défiler vers le bas ,
nous lisons un peu, puis nous voyons ici les méthodes statiques. Et nous pouvons voir qu'il retourne la valeur de l'axe virtuel et cela renvoie la valeur comme nom, pas de lissage. Ok, gentil. Donc, je pense que l'axe GET rho est quelque chose que nous pouvons utiliser. Maintenant, bien sûr, le processus quand vous le faites beaucoup plus longtemps, mais je vous montre juste comment nous résolvons les problèmes au fur et à mesure que nous avançons dans notre voyage. Et puis nous voilà, le point d'entrée, obtenir l'accès. Rob, comme c'est pratique. Maintenant, disons que je n'ai aucune idée de comment utiliser ça. Je peux voir la description. Je peux lire comment la valeur change, et je peux également voir que nous l'utilisons à l'intérieur de la mise à jour. Comment pratique ? Donc ici vous pouvez voir qu'il est de type flottant. Nous lui donnons une vitesse, nous obtenons une entrée et nous la multiplions par le temps.Deltatime, que nous expliquerons plus tard. Et puis on peut l'ajouter quelque part. Très gentil, si génial. Mais que signifie cet horizontal ici ? Eh bien, comme nous avons réellement la fenêtre d'entrée Modifier les paramètres. Ok, essayons ça. Donc, dans l'unité, nous allons dans l'édition, nous allons dans les paramètres du projet. Et où est notre contribution ? Gestionnaire d'entrée ? Nous cliquons sur l'axe et whoa, regardez combien d'axes nous avons. Alors peut-être que j'ai l'air un peu ringard, mais c'est vraiment comme ça que parfois on
découvre les choses en créant des jeux et en faisant des projets. Tellement génial. Nous avons l'horizontale, nous cliquons dessus, nous voyons que son nom est horizontal et le bouton négatif est la gauche, le bouton positif comme le droit. Très gentil. Allons de l'avant et mis en œuvre dans notre code. Donc, de retour ici, on va frapper une entrée. Et comme ils nous ont dit de recréer un flotteur, nous l'appellerons le mouvement horizontal. Et il va être égal à point d'entrée, obtenir la ligne d'accès. Et ici, ils nous ont dit que nous avons besoin d'ajouter un conseil horizontal et très important. Et cela vous fera économiser beaucoup, beaucoup d'heures. Croyez-moi, chaque fois que vous avez une référence de chaîne, cela signifie
que chaque fois que nous avons quelque chose que nous devons mettre entre deux guillemets, comme ici, par exemple, c'est une référence de chaîne si vous tapez horizontalement correctement ici, ce code ne fonctionnera pas. Et pas seulement cela, vous n'obtiendrez pas d'erreur. Donc, chaque fois que vous avez une référence de chaîne, il est toujours préférable de la copier et de la coller ici. Ok, super. Maintenant, nous avons l'entrée en utilisant la ligne get access sur l'horizontale. Et nous le mettons à l'intérieur d'une variable de type flotteur appelé mouvement horizontal. Et maintenant, on peut régler ça à 0. Et au lieu de lui donner un certain nombre arbitraire 1 f, nous pouvons en fait lui donner le mouvement horizontal. On va sauver ça. Nous retournerons à Unity. Et laissez-moi juste obscurcir ça juste ici à côté de l'inspecteur. On a frappé Play. Et maintenant, si nous cliquons sur le a ou le D, vous pouvez voir que notre joueur commence à bouger. Mais si nous essayons de frapper, nous pouvons aussi utiliser le a et D, ou la gauche et la droite, les flèches. Mais si nous essayons de frapper le haut et le bas, nous n'avons aucun mouvement. Et si nous essayons de frapper les W et S, nous n'avons pas non plus de mouvement. Il est donc temps d'appliquer la vitesse verticale. Et je n'ai pas envie de le faire. Donc je vais vous le donner comme un défi. Donc obtenir une entrée verticale et un tracé. Alors obtenez l'entrée pour le mouvement vertical. Appliquez-le à la vitesse du corps rigide et testez-le dans votre jeu. Alors arrêtez la vidéo dès maintenant et allez enseigner défi. Ok, bienvenue. Laissez-moi donc regarder à nouveau les paramètres de notre projet. Rends-le un peu plus grand. Alors, qu'est-ce qu'on veut ? Nous voulons la verticale. Donc je vais ouvrir le bouton vertical, ok, donc négatif vers le bas, en W et ça s'appelle vertical. Donc, nous allons copier verticalement. On peut fermer ça. On retournera ici. Nous allons dupliquer cette ligne et la façon dont nous la dupliquons va simplement mettre le curseur à la fin et appuyer sur Control D. Donc maintenant nous changeons cela de l'horizontale à verticale et nous collons le mot vertical et ici. Donc, en règle générale, rappelez-vous toujours, chaque fois que vous avez une référence de chaîne, vous allez toujours la copier. Et maintenant, nous ajoutons le mouvement vertical au vecteur 2. Alors, qu'est-ce qu'on fait ici ? Nous prenons le mouvement horizontal. Nous prenons le mouvement vertical. Ensuite, nous prenons la vitesse de notre corps rigide joueur. Et nous le définissons comme un nouveau vecteur à qui est créé à partir du mouvement horizontal et le mouvement vertical. Ok, super. Avec cela fait, nous allons nous assurer que nous sauvegardons le script dans Unity. On touche Play et maintenant on devrait pouvoir se déplacer à gauche, à
droite, et vers le haut, vers le bas. Oh, taux de croissance. C' est cool ? Notre jeu commence à prendre vie. J' espère donc que vous l'avez donné de votre mieux et assurez-vous de valider nos changements, comme vous pouvez le voir, commis le dernier changement où j'ai créé un script de joueur et ajouté une référence au corps rigide. Alors je vous verrai dans la prochaine où nous
commencerons à animer notre joueur et le rendre un peu plus rapide. Alors je te verrai là-bas.
13. Animateur et animation: Bienvenue, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons commencer à animer notre Jimmy Dean. Donc quand on avait joué, on n'a pas besoin de jouer. Nous allons en fait aux animations. On peut marcher à gauche, on peut marcher à droite. On peut descendre. Et bien sûr, on peut marcher. Alors ne perdons plus de temps et commençons à apprendre sur les animations dans l'unité. Ok, Donc animations et animateurs à Unity, très amusant. Et commençons tout d'abord par comprendre les animations. Tout d'abord, nous avons quelque chose appelé le contrôleur de l'animateur. Et cela nous permet, ou vous permet d'organiser et de maintenir un ensemble de clips d'animation. Et vous verrez à quoi ça ressemble à l'intérieur d'Unity dans un peu. Ensuite, nous avons le composant animateur, et il est utilisé pour affecter des animations à un objet de jeu dans votre scène. Donc, si votre objet de jeu a un animateur, unité sait que cela peut être animé. Ensuite, nous avons une animation. Et qu'est-ce qu'une animation ? C' est plusieurs sprites sont rendus l'un après l'autre, et il ressemble à une vidéo. Qu' est-ce qu'une vidéo quand vous regardez une vidéo ou un film, une série ou plusieurs images juste à côté de l'autre qui se déplacent ou vont d'une à l'autre extrémité que vous ressentez ou avez-vous l'illusion comme si elles étaient toutes continues ? Et enfin, nous avons le rendu sprite. Nous en avons déjà parlé,
mais je vais juste finir ici pour vous rappeler à nouveau que cela rend une chute de sprite aux graphismes. Alors allons de l'avant et créons notre première animation. Alors, à Unity, ici, comment allons-nous faire ça ? Eh bien, nous allons utiliser nos sprites continus du démon Jimmy qui se déplace à droite, gauche, de haut en bas. Donc, si nous double-cliquez sur le sprite, vous pouvez voir que nous avons un mouvement vers l'avant, un mouvement vers le haut ou vers le haut, vers le bas, vous
voulez l'appeler, puis à droite et à gauche. Alors commençons à créer. Tout d'abord, nous allons dans le lecteur, va cliquer sur la fenêtre apparaître, va descendre et cliquer sur l'animation. Maintenant, nous avons l'animation et ici nous allons l'ancrer à côté du jeu. Et assurez-vous que le vrai clic sur le joueur. Ici, vous pouvez voir pour commencer le lecteur d'animation créer un animateur et clip d'animation. Donc, dans l'inspecteur, je vais juste les rendre un peu plus petits et nous allons cliquer sur Créer. Donc, où cela nous donne l'option de l'endroit où nous voulons enregistrer ces animations. Donc, je pense que dans les actifs, dans les légendes de la conquête et des actifs, je vais juste faire un clic droit ici, créer un nouveau dossier. On appellera ça les animations. Nous allons double-cliquer ici. Nous allons créer un dossier pour le lecteur. Et à l'intérieur de ce dossier va créer la marche droite, ou vers la droite ou tout ce que vous voulez appeler votre animation. Donc, on va frapper sauver. Et voilà. On a une chronologie ici. Nous avons la pièce, nous avons le record, et nous devons nous assurer ici que nous travaillons sur la marche droite ? Animation. Alors comment allons-nous prendre ce prix de la marche, non ? Qui sont ceux-ci, et mettez-le, mettez-les ici. Très simple. Nous cliquons simplement sur le premier. Nous maintenons la touche Maj enfoncée, cliquez sur le dernier, et nous le faisons glisser ici jusqu'à la chronologie. Donc, comme vous pouvez le voir en ce moment quand on frappe le jeu, ils sont extrêmement rapides. On peut donc les séparer. Pour qu'on puisse les mettre à l'écart de dix images. Donc maintenant, quand on frappera Run, tu peux voir qu'on marche en quelque sorte. Vous remarquez qu'il y a certainement quelque chose de mal, ne fonctionne pas correctement. Pourquoi c'est ça ? Eh bien, parce que si on arrête ça une seconde, on commence par la première image. Nous marchons la jambe droite, puis nous nous tenons droit, puis nous marchons la jambe gauche, puis nous recommençons immédiatement ici. Donc, ce que nous voulons, c'est essayer de lisser ce processus. Nous allons donc choisir le premier cadre. Nous allons le copier. Et puis nous allons déplacer dix images vers la droite parce que comme nous le savons ici, sont séparées par dix images. Une pièce basée ici. Jouons. Et voilà. Vous pouvez voir que nous avons une sorte d'animation normale qui fonctionne pour nous. Et si tu veux, tu peux le modifier. Disons que peut-être les séparer un peu plus. Alors maintenant, quand on marche, non ? Je pense que ça mais pour ouais, je pense que c'est une bonne vitesse. Vous devez choisir votre propre vitesse et voir à quoi vous voulez que votre joueur ressemble pendant son, sa marche. Ok, super. Alors maintenant, nous avons le droit de marcher. Allons de l'avant et créons la marche vers le bas. Nous allons donc créer une nouvelle animation ici. Donc, de la façon dont je l'ai fait, je me propose de créer d'abord un nouveau clip ici lorsque nous cliquons sur un nouveau clip, et nous allons appeler cela la marche vers le bas. Alors marchant vers le bas, sauve ça. Maintenant, nous avons une toute nouvelle animation. Et si vous le souhaitez, ce mini défi de créer cette animation, vous aurez en fait un défi plus tard. Laisse-moi te parler à nouveau. On va aux sprites. Nous choisissons nos sprites. Donc c'est la marche vers le bas, comme vous pouvez le voir, on les déplace ici. On va les séparer. Disons à 10 heures. Encore une fois, nous prendrons le dernier cadre, nous le copierons. Donc Control C, on ira au cadre où on veut le mettre, qui est sur le 50, et on va le coller ici. Et je ne pense pas que ce soit correct. Donc 10 puis sur le 2030 et celui-ci est sur 40. Donc, quand nous allons jouer, nous pouvons voir que notre démon fonctionne correctement comme nous le voulons. Ok, c'est ça ? Donc on va arrêter ça maintenant. Enfin, nous avons la marche vers le haut et la marche à gauche. Donc, ce sera votre défi. Votre défi est de terminer les animations. Donc, tout d'abord, créer deux autres animations, 140 joueur marchant à gauche, et une pour le joueur marchant vers le haut. Je ne sais pas pourquoi ces traits de soulignement ? Vous pouvez nommer vos animations comme vous le souhaitez. Ça dépend de vous. Peut-être que quand j'ai créé ce défi, pensez-vous les appeler de cette façon ? Pas de soucis à ce sujet. Tu les appelles comme tu veux. Alors arrêtez la vidéo dès maintenant et allez faire le défi. O K. Bienvenue. J' espère que vous avez essayé de faire de votre mieux. Une chose que nous n'avons pas mentionnée, c'est l'animateur juste ici sur le joueur. Donc, comme vous pouvez le voir, nous avons un animateur dans l'inspecteur du joueur, et nous verrons plus tard sur le contrôleur de l'animateur, vous pouvez déjà le voir ici. Si nous double-cliquez sur le lecteur, Ceci est le contrôleur de l'animateur, mais nous allons nous inquiéter à ce sujet dans la prochaine ou les vidéos à venir. Maintenant, finissons nos nouveaux clips. Donc, nous allons créer une marche vers le haut. Donc, en marchant et nous allons aller dans où sont nos atouts, tout en marchant vers le haut. Donc ce sont nos sprites, maintenez le règlement Shift ici et faites-les écarter. Copiez le premier. Mettez-le sur le dernier, appuyez sur Play. Oui. Assez bien. Ensuite, nous allons créer un nouveau clip et nous allons créer à gauche, appuyez sur Enregistrer. Et tandis que notre marche à gauche, nous choisirons ces quatre, les
mettrons ici, les
séparerons par 30, nous copierons le premier, mettrons comme le dernier. Et maintenant, quand on frappe le jeu, on marche à gauche. Maintenant, nous avons la marche vers le bas. Notre monstre descend. Laisse-moi juste zoomer un peu et peut-être aller au match. Et non, que ceux qui ne travaillent pas, nous devons choisir le joueur. Et peut-être si on le met ici. Alors maintenant, quand on marche droit au jeu, alors on marche droit ? Nous avons eu la marche avec le jeu. On marche vers le haut. Nous descendons, et nous marchons à gauche. Ok, Excellent. Donc, avec cela fait, j'espère que vous apprécierez ça. J' espère que vous avez créé vos propres animations. Je pense que nos sprites auront besoin d'un peu de peaufinage quand nous commencerons à tout ajouter, mais pas de soucis. Et la prochaine vidéo, nous allons utiliser ces animations dans notre contrôleur d'animateur ou la machine d'état
, comme vous voulez l'appeler. Et nous allons les définir ou commencer ces différents états à partir de notre code afin qu'aucun, j'espère que vous en apprécierez et je vous verrai dans le prochain. N' oubliez pas de terminer votre travail.
14. Transition et mélange: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons apprendre tout sur les transitions et les arbres de mélange et y dans ce cas et notre cas particulier, nous voulons utiliser un arbre de mélange au lieu de transitions. Donc quand on va jouer, tu peux voir qu'on a tout ce truc cool ici qui se passe. Et si nous déplaçons le curseur vers la gauche ou le démon Jimmy commencera à se déplacer vers la gauche, vers le bas. Il se déplace vers le bas, vers le haut et se déplace vers le haut, écrire des mouvements droit ? Et pas seulement cela, la vidéo est un peu longue parce que nous avons essayé de modifier et d'améliorer la façon dont nous avons découpé nos sprites. Alors ne perdons plus de temps. C' est une très longue vidéo et commençons. Oh, donc la première chose que nous devons faire est de créer des animations pour les deux positions. C' est alors que le joueur est en fait debout et ne marche pas. Pour ce faire, nous allons créer un nouveau clip. Ce sera un lien vers le bas. Nous gardons ça, et nous allons simplement traîner, où est-il ? Un cadre ? Il s'agit donc d'une animation d'une image. Quand on joue, rien ne change. Il suffit de placer ce cadre et ce sera important plus tard. Tu verras comment. Donc encore une fois, nous allons créer le ralenti, sauvegardez ça. Vary, va, joue. Ok, super. Créer un nouveau. Et voilà. L' EIDL, à gauche. Super. Maintenant, nous avons le ralenti et nous marchons. La prochaine chose que nous allons faire est de créer des transitions entre tout. Alors allons de l'avant dans notre animateur. Si vous n'avez pas votre animateur, vous pouvez double-cliquer ici sur l'inspecteur du lecteur. Ou vous pouvez aller à l'animation Windows, l'animateur à qui j'ai parlé juste ici à côté de la scène. Donc, comme vous pouvez le voir en ce moment, nous avons toutes les animations ici. Marcher à droite, descendre, marcher vers le haut, marcher à gauche, tourner au ralenti. Et qu'avons-nous d'autre ? Le ralenti sur l'île, à droite, et le ralenti à gauche. Donc c'est un peu trop petit. Il suffit de le déconnecter quelque part ici et d'ouvrir complètement l'écran pour que nous puissions zoomer et nous amuser. Alors, qu'est-ce qu'on va faire ici ? Laissez-moi le faire comme ça, parce que lorsque nous cliquons sur une de ces animations, nous voulons voir l'inspecteur. Alors, qu'est-ce qu'on va faire ? Tout d'abord, nous avons l'entrée et nous avons l'animation par défaut. Donc, actuellement, c'est la promenade, non ? Nous voulons changer cela. Disons par exemple, les animations normales que nous voulons ou l'animation par défaut que nous voulons est le ralenti, n'est-ce pas ? Donc, nous allons faire un clic droit sur le ralenti droit, et définir ceci comme l'état par défaut. Dès qu'on entre,
on tourne au ralenti, non ? Ok, super. Maintenant, comment allons-nous passer à la marche, n'est-ce pas ? On peut mettre l'animation ici. Nous pouvons aller de l'avant et cliquer avec le bouton droit de la souris sur Faire et la transition et le mettre dans la marche, non ? Et comme vous pouvez le voir, tout d'abord, nous avons une transition pour marcher à droite du ralenti, non ? Et si nous cliquons sur la transition qui est représentée ici, vous pouvez voir que nous avons l'heure de sortie. On peut éteindre ça. Nous pouvons avoir une durée de transition. Alors combien de temps il faut pour passer d'une animation à l'autre, l'heure de sortie. Donc, après avoir terminé l'animation ou après un certain temps de terminer l'animation, nous pouvons en sortir,
et ainsi de suite et ainsi de suite. Il y a beaucoup de choses que nous pouvons avoir ici, et nous pouvons également ajouter une condition à la transition du droit de ralenti à la droite de marche ? Et comment pouvons-nous faire ça ? Eh bien, nous pouvons le faire par exemple, disons que nous allons au paramètre. Nous pouvons créer un paramètre. Il peut s'agir d'un entier flottant booléen ou d'un déclencheur. Ainsi, nous pouvons créer un, par exemple, disons que nous voulons commencer à marcher après que notre couche se déplace à une certaine vitesse. Donc, nous créons un flotteur. Nous l'appelons, disons par exemple, mouvement y. donc c'est le mouvement sur l'axe y. Et maintenant, si nous allons à la transition, nous ajoutons un plus. Et ici, vous pouvez voir que automatiquement nous avons le mouvement y et nous pouvons définir le plus grand. Donc, par exemple, si le mouvement y est supérieur à, disons deux ou trois ou quoi que ce soit, nous passons de simplement tourner au ralenti, aussi, marcher. Et c'est ainsi que nous mettons généralement en place des animations. Mais vous pouvez voir que cela peut être très lourd. Pourquoi ? Parce que disons par exemple, nous marchons bien ? Et puis nous voulons immédiatement commencer à marcher à gauche. Eh bien, nous allons créer une transition. Dis-moi. Ok, super. Mais disons, par exemple, marcher à droite ? Soudain, on commence à marcher, d'accord, puis on fait une transition vers le haut. Mais puis une transition de la marche vers la gauche. Une transition de la marche vers le haut à la droite ? Et vous pouvez voir que cela devient très lourd et nous n'avons toujours pas compris comment nous allons ajouter le ralenti. Donc c'est là que nous allons utiliser quelque chose d'un peu différent et c'est un peu avancé. Mais c'est ce dont nous aurons besoin pour réellement utiliser toutes nos animations et notre état. Et ça s'appelle l'arbre de mélange. Laissez-moi vous montrer une unité, les chiens ce que sont les blancs. Vous pouvez aller de l'avant et passer à travers eux, voir comment ils sont créés. C' est très agréable, ils sont très documentés et je
vous recommande d'aller lire à propos de tous ceux qui vont les utiliser tous. Et ce sur quoi je veux que vous vous concentriez, c'est ici, et nous avons parlé de transitions. Et vous pouvez voir que les transitions sont utilisées pour passer en douceur d' un état d'animation à un autre sur une durée donnée ou une certaine condition. Mais les arbres de fusion sont utilisés pour permettre à plusieurs animations d'être mélangées en douceur en les incorporant une partie de degrés divers. Donc, comme vous pouvez le voir, parce que nous cherchons à incorporer plusieurs animations à mélanger ensemble. L' utilisation d'un arbre de mélange est une bien meilleure façon. Alors allons de l'avant et créons nos arbres de mélange. Donc, à Unity, ici, on peut voir et les chiens ici, la façon dont on crée. Donc, sélectionnez, Créer l'état ou cliquez avec le bouton droit de la souris dans l'espace vide dans le contrôleur de l'animateur. Et nous allons sélectionner créer et à partir d'un nouveau coffret déjeuner. Donc, à Unity, laisse-moi juste agrandir ça un peu. Nous avons supprimé toutes nos transitions, et maintenant nous allons cliquer avec le bouton droit de la souris. Et nous allons aller à l'état Créer et à partir d'un nouvel arbre de fusion. Donc on va appeler ça le mélange de marche. Maintenant, la marche que, la marche une fade. Et allons-y et supprimons tout ça d'ici. Et aussi supprimer le ralenti, non ? Et comme vous pouvez le voir immédiatement, parce qu'il n'y a pas d'autre animation sur 90 marche mélange, il va devenir le calque par défaut. Ok, super, donc maintenant, si on double-clique sur le mélange de marche, on voit que nous ne sommes plus sur la couche de base. Nous sommes sur la marche une couche de mélange. Et si nous cliquons ici, vous pouvez voir que nous avons beaucoup de choses que nous pouvons changer. Et l'un d'eux sera le type de glande. Nous ne travaillons pas en 1D, nous allons travailler en 2D, simple directionnel. Donc maintenant nous avons le mouvement sur le y et le mouvement sur le Y. C'est pourquoi nous devons créer un, un autre mouvement qui va avec le mouvement sur le X. Et maintenant les paramètres peuvent être le mouvement x et le mouvement. Pourquoi ? Ensuite, nous allons faire un peu plus petit et nous allons ajouter des motions à notre plan. Donc la première chose que nous allons faire est
d'ajouter une motion pour marcher et monter, d'accord. Ou allons-y et ajoutons la motion pour marcher, non ? Laisse-moi juste faire ça un peu. Laissez-nous chercher, ou nous pouvons cliquer sur ce petit cercle juste ici. Si nous cliquons dessus, nous pouvons aller chercher le droit de marche. Double-cliquez dessus. Nous avons donc maintenant cette première motion et nous allons la mettre dans un certain cercle. Donc, si on croise d'abord 0, 1, on garde ça à 0. Et nous allons de l'avant et ajoutons une deuxième motion. Vous verrez que nous avons une position ici et ce point rouge quand il bouge, il va à l'une des positions. Permettez-moi de vous montrer ce que cela signifie en créant une seconde, qui va être la marche vers le haut. Donc nous cliquons ici. On va marcher. Et nous allons définir la position ici sur le x à 0 et celle à 0,1. Donc, comme vous pouvez le voir, maintenant, si nous avançons vers l'un d'eux, l'animation va changer. Et vous verrez comment nous allons manipuler le mouvement x et le mouvement. Pourquoi ? Afin de commencer à changer ces ? Maintenant, vous pouvez voir que nous avons ce cercle juste ici. La prochaine chose que nous allons faire, et vous pouvez le voir littéralement, j'essayais de déplacer mon bouton de lecture et voilà. Si on a besoin de les déplacer entre ces deux lignes. Ou vous pouvez voir ici simple directionnel alors devrait avoir un mouvement avec une direction inférieure à 180 degrés d'écart. Donc, si nous nous rapprochons de celui-ci, nous allons à droite, nous nous rapprochons de celui-ci,
nous commençons à avancer, mais ce n'est pas ce que nous voulons. Nous voulons aussi être en mesure de descendre et de monter. Donc ça va faire partie de votre défi. Votre défi est de terminer les autres positions. Donc, créez deux mouvements de plus, un pour marcher à droite et 14, marcher à gauche. Assurez-vous que vous définissez la position x et la position y correctement. Et enfin, jouez avec le cercle rouge et voyez comment toutes ces émotions se mélangent réellement. Bon, bienvenue. Nous allons donc ajouter deux autres motions. L' un d'eux marchera vers le bas et l'un d'eux marchera à gauche. Et comme vous pouvez le voir, ceux-ci sont mélangés dans cet arbre et il est basé sur le mouvement. Quoi qu'il en soit, continuons ici. Alors marcher vers le bas, où devrait être la marche vers le bas ? La marche vers le bas devrait être, je crois moins 0,10. Moins 0,1 devrait être ici, et ce tir devrait être 0. Et puis nous avons, où est-il ? C' est la marche à gauche sur la position x. il devrait être moins 0,10. Tellement génial. Alors maintenant, avant de passer à gauche, nous allons à gauche. Vous pouvez voir même le petit bleu ici. C' est un peu bleu qu'on se déplace vers la droite. Donc, nous allons à droite, nous allons vers le bas. Vous pouvez voir que ça devient un peu plus bluffant. Et c'est ce que nous entendons par mélange. Nous mélangeons donc les animations ensemble en utilisant le mouvement x et le mouvement. Pourquoi ? Correct. Donc maintenant, on peut aller de l'avant et faire glisser ça quelque part peut-être sur la scène. Alors maintenant, quand on court notre jeu, alors on bouge à droite, on voit qu'il bouge bien. Quand on se déplace à gauche, on se déplace à gauche. Quand nous descendons, nous marchons vers le bas. Et quand nous montons, nous remontons bien. Mais comme vous pouvez le voir, il y a quelque chose de pas tout à fait correct, comme si notre démon sautait d'un endroit à l'autre et c'est à cause des sprites, la façon dont nous les découpons. Donc, si nous retournons dans nos actifs et nous allons de l'avant et créons un dossier ici. Nous allons l'appeler les scripts, et mettons le script du lecteur à l'intérieur. Et encore une fois, nous allons créer un nouveau dossier et nous appellerons ça les sprites. Peut-être que nous allons créer des sous-dossiers et côté. Donc, les sprites ici, si nous cliquons sur l'éditeur de sprites, vous pouvez voir comment ils sont découpés. Et ce n'est pas tout à fait ce que nous voulons. Nous voulons toujours que nos tranches soient, ou que notre joueur soit toujours au milieu de nos tranches. Alors comment allons-nous faire ça ? Bon, bienvenue. Donc, après un peu de bricolage et ici, j'ai finalement décidé comment je vais faire mon démon. Donc, si dans vos sprites ou ceux que vous avez choisi de l'art de jeu ouvert ou aligné correctement. Super, je suis très heureux pour toi, pour ceux qui ne l'ont pas correctement aligné comme moi, ceux d'entre vous qui utilisent le dragon. Et voici quelques règles que vous devez suivre afin d'aligner tous vos sprites. Tout d'abord, vous devez vous assurer que chaque coupe du démon est au milieu, ou que le personnage que vous utilisez se termine au milieu de la tranche. Vous ne pouvez donc pas tout découper automatiquement. Il suffit de couper la grille par taille peut être 64 sur 64, puis vous devrez continuer à la main. Donc, tout d'abord, vous remarquerez que tous ces carrés ici ont la même largeur et la même hauteur. Comme vous le voyez, 64506450. C' est donc important pour tous ceux qui sont soit orientés l'avant ou vers l'arrière selon la façon dont vous voulez. Donc, les deux premières lignes devraient être les mêmes. Mais pour ceux qui se déplacent horizontalement, il devrait y avoir une taille différente parce que le démon n'est pas aligné correctement. Mais il y a une façon très astucieuse. J' ai donc choisi de faire 45 par 45. Donc, la largeur est de 45 pour toutes les découpes. Et 45 et hauteur. J' ai trouvé que c'est un très bon nombre. Alors la prochaine chose est de savoir comment on va les positionner ? On ne veut pas juste le faire. Donc, ici, vous pouvez voir la position des coupures. Ou si je passe sur le X, vous pouvez le voir le plus. Et sur le y il le fait aussi. Le 75 est donc arbitraire. J' ai juste essayé de le faire au milieu autant que possible. Et puis la position va juste augmenter de 64, Y 64, eh bien, parce que la largeur du dragon et ici est 64 et je pense que le sprite est disséqué ou mis sur pour cette raison. Donc, vous pouvez voir que ce premier est à la position 0, second est à 64, 128, 192. Mais que diriez-vous de celui-là ? Donc c'est 1983, 174, et tous doivent être sur le même y. donc c'est important. Ensuite, nous avons le dragon ici. Donc, vous pouvez voir qu'il est à la position 211 parce que nous l'avons mis à droite autant que possible, et ensuite nous en retirons simplement 64. Donc 147, 83 et 19. Tellement génial, mais c'est fait, allons de l'avant et appliquons tout ça. Et vous verrez que maintenant nos animations devraient être plus fluides
sans que nous ne modifiions réellement les sprites d'animation sur le joueur. Parce que chaque fois que nous apportons des modifications à ces sprites, ils sont changés partout dans notre jeu. Alors maintenant, quand on frappe le jeu, on va voir l'animateur. Vous pouvez voir que par défaut il marche immédiatement à droite ? Si nous cliquons sur l'arbre Blend, nous commençons à le déplacer vers la gauche. Il commence à marcher vers la gauche. Vous pouvez voir que c'est très petit. Il est à la même hauteur et vous pouvez sentir qu'il bouge au même endroit et pas juste sauter. Et puis en bas, puis en haut, à gauche, en bas, à gauche. Et vous pouvez voir que c'est très naturel. Peut-être qu'il a besoin d'un peu de peaufinage, mais c'est pour vous si vous avez un peu de TOC. Tellement génial avec cela fait, j'espère que vous apprécierez ça. Allons de l'avant et engageons nos changements. Et dans la vidéo suivante, nous allons utiliser du code pour réellement déclencher ces animations. Alors je te verrai dans la prochaine.
15. Mélanger des animations d'arbres en unité: Bienvenue, Mes développeurs de jeux préférés dans cette vidéo, quand nous appuyons sur le bouton Play, nous marchons non seulement sans joueur, mais nous pouvons réellement changer la direction qu'il marche en utilisant les touches WASD, et il est basé sur les joueurs vélocité. Mais le problème est que nous n'avons pas d'état de ralenti dans le mélange. Donc, nous créons un autre arbre de mélange juste pour le ralenti de notre joueur. Maintenant, nous ne l'implémenterons pas complètement dans cette vidéo, mais nous le ferons dans la prochaine. Ok, donc ne perdons plus de temps et commençons. Oh, ok, donc actuellement, quand nous lançons le jeu, vous pouvez voir que notre joueur marche à droite, mais même si nous bougeons de haut en bas, il n'y a pas de changement dans son animation. Donc, ce que nous voulons faire, c'est que nous voulons attacher le mouvement x et le mouvement y à l'animateur du joueur. Alors commençons. abord, allons de l'avant et ouvrons le script du joueur ici. Alors que le script du lecteur double-cliquez, et ouvrons Visual Studio. Donc ici, la première chose que nous voulons faire
pour commencer à contrôler le mouvement x et y, nous voulons obtenir une référence de l'animateur. Donc, nous allons créer un champ sérialisé, et ici il va être de type animateur. Alors Annie May parle, et on va l'appeler l'animateur. Ok, donc on se souvient de capitaliser tous les mots sauf le premier. Retournons à Unity. C' est attendre que le script se compile. Et allons de l'avant et traînons l'animateur de l'inspecteur dans l'inspecteur et mettez-le ici. Super, Donc maintenant nous avons une référence à l'animateur. Ouvrons la fenêtre Animator. Et allons-y et ouvrons la marche de la plante. Maintenant, qu'est-ce qu'on veut ? Nous voulons le mouvement x et le mouvement. Pourquoi ? Parce que ce sont celles ou les variables qui contrôlent la façon dont notre joueur marche. Donc, nous allons aller de l'avant et utiliser une fonction qui est appelée le flotteur de point de l'animateur. Et laissez-moi vous montrer ce que c'est. Donc, si nous allons ici, vous pouvez voir que nous avons tapé AnimatorSet float, et nous allons l'ouvrir et les documents d'unité. Donc ici vous pouvez voir que nous avons le flotteur et nous pouvons voir comment nous pouvons le déclarer. Donc, vous pouvez voir la première chose que nous avons dit le nom de la chaîne, et c'est le nom du paramètre que nous voulons changer. Vous pouvez le voir ici. Donc, quel est le nom, le nom, le nom du paramètre, puis la valeur qui est la nouvelle valeur du paramètre. Alors, comment allons-nous joindre ça ? Eh bien, et ici nous allons passer la vitesse des joueurs dans le flotteur de jeu animateur, et cela va changer le mouvement et le mouvement. Pourquoi ? Laissez-moi vous montrer ce que je veux dire. On va chercher l'animateur du joueur. On va mettre le flotteur. Et parce que c'est une référence
de chaîne, bien sûr, nous allons obtenir, retourner dans Unity, copier les actes de mouvement. Ouvrir. Visual Studio, collez-le ici. Et quelle sera la valeur ? Eh bien, ce sera le point de vitesse du point du corps rigide du joueur X. et ensuite nous allons le dupliquer. Et comme je l'ai dit, nous dupliquons cela en utilisant le contrôle D. Et au lieu du mouvement x, ça va être le mouvement Y. et au lieu de la vitesse de x va être le point de vitesse y. Maintenant, si nous revenons à l'unité, assurez-vous de sauver tout cela dans l'unité. On jouait. Donc maintenant, si on commence à monter, tu peux voir que notre démon Jimmy monte. Et si on se déplace à gauche, il se déplace à gauche, en bas, à droite, en haut, en bas. Et vous pouvez voir comment le mouvement change ici, dans l'ennemi. Donc, quand nous marchons à gauche, vous pouvez voir que le mouvement agit comme minus1 tandis que le mouvement y est 0, nous marchons vers le bas le mouvement et ce moins un, et ainsi de suite et ainsi de suite. Tellement génial, c'est incroyable. Mais le problème est que, comme vous pouvez le voir, quand nous lâchons les clés, les démons avancent encore et nous devons les réparer. Et comment on répare ça ? Eh bien, nous allons utiliser les animations inactives que nous avons créées pour les définir à la fin ou quand nous arrêtons réellement de bouger. Pour ce faire, je vais vous lancer un défi. Donc, configurez le reste des états d'inactivité. Vous devrez donc créer les animations inactives de trois joueurs pour chaque joueur. Je pense que nous avons déjà créé tout ça. Vous devrez créer un nouveau mélange. Ce n'est pas quelque chose que nous avons créé et l'appelons le joueur inactif fade, ou tout ce que vous pensez répondre à vos besoins. Vous aurez besoin de créer deux paramètres, le dernier x et le dernier y et ce sera la direction à laquelle nous avons fait face pour la dernière fois. Et vous aurez besoin de mettre en place les quatre directions inactives comme nous l'avons fait dans la marche. Alors mettez la vidéo en pause maintenant. Si vous ne vous souvenez pas comment nous avons fait tout cela, vous pouvez regarder la vidéo précédemment ou vous pouvez essayer de faire votre meilleur plan, assurez-vous que vous essayez votre main à ce défi. Alors mettez la vidéo en pause et allez faire la démangeaison. Bon, bienvenue. Donc, dans la couche de base, nous allons faire un clic droit ici, créer un état à partir d'un nouvel arbre de fusion. Nous allons appeler ça l'un ou l'autre mélange. Et c'est parce que nous avons peut-être le mélange au ralenti. Donc, soit lien fade et c'est juste pour rester en harmonie avec les glandes marchantes. Nous avons donc une glande au ralenti, une glande marchante. Lorsque nous double-cliquez sur le mélange au ralenti, vous pouvez voir que nous avons le mouvement x et y, mais nous ne voulons pas cela. Nous avons besoin du dernier x et du dernier y. Donc nous allons créer un flotteur, le dernier, ou nous n'avons pas besoin de capitaliser le dernier X et de flotter le dernier. Pourquoi ? Nous allons en
faire une direction simple 2D et les paramètres vont être le dernier x et le dernier. Maintenant, nous devons avoir quatre motions ici. Ce sont donc nos quatre motions. Nous allons ajouter le ralenti, ralenti bras droit vers le haut et la, Alors que le ralenti là-bas. Alors, qu'est-ce qui reste au ralenti ? Quelle est la position d'Aileen gauche ? Ça va être moins 10. Alors l'élargissement de la droite sera 10. Soit dans AP va être 0, 1, et je vais lier 0 moins swap. Ok, super. Alors maintenant, quand on regarde, on a le petit bouton. Vous pouvez voir qu'on peut juste vérifier et s'assurer que ça marche. Alors on monte. Vous pouvez voir que nous sommes au ralenti. Nous sommes au ralenti. Nous tournons au ralenti à gauche et à droite. Et je regarde la couleur ici, si vous pouvez remarquer qu'il devient un peu plus bleu chaque fois que nous choisissons la direction, et il est basé sur les derniers x et y. Donc j'espère que vous avez fait le défi. J' espère que vous avez apprécié cette vidéo et que vous avez réellement créé votre propre terre. Il est très important que vous essayiez toujours de relever ces défis. Donc, avec cela dit dans la prochaine vidéo, nous allons implémenter les états de ralenti dans notre lecteur. Et je te vois dans la prochaine vidéo.
16. Face à la bonne direction: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous avons créé
un moyen de se souvenir de la dernière direction que notre joueur faisait face. Alors maintenant, quand on marche à droite, on s'arrête. Nous nous souvenons que moins la direction était bonne. Nous nous souvenons que la dernière direction était laissée de haut en bas. Et cela rend notre jeu beaucoup plus, disons, réaliste et beurre à la recherche. Alors ne perdons plus de temps et commençons. Oh, ok, alors maintenant nous voulons créer un moyen de passer de la marche à l'idyllique. La première chose que nous voulons faire est que nous voulons faire de l'inactivité la couche par défaut. La façon dont nous faisons cela, nous avons déjà couvert cela, nous faisons un clic droit et définissons comme l'état par défaut précédemment quand j'ai vu la couche, je voulais dire l'état par défaut. Donc, à l'entrée, nous pouvons voir ici que nous commençons à tourner au ralenti. La prochaine chose que nous voulons faire est de créer une transition entre le ralenti et la marche. Pour ce faire, nous allons cliquer avec le bouton droit de la souris, faire une transition et la mettre dans le noir de marche. Maintenant, si nous cliquons sur la transition juste ici, vous pouvez voir que nous avons un temps de sortie et nous avons la durée de transition et ainsi de suite. Donc, ce que nous voulons faire, nous ne voulons pas de temps supplémentaire, comme nous l'avons dit, l'heure de sortie, comme un moment où la marche retourne au ralenti, s'arrête complètement. Nous ne voulons pas que la prochaine, la durée de transition, vous pouvez le définir comme un petit peu de temps, mais je pense que 0 serait mieux quand nous testons cela, nous verrons si c'est mieux. La prochaine chose que nous voulons faire est de voir quelle est la condition pour passer du ralenti à la marche. Donc, si nous frappons le plus et ici
nous pouvons voir que nous pouvons régler le mouvement x ou le mouvement y, ou le dernier x et y. Maintenant, nous ne voulons pas toucher les derniers x et y. Nous voulons simplement passer en fonction du mouvement et le mouvement. Pourquoi ? Donc, si le mouvement x est supérieur à 0 plus un, alors nous passerons de la marche au ralenti et à la marche. Encore une fois, nous voulons vérifier un mouvement. Pourquoi ? Donc, si nous faisons une transition de ralenti aussi, marcher, encore une fois, vous pouvez voir que nous avons plusieurs transitions représentées par plusieurs flèches sur la même ligne. Nous voulons également décocher l'heure de sortie. Nous voulons définir la durée de transition à 0. Et la deuxième condition sera si le mouvement y est supérieur à 0,1, ok, super. Vous pouvez modifier les transitions apparaissent, vous pouvez les voir. Donc c'est l'ouverture des yeux à la marche. Et ce sont nos conditions, le mouvement x, le mouvement. Pourquoi ? Maintenant ? A, une autre chose que nous voulons vérifier est si le mouvement sur le x est inférieur à moins 0,1. Donc, cela est important de garder à l'esprit en raison du mouvement est inférieur à moins 0,1. Ensuite, nous passerons dans la marche mais dans l'autre direction. Donc, nous allons décocher l'heure et la durée de sortie. Et enfin, cela devrait être assez évident si nous avons l'état du mouvement y étant inférieur à moins 0,1,
alors nous avons aussi fait la transition dans la marche un fade, ok, donc mouvement sans fil puis point zéro un, mouvement x inférieur à, supérieur et supérieur. Maintenant, avant de passer à autre chose, nous devons également créer une transition de la marche au ralenti. Et cela ne nécessitera qu'une seule transition avec plusieurs conditions. Nous allons donc définir la durée de transition à 0 et le temps de sortie à 0. Donc, nous allons ajouter une condition ici que chaque fois que
le mouvement sur le x est supérieur à 0 ou moins 0,1, alors nous voulons revenir en arrière. Et parce que nous n'avons pas, disons, plusieurs façons de revenir en arrière ne nécessitent qu'une seule transition. Et nous y ajouterons toutes les conditions. Donc, le mouvement x est inférieur à 0,1. Si le mouvement est supérieur à moins 0,1, et si le mouvement y est inférieur à 0,1. Ok, super. Alors sauvegardons ça. Et allons de l'avant et testons ça. Donc, quand nous exécutons notre code, vous verrez que notre joueur tourne actuellement au ralenti et vous pouvez le voir ici sur la fade de ralenti. Et si nous commençons à marcher, vous voyez que nous sommes dans la fade de marche. Quand nous nous sommes arrêtés, vous pouvez voir que nous sommes au ralenti, mais nous sommes par défaut au sprite où le démon regarde à gauche. Donc encore une fois, nous sommes descendus, si vous marchez fade, marchant à gauche. Et si nous arrêtons de marcher, vous pouvez voir que nous nous tournons de l'autre côté. Et ce n'est pas quelque chose que nous voulons. Nous voulons vraiment faire de notre joueur ou Jamie Dimon, rappelez-vous que moins il était en train de faire face. Et sur la base de ça, eh bien, quand on s'arrête, allez dans le visage du blink eye eye eye blend comme ça. Mais pour ce faire,
nous aurons besoin de quelque chose qu' on appelle une condition if. Laissez-moi vous expliquer ce qu'est une condition si. Structure d'instructions if conditionnelles. Donc, la façon dont nous écrivons une condition if, c'est simplement ce que cela signifie. Si une condition qui doit être vraie, nous devons les mettre à l'intérieur de ces deux crochets juste ici. Donc, si une condition qui doit être vraie est vraie, alors le code à l'intérieur de ces deux crochets est exécuté. Donc si nous avons une condition ici qui est fausse, le Golden ici n'est pas exécuté. Mais que se passe-t-il alors ? Nous n'avons ceci que si juste ici, nous passons juste avec notre code. Mais nous pouvons aussi ajouter un autre si. Donc, sauvegardons cette condition ici est fausse. Ensuite, nous passons à l'autre. Si nous avons une autre condition qui est vraie ou qui doit être vraie. Et si cette condition est vraie, alors nous exécutons le code à l'intérieur de ces deux crochets. Mais si la condition ici est vraie, nous exécutons ce code et ensuite nous passons à autre chose. Mais que se passe-t-il si cette condition est fausse et que cette condition est fausse ? Et si nous avons plusieurs autres else-if avec toutes leurs conditions toutes fausses. Eh bien, nous pouvons aussi ajouter un autre. Dans le cas où toutes les conditions de la série ici sont fausses, alors le, ce code qui est à l'intérieur de ces parenthèses sur l'autre est exécuté. Essayons donc d'utiliser cette nouvelle méthode acquise et implémentée dans notre code. Alors ouvrons Visual Studio et ici, et créons une condition ici. Donc, nous allons dire que si le mouvement horizontal est égal à un, alors nous allons appeler l'animateur du joueur. Nous allons mettre le flotteur. On va accéder au dernier X et je pense, eh bien, tu sais quoi, n'essayons même pas ça. Retournons ici. Copions le dernier X. Et même si je suis sûr à 100% quand nous utilisons la référence de chaîne, essayez
toujours d'aller le copier. C' est une bonne habitude d'avoir. Et nous allons régler le mouvement horizontal. Alors que se passe-t-il ici ? Nous utilisons le rôle get access. Et si nous nous souvenons quand nous avons regardé dans les pensées de l'unité, chaque fois que nous utilisons la ligne d'accès GET, nous allons soit d'un moins un ou de 0. Donc, ce que nous voyons ici, si le mouvement horizontal est un, donc nous marchons vers la droite, alors nous allons définir le dernier x comme le mouvement horizontal, qui est égal à un. Ce qui se passe dans ce cas, c'est que si nous retournons ici et deux sont la glande au ralenti peut voir que si le x détendu est 1, cela signifie
que nous sommes confrontés, non ? Cela signifie que nous nous souviendrons du dernier x et le définirons comme un seul. Ainsi, notre joueur se souviendra de la direction qu'il fait face. Ok, super. Allons de l'avant et testons ceci et notre gain. Et quand nous exécutons le code, alors nous sommes face à gauche quand nous marchons à droite, si nous arrêtons de marcher. Incorrect. Donc, comme vous pouvez le voir, nous nous sommes souvenus de la dernière direction que notre joueur faisait face. Si nous montons et arrêtons de bouger, c'est toujours à droite. Ok, super. Maintenant, la prochaine chose évidente à faire est
de définir toutes les directions et ce sera votre défi. Donc c'est vrai, toutes les autres conditions. Donc, créez une instruction conditionnelle pour les trois autres directions. Pour le mouvement vertical devrait définir le dernier pourquoi. Et je vais vous donner quelques indices. Nous avons le mouvement horizontal devrait être minuscule 1 et le mouvement vertical devrait également vérifier pour le moins et plus 11 chose de plus que je n'ai pas expliqué, désolé. Chaque fois que nous comparons deux variables. Nous comparons donc le mouvement horizontal à un. Nous utilisons deux signes égaux, pas seulement un. Lorsque nous utilisons un seul signe égal, cela signifie que nous affectons la valeur ici à la variable. Mais quand nous utilisons deux signes égaux, cela signifie
que nous les comparons avec cela dit, arrêtez la vidéo dès maintenant et allez relever le défi. Ok, bienvenue. Alors, comment as-tu réussi avec ça ? Maintenant, ce que nous pouvons faire ici, nous pouvons créer un autre. Si le mouvement horizontal est égal à minus1, alors nous dupliquerons cela et le déplacerons vers le bas. La façon dont je bouge ceci est en maintenant Alt et en appuyant sur les touches fléchées. Donc maintenant, si le mouvement horizontal est minuscule 1, nous allons définir le dernier x comme mouvement horizontal. Eh bien, évidemment moins 1. Maintenant, gardons cela et voyons si cela fonctionne dans notre jeu parce que je veux vous montrer une façon plus efficace de le faire. Donc nous économisons. Nous marchons à droite, nous marchons à droite, nous marchons à gauche. Nous sommes coincés à gauche. Quand nous montons, nous retournons à gauche. Ok, super. Donc, cela semble fonctionner, mais il y a un petit problème. Nous avons du code dupliqué qui n'est pas très agréable et ici nous n'en avons pas réellement besoin. Donc, ce que nous allons faire est de supprimer la déclaration. Et au lieu de cela, ici, nous allons créer une deuxième condition qui vérifie si le mouvement horizontal est égal à un. Ou en utilisant ces deux lignes droites ou le mouvement horizontal est égal à minus1, alors nous allons définir le dernier x comme mouvement horizontal. Et si nous gardons ça, retournez dans Unity. Nous courons. Quand nous marchons à droite, nous sommes coincés à droite, nous marchons à gauche, nous sommes coincés à gauche. Donc, comme vous pouvez le voir, c'est,
c' était une très bonne démonstration de la façon dont parfois un code différent peut vous donner le même résultat. Et enfin, nous devons définir v. Mouvement
vertical est égal à un. Et le mouvement vertical est égal à moins un. Mais maintenant, au lieu du dernier x, nous allons définir le dernier y. Et au lieu de l'horizontal, nous réglons la verticale. Donc, de retour dans notre jeu, nous lançons le code. Et maintenant, quand on monte, on voit que le dernier y est un. Quand on s'arrête, tu y vas. Donc notre démon Jimmy s'arrête quand nous le sommes, ou le démon Jimmy se souvient de la dernière direction dans laquelle nous nous dirigeons, encore une fois, de gauche à droite. Et comme vous pouvez le voir, nous avons un excellent mouvement et notre jeu, qui est très, très agréable. Ok, super. Ce que nous ferons dans la prochaine vidéo, c'est quand nous marchons vers l'eau, vous verrez que pour une raison quelconque le démon est capable de marcher sur l'eau, ce qui est quelque chose que nous ne voulons pas. Nous voulons qu'il puisse s'arrêter à cet endroit précis ou au moins s'arrêter chaque fois que nous avions les choux ici. Et nous aurons aussi un meilleur contrôle de la vitesse de marche sur notre doyen. Je te vois dans la prochaine vidéo.
17. Reposer avec des objets: Bienvenue, mes collègues développeurs de jeux. Tu te souviens quand on a pu marcher à travers n'importe quel objet ? Eh bien, comme vous pouvez le voir, nous ne pouvons plus le faire dans notre gain. Les eaux sont donc inaccessibles et les choux sont un objet solide. Alors ne perdons plus de temps. Il y a un peu de peaufinage que nous pouvons faire ici et commençons. Oh, ok, donc la première chose que nous voulons couvrir, ou nous voulons faire, c'est en fait rendre notre joueur juste un peu plus rapide. Mais non seulement cela, nous voulons avoir la capacité de le contrôler. Donc, ce que nous voulons faire est de créer une variable ici que nous pourrons changer quand nous le voulons. Et puis multipliez cette variable avec la vitesse ou le mouvement des joueurs. Alors ouvrons notre code. Ici. Nous allons créer une variable qui va être bien sûr, un champ sérialisé. Sauf si vous voulez être capable de X, alors vous le rendrez public. Et nous allons en faire, bien
sûr, un flotteur. Ou vous pouvez en faire un entier. Ça dépend de vous. Nous pouvons en faire un entier. Faisons en un entier parce que nous ne l'avons pas fait. Et nous appelons ça la vitesse de déplacement. Et mettons-le en un pour l'instant. Donc ici, après avoir réglé la vitesse du corps rigide des joueurs sur le nouveau vecteur 2, nous allons simplement multiplier ceci par la vitesse de déplacement. On va sauver ça. Retournons à Unity. Et voilà. La vitesse de déplacement apparaît ici. Donc maintenant, si nous frappons le jeu pendant que nous déplaçons à S1, si nous l'augmentons à 30. Maintenant, vous pouvez voir que nous avançons très vite. Alors rendons ça un peu plus lent. Et si vous vous souvenez, nous avons changé la vitesse de déplacement du joueur à 30 pendant le jeu, mais maintenant c'est de retour à un. C' est parce que tout ce que nous avons changé pendant temps de
jeu est réinitialisé à la valeur par défaut. Donc, nous allons devoir le changer ici pour, disons trois. On exécute le code et on y va. Il est un peu plus rapide. Peut-être faire, disons cinq. Nous exécutons le code, lançons le jeu, et voilà. Je pense que cinq comme une vitesse assez bonne, nous devons ajuster la vitesse de l'animation. Peut-être que si on y arrive, alors voyons à quoi ça ressemble. Alors comme je vais trop vite, faisons-le peut-être que je pense que sept est un très bon nombre. Ok, donc sept, c'est. Ok, super. Voyons si la prochaine chose que nous voulons changer est, comme vous pouvez le voir, nous pouvons actuellement passer à travers nos choux, ce qui n'est pas bon, et à travers les eaux, ce qui est aussi une très mauvaise idée. Donc, ce que nous voulons faire, c'est que nous voulons ajouter des collisionneurs à ces objets qui nous entourent. Donc, si nous regardons le collisionneur, sur le joueur, il est là. Et je pense qu'on va le rendre juste un peu plus grand juste pour qu'il touche les pieds. Ok, alors sauve ça. Maintenant, allons de l'avant et ajoutons un collisionneur dans les eaux. Donc, nous allons faire un clic droit ici, créer un objet de jeu vide. On appellera ça les eaux vont réinitialiser sa position. Et la façon dont notre réinitialisation, il suffit de cliquer sur les trois boutons ou les trois points juste ici et appuyez sur reset, tout va tourner à 0. On va ajouter un collisionneur, et ça va être un collisionneur 2D. Déplaçons-le ici. Et changeons la taille du collisionneur pour qu'il s'adapte sur les eaux. On y va. Sauvons ça. Exécutons le code. C' est un des jeux. Alors maintenant, quand nous sommes allés dans les eaux, oui, rien ne se passe. Et pourquoi c'est ça ? C' est parce qu'on n'a pas ajouté de corps rigide. Donc on va ajouter un Rigid Body 2D, frapper Play, et maintenant on devrait, ok, donc on a oublié de le rendre statique. Donc nous allons rendre ce corps rigide statique. Et maintenant, quand nous lançons le jeu, espérons que nous serons en mesure de savoir que nous ne sommes toujours pas en mesure d'interagir avec. Donc, de retour dans notre joueur, j'ai finalement compris quel était le problème. Donc, sur notre joueur, nous avons fait le type de corps cinématique. Et cela signifie que nous ne pouvons pas interagir avec ou que d'autres objets avec des collisionneurs ne peuvent pas affecter le joueur. Ce que nous avons fait, c'est que nous avons changé la
dynamique de type 2 et que nous avons simplement réglé l'échelle de gravité à 0. Nous aurions dû le faire dès le début, mais je pense que c'était une excellente occasion pour nous d'apprendre comment tout fonctionne. Donc, maintenant, quand nous allons jouer, nous pouvons voir que nous ne pouvons plus marcher vers l'eau et vous
remarquerez que quelque chose ne fonctionne pas correctement. C' est parce que, eh bien, laissez-moi juste essayer de vous montrer ça en utilisant les collisionneurs, donc nous allons arrêter le jeu, ouvrirons le collisionneur aussi, pour que nous puissions tout voir. Et vous remarquerez que parce que nous sommes un cercle, vous pouvez voir à quoi ressemble le cercle ici. C' est pourquoi nous ne pouvons pas franchir cette barrière. Donc, quand nous marchons, le cercle va bouger ou glisser. Là. Vous pouvez le voir. Le cercle du collisionneur glisse sur la surface ici et nous commençons à tourner. Donc si on essaie de le faire, maintenant on ne peut même pas s'échapper. Donc on peut le rendre un peu plus rapide, le faire glisser vers le bas. Et c'est un gros problème parce que nous ne voulons pas que Jimmy tourne autour du jeu serait vraiment bizarre. Donc, ce que nous pouvons faire, c'est que nous pouvons réellement ajouter des contraintes à notre corps rigide. Si vous regardez le joueur, ce sont les contraintes. On peut geler la rotation autour du z. et pourquoi est-ce ? Eh bien, parce que si vous regardez la fraction de transformation, qui vous donne la position et la rotation lorsque nous commençons à tourner, vous pouvez voir que nous tournons autour de l'axe z. Et c'est plus évident si nous décliquons le 2D, et vous verrez ici que l'axe Z, qui est bleu, vous pouvez voir ici, est l'axe z et nous tournons autour de lui. Donc, revenir au mode 2D va geler la rotation sur l'axe z. Et maintenant, nous pouvons voir en toute sécurité que nous ne tournons pas. Ok, super. Donc avec cela fait, la prochaine chose est d'empêcher notre joueur de frapper les choux. Et ça va faire partie de votre défi. Rendez les normes solides. Donc, lors d'un collisionneur aux stands à côté de notre joueur, assurez-vous que le joueur ne peut pas marcher à travers eux. Donc, ça devrait être facile. Mettez la vidéo en pause dès maintenant et allez faire le défi. Oh, ok, bienvenue. Comment as-tu réussi avec ça ? Donc ça ne devrait pas être trop dur. Nous allons simplement reproduire les eaux. Nous allons le déplacer ici et nous allons le renommer en stand. Allons de l'avant et changeons les collisionneurs. Oups, sur la position. Donc on va bouger. Et ici, vous pouvez voir clairement les lignes vertes. Donc maintenant, vous pouvez, même si vous voulez, rendre cela juste un peu plus petit sur les côtés. Et c'est à cause de la façon dont notre démon s'est installé. Donc maintenant, si on frappe le jeu, on ne devrait pas être en mesure d'interagir avec le stand. Oui, tu y vas. Si vous regardez le joueur, voyez que le cercle commence à interagir. C' est pourquoi nous avons rendu la position un peu plus petite sur les côtés. Si on marche de haut, oui, voilà. Nous ne pouvons pas les traverser. Et nous pouvons aussi ajouter les collisionneurs
dans la cabane juste ici et dans les sacs de pommes de terre et ainsi de suite et ainsi de suite. Mais dans les vidéos ultérieures, lorsque nous commencerons à créer nos propres jeux de tuiles et cartes, vous verrez une façon beaucoup plus fluide et plus efficace de gérer tout cela. Eh bien, cela dit, j'espère que ça vous plaira et je vous verrai dans la prochaine vidéo. Avant de partir,
nous ne devrions pas oublier de sauvegarder nos dépôts. Donc, l'arborescence des sources backend ici. Nous allons mettre en scène tout cela. Et nous allons nommer notre commit a ajouté collisionneurs à nos objets dans le monde. Ok, génial, on va commettre tout ça. Et nous pouvons regarder la branche principale et vous pouvez déjà voir notre projet prendre forme. Et c'est très sympa quand tu as tout ça devant toi avec ça dit, je te verrai dans la prochaine.
18. Section 3 : Passer de Switching à la scène: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous avons créé une seconde scène, et nous avons également créé un objet appelé sortie de zone, qui nous permet de sortir de cette zone. Mais pour l'instant, la seule chose qu'il fait est simplement de s'assurer que nous sommes le joueur. Donc, si nous passons à travers, vous pouvez voir le collisionneur. Et ici, dès que nous entrons dans elle, vous pouvez voir que dans la console, nous imprimons ceci est un joueur qui est entré. Alors ne perdons plus de temps et commençons. Oh, d'accord. Donc la première chose que nous devons faire est que nous avons changé le nom de la scène en ville, celui que nous utilisons actuellement. J' ai aussi changé les joueurs de collision juste ici. Donc vous pouvez voir que je viens de faire le cercle autour des pieds et de la tête. Et j'ai remarqué qu'il fait les interactions avec les eaux et se tient du beurre. D' accord avec ça hors du chemin, allons dans le fichier et créons une nouvelle scène. Assurez-vous que c'est 2D. Hit Create, et nous sommes sur une nouvelle scène. Pour enregistrer la scène va simplement appuyer sur Contrôle à l'intérieur des scènes et appelons-le les montagnes. Cliquez sur Enregistrer. La prochaine chose que nous voulons faire est que nous voulons ajouter un arrière-plan à la scène. Allons donc dans nos images de fond que j'ai fournies. Toi. Cliquez sur sprites, et faisons glisser l'image ici et vers les sprites. Et maintenant, on va le traîner dans notre scène. Et comme vous pouvez le voir, c'est un peu petit. Donc, nous allons faire les pixels par unité. Je pense que 64 a frappé Apply. On y va. Donc maintenant, nous avons notre belle scène avec quelques montagnes et cet homme de pierre juste ici. Mettons-nous en sécurité. Ok, super. La prochaine chose que nous voulons faire est de retourner à notre scène précédente et à la ville. Et ici, nous allons créer un objet. Nous allons donc cliquer avec le bouton droit pour créer un objet de jeu vide Et cela s'appellera la sortie de la zone. Nous allons réinitialiser sa position. Nous allons ajouter un composant qui va être un collisionneur 2D. Et ce collisionneur 2D est déclenché. Et ce que nous voulons faire, c'est le mettre juste ici sur le bord. Et nous le rendrons aussi grand que la route. Rendons-le juste un peu plus grand. On y va. Maintenant, nous avons la sortie de la zone. Maintenant, la prochaine chose que nous voulons faire est que nous voulons créer du code qui nous permet de déclencher réellement cette sortie de zone. Donc, chaque fois que nous entrons dans cette zone, nous voulons que quelque chose se produise. Et la façon dont nous le faisons est d'utiliser quelque chose appelé Entrée sur déclencheur. Donc, si nous allons dans les documentations et l'unité, vous pouvez voir que nous pouvons utiliser quelque chose appelé On Trigger Enter. Et la description ici indique lorsqu'un objet de jeu entre en collision avec un autre objet de jeu, Unity appelle la méthode On Trigger Enter. Et vous pouvez voir ici comment il est utilisé privé à l'intérieur de la classe sur Trigger Entrée, cela nous donne un argument. Nous en apprendrons plus sur les arguments plus tard. Mais pour l'instant, tout ce que vous devez savoir est que cela est déclenché chaque fois qu'un objet de jeu interagit avec le collisionneur et quel que soit l'objet du jeu, son collisionneur un parfum à travers cet autre argument ici, qui est à l'intérieur de ces deux parenthèses ou mûrir comment ceux-ci sont appelés. Quoi qu'il en soit, allons à Unity, et ici nous allons créer un script. Donc, dans nos scripts, nous allons cliquer avec le bouton droit de la souris ici et nous allons créer un script C-Sharp. On appellera ça la sortie de la zone. Appuyez sur Entrée. Et voilà. Maintenant, nous avons le script. Nous allons attendre juste un peu pour qu'il se compile. Et maintenant, nous pouvons l'ajouter à l'objet de jeu de sortie zone va double-cliquer et ouvrir le script. Que devrions-nous faire ici ? Eh bien, la première chose que nous voulons faire est d'aller de l'avant et de créer un sur Trigger Enter to D. Et vous pouvez voir ici que nous étions entrés. Et vous pouvez voir que la description entrepreneur entrer échauffement lorsque le collisionneur 2D autres, ou juste ici la collision entre dans le déclencheur. Donc collision autre, vous pouvez le nommer comme vous voulez. Tu peux même l'appeler Michael si tu veux. Mais nous le garderons comme collision comme la valeur par défaut qui nous est fournie. Ok, super. Maintenant, la prochaine chose que nous voulons faire est de nous
assurer que c'est une couche profonde qui pénètre dans la zone. Nous ne voulons pas déclencher cela chaque fois, par exemple, un objet ou un élément ou un MPC bizarre. Entre, nous ne voulons pas cela parce que nous allons l'utiliser
pour passer à la zone suivante,
à la zone de montagne que nous venons de créer. Alors, comment pouvons-nous identifier le joueur ? Eh bien, nous pouvons utiliser quelque chose appelé tags. Donc ici, vous pouvez voir que nous avons une étiquette sur la sortie de la zone. Nous avons un accroc sur les stands, et nous avons une étiquette sur chaque objet de jeu. Et vous pouvez voir l'étiquette sur la caméra principale est la caméra principale, ce qui nous permet d'identifier cette caméra comme une caméra principale. Nous pouvons aussi le faire avec le joueur. Donc, sur le joueur, vous pouvez voir les tags juste ici. Vous pouvez cliquer et vous pouvez voir que nous avons déjà une balise de joueur par défaut dans Unity, nous pouvons également créer nos propres balises. Donc, si vous vous souvenez précédemment quand nous avons créé nos calques de tri, nous avions les calques ici et nous avions aussi les balises. Mais parce que nous avons déjà un tag appelé, le joueur va juste l'utiliser ici. On va sauver ça. Maintenant, ici, quand nous entrons, première chose que nous voulons faire est de vérifier si le GameObject qui est entré dans la sortie de la zone est réellement appelé le joueur. C' est un défi pour vous. Vous devrez donc vérifier la présence d'un joueur. abord, créez une condition if à l'intérieur de l'entrée On Trigger. Ensuite, dans cette condition, vérifiez la balise de la collision, qui est l'argument qui est envoyé à travers, puis assurez-vous que la balise est celle de la couche deux. Alors, comment peux-tu faire ça ? Je vais vous donner un petit indice, mais si vous vous sentez assez courageux, arrêtez la vidéo dès maintenant et allez chercher comment vous pouvez vérifier une étiquette. Si ce n'est pas le cas, je vais vous donner l'indice tout de suite. Dernière chance. Et vous aurez besoin d'utiliser une méthode appelée comparer le tack. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Oh, hé, bienvenue. J' espère que vous ne vouliez pas utiliser l'indice. J' espère que vous avez fait des recherches sur la façon dont vous pouvez comparer les impôts ou vérifier les impôts. Si ce n'est pas le cas, j'espère que vous utilisez réellement l'unité des chiens
afin de rechercher une balise comparée pour savoir comment elle est utilisée. Donc, ici, vous pouvez voir booléen public. Cela signifie que cela renvoie un booléen. Ça veut dire si c'est vrai ou faux. Et à l'intérieur d'ici, vous pouvez passer la chaîne ou la chaîne de balises à laquelle vous voulez comparer. Et assez commodément, ils utilisent réellement l'autre objet de jeu point qui est sur le Trigger Enter. Ça s'appelle d'autres ici, pas de collision. Et il utilise la balise GameObject.com et vérifie également la balise de joueur. C' est commode ? Donc, je n'ai vraiment pas arrangé ça. Je ne sais pas comment ça aurait pu coïncider comme ça. Quoi qu'il en soit, ici, on va vérifier le joueur. Donc, nous allons créer une condition if ouvrira les parenthèses et nous appellerons le point de collision. Nous allons vérifier la balise de comparaison, ouvrir les crochets. Et ici, nous voulons appeler le joueur. Mais bien sûr, c'est une référence de chaîne, donc nous allons y aller et en fait nous devons copier celui-ci. Contrôle C, allez ici, contrôlez V, et retirez-le. Nous ne pouvons pas copier la balise immédiatement, qui est le joueur. Donc nous allons nous contenter de ce que nous avons, mais nous devons nous en assurer. Donc joueur oui, c'est la même chose. Et ici, juste pour des tests,
nous allons aller de l'avant et déboguer le journal des points. Et on va imprimer, ça. Est un joueur qui est entré. Fermez ça et revenez à Unity. Attendons que cela se compile. Il va exécuter le code. Et parce que notre joueur va sortir de la vue de la caméra, nous allons juste regarder la scène. Et pour voir ce qui se passe, nous devrions voir un message juste ci-dessous. Donc on entre ici, oui, c'est un joueur. Donc, si vous double-cliquez, nous pouvons voir sur la console ici qu'il s'agit d'un lecteur. Et si nous ne voyons pas la console, vous pouvez toujours aller à Window General et frapper la console. Super. Donc maintenant, nous pouvons voir la constante qui a essayé de changer cela du joueur. Et juste pour tester cela, ajoutez un espace, Enregistrer et maintenant laissez-moi chien la console peut être quelque part ici. Lorsque nous exécutons à nouveau le code, la console est vide. Si nous marchons dans la zone de sortie, nous y allons. Donc, double-cliquez, vous pouvez voir l'erreur. Et ce qu'il dit, c'est que je
me pose juste ici. Le joueur n'est pas défini. Ok, donc comme vous pouvez le voir, même un minuscule espace affecte la façon dont une référence de chaîne est interprétée. J' espère donc que vous en apprécierez et n'oublions pas d'engager nos changements. Je vous verrai dans la prochaine vidéo où nous en apprendrons plus sur la haute direction.
19. Gestionnaire de scène et Prefabs: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons utiliser la deuxième scène que nous avons créée, qui sont les montagnes. Donc maintenant, vous pouvez voir que lorsque nous entrons dans les critères de sortie de la zone et les scènes, oui, nous y allons. On va sur une seconde scène, et quand on y retourne, on retourne dans notre vieille ville. Mais comme vous pouvez le voir, il y a quelques petits problèmes que nous devons résoudre, qui ont des démons Jimmy 2D, mais nous le ferons plus tard. Jusque-là, ne perdons plus de temps et commençons. Oh, ok, donc la première chose qu'on doit comprendre quand on veut passer d'une scène à l'autre, c'est un gestionnaire de semences. Donc, chez Unity Dogs, vous pouvez voir que nous avons quelque chose appelé le directeur de scène. Et cela nous permet de, eh bien, comme vous pouvez le voir, gérer une ses scènes. Et nous pouvons utiliser de nombreuses méthodes statiques ici, que nous allons bien sûr
utiliser tout au long de notre parcours et chaque fois que nous voulons développer nos jeux. Ok, super. Donc, la première chose dont nous avons besoin est en fait une référence au nom de la scène entre une scène à aller à. Donc, de retour dans notre zone de sortie, nous allons créer une variable ici, et ce sera un champ sérialisé. Nous allons en faire une chaîne, et il va être appelé la scène à charger, sauver ça. Ensuite, nous devons utiliser le gestionnaire de scène, mais nous ne pouvons pas l'utiliser sans, tout d'
abord, l'ajouter à notre bibliothèque. Alors rappelez-vous quand je vous ai dit que nous utilisons le moteur Unity et ici, si nous le retirons, vous pouvez voir que immédiatement nous ne pouvons plus utiliser le comportement mono ou CRO, champ
sérialisé, pas même le collisionneur 2D. Ce que j'ai fait ici, c'est que j'ai fait un commentaire afin qu'il ne soit pas exécuté. Quoi qu'il en soit, continuons. Maintenant, nous devons ajouter une autre bibliothèque. Donc, nous allons appeler l'utilisateur. On va appeler le moteur Unity. Et maintenant, nous voulons appeler la direction de la scène. Cela nous permet donc d'accéder au gestionnaire de scène. Alors, qu'est-ce qu'on va faire ? Et ici, nous allons charger une scène, en utilisant cette scène pour charger la chaîne. Donc, si nous revenons ici, allons de l'avant et abaissons la scène afin que nous puissions voir les lois de la scène par son index de noms et les paramètres de construction. Donc vous pouvez voir ici, où est-il ? Donc, nous pouvons soit utiliser un entier pour le voir dans l'index de construction. Nous allons parler de l'index construit et juste un peu. Ou nous pouvons utiliser une chaîne avec le nom de la scène. Maintenant, vous savez pourquoi nous avons créé une chaîne et pourquoi nous en avons besoin comme référence. Ok, super. Allons-y et utilisons-ça. Alors où allons-nous appeler le directeur de scène et lui dire que nous voulons
charger à la scène suivante sera le faire ici dans la gâchette de bras entrer 2D. Après avoir vérifié que son fournisseur, au lieu d'imprimer quelque chose, nous allons appeler le gestionnaire de scène. Hé, directeur de scène. Et si on chargeait une scène ? Il nous demandera quelle scène vous voulez charger. Eh bien, je veux charger cela semble charger. Donc nous allons sauver ça à Unity. Attendons que le code se compile. Et avant de passer à autre chose, je veux juste dire quelque chose. Tu te souviens quand on a mis un corps rigide sur les eaux ? On n'en a pas besoin non plus sur les tribunes. Et généralement nous pouvons garder cela, mais les corps rigides prennent beaucoup de temps à calculer. Donc juste une tête en haut. Et j'aurais pu prendre l'endroit où j'ai ajouté des corps rigides et dit que j'avais fait une erreur. Mais non, parfois je ne sais pas ce qui se passe. Il y a quelque chose qui ne marche pas. Donc j'ai pensé garder cela et rendre tout transparent et beaucoup d'entre vous l'êtes, les débutants penseront que peut-être vous n'êtes pas assez bon. Eh bien, voilà. Votre instructeur fait des erreurs. De toute façon. Continuons dans la sortie de la zone maintenant nous avons une scène à charger, qui semblait que nous voulions charger. Encore une fois, c'est une référence de chaîne, donc nous voulons charger la scène de montagnes. Nous allons copier le nom dans la sortie de la zone. Nous allons le coller ici. Nous sauverons cela. Et maintenant, quand nous lancerons le code, nous marcherons. Quand nous en arriverons à cela, je crois que nous devrions aller immédiatement sur la scène de la langue. Alors oui, voilà. Nous avons une sorte d'erreur. Quelle est cette erreur ? Ouvrons la console. Il nous dit que les montagnes marines ne peuvent pas être chargées parce qu'il n'est pas ajouté aux paramètres de construction ou k. Il y a
donc des paramètres de construction et c'est ce que les documents ont fait référence quand il nous a dit la construction. Index. Donc, si vous allez dans le fichier, apparaissez dans l'unité et nous pouvons trouver les paramètres de construction. Et c'est là que nous construisons notre jeu. Donc, vous pouvez voir que nous pouvons le construire comme une plate-forme Windows universelle, comme un jeu PS4, comme un Android et ainsi de suite et ainsi de suite. Pour l'instant, nous ne nous embêterons pas avec cela. Tout d'abord, nous devons voir ce qui se passe ici. Vous pouvez voir que les scènes et construire notre seule ville. Donc ce qu'il faut faire, c'est qu'on les traîne dans les montagnes ici. Alors maintenant, les montagnes font partie des scènes de construction, ou dans les scènes construites. Vous pouvez voir les chiffres ici, 01. Et c'est ce que nous entendons par la scène et l'index construit. Ok, avec ça fait, sauvegardons ça. On peut fermer cette fenêtre. Allons frapper Run. Nous marchons vers la sortie de la zone, et vous y allez. Vous pouvez voir que les montagnes ont été chargées, même si nous n'avons pas de joueurs. Donc, ce que nous voulons faire, c'est que nous voulons garder notre joueur dans le jeu. Mais ce qui se passe quand on va d'une scène à l'autre c'est que tous les objets sont détruits. Et on ne veut pas ça. Nous voulons garder notre joueur en vie quand il va de scène en scène. Donc, ce que nous pouvons faire à ce sujet, c'est si nous entrons dans notre code, allons dans notre joueur et commençons, nous pouvons aller de l'avant et lui dire que nous ne voulons pas détruire en charge. Laisse-moi revenir sur ça et te montrer ce que l'intelligent nous dit. Ne détruisez pas l'objet cible lors du chargement. Et vous avez vu à quel point est pratique que vous pourriez avoir une recherche sur Internet. Comment ne pas détruire un objet ? Quand je vais à la scène suivante, vous auriez eu cette méthode et quelle GameObject ne veut pas détruire ? Eh bien, c'est le joueur. Nous pouvons simplement le référencer en utilisant l'objet de jeu. On y va. Donc, cet objet de jeu fait référence à l'objet de jeu auquel ce script de joueur est attaché. J' espère que cela a du sens. Alors sauvegardons ça. Retournons à Unity. Et allons frapper Play. Alors nous marchons, marchons,
marchons , marchons, et voilà. Donc nous sommes dans la nouvelle scène avec notre petite statue ici. Maintenant, évidemment, nous traversons tout parce que nous n'avons pas ajouté de collisionneurs, mais au moins tout fonctionne bien. Maintenant, qu'est-ce qu'on veut faire ensuite ? Nous voulons que cette sortie de zone soit présente dans notre deuxième scène. C' est donc l'heure de votre défi. Et votre défi est d'aider le joueur à revenir. Donc, créez une autre sortie de zone. Tout d'abord, vous devez créer l'objet de jeu à un collisionneur, faire un déclencheur. Vous devrez y ajouter le script, qui est la sortie de zone. Et vous devrez changer le nom de la scène à laquelle vous souhaitez aller. Alors mettez la vidéo en pause et allez faire l'un à l'autre. Bon, bienvenue. Alors allons de l'avant et créons cet objet de jeu. Mais avant de le faire, je veux vous présenter quelque chose qui facilitera la vie, c'est-à-dire les préfabriqués. Qu' est-ce qu'un préfabriqué ? Donc, un préfabriqué est un objet précédemment fabriqué que nous pouvons utiliser partout où nous le voulons. Plongons un peu plus profondément. Alors qu'est-ce qu'un préfabriqué ? C' est un modèle pour un certain objet de jeu. système Prefab vous permet de stocker un objet de jeu avec toutes ses propriétés. Alors à quoi l'utilisons-nous ? Nous l'utilisons pour réutiliser un objet de jeu configuré d'une manière particulière. Donc, par exemple, nous voulons que notre joueur ait, disons, cinq mains. Donc, nous l'utilisons quand il est configuré d'une manière différente. Nous pouvons éditer de nombreux objets à la fois. Par exemple, disons que nous avons plusieurs éléments et plusieurs scènes. Nous pouvons changer un peu le préfabriqué et tous les éléments et toutes les choses seront changés. Et nous pouvons utiliser le même objet dans différentes scènes, beaucoup plus facile. Nous allons le démontrer dans un peu. Donc, dans Unity, la façon dont nous créons un préfabriqué est d'abord, nous allons créer un dossier. On appellera ça les préfabs. Et c'est vraiment très compliqué de créer un préfabriqué. Donc, la façon dont nous le faisons est que nous devons vérifier l'objet de sortie de zone ou tout objet que nous voulons
faire comme préfabriqué et nous devons le faire glisser dans le dossier. Oui, c'est ça. C' est tout ce que vous devez faire pour créer un préfabriqué. Et tu sais que quelque chose est un préfabriqué quand tu vois ça, c'est juste un peu plus bleu. Donc maintenant, si on va dans où c'est, les scènes ? Les montagnes. Oui, tu peux sauver. Donc maintenant, si nous allons dans notre dossier prefabs, nous pouvons simplement vérifier la sortie et le faire glisser ici. C' est cool ? Maintenant, nous avons une sortie de zone et notre scène de montagne. Et je m'excuse de vous avoir fait passer tout le processus. Je voulais juste souligner à quel point
les préfabriqués sont importants et combien ils nous facilitent la vie. Maintenant, on peut changer le nom ici. Allons aux scènes. La ville. Nous le copions parce que c'est une référence de chaîne. On le colle ici, on le sauve. Revenons à la ville avait Play, et maintenant nous marchons la promenade. Nous allons à la sortie de la zone. Nous sommes dans les montagnes. Maintenant. Nous marchons encore jusqu'à la sortie de l'autre zone, et voilà. Mais vous pouvez voir que maintenant nous avons deux joueurs. Si nous revenons en arrière, maintenant nous avons trois joueurs. Encore une fois. Pour l'instant, nous avons quatre démons Jimmy. Et je ne pense pas qu'il y ait assez de place dans le monde pour, pour les démons de Jimmy. Nous allons gérer tout cela dans la prochaine vidéo.
20. Motif en Singleton: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons corrigé D pour dupliquer le problème. Alors maintenant, laissez-moi juste rendre mon joueur un peu plus rapide. Alors augmentons-le à 50. On y va, on est dans la deuxième scène. Quand on y retourne, on y va. Un seul démon Jimmy. Alors ne perdons plus de temps et commençons. Imaginez s'il était ce cas rapidement amorti. Donc, nous voulons éviter d'avoir des joueurs en double. Pour ce faire, nous devons garder une trace du joueur et nous assurer qu'il n'y en a qu'un. Et pour ce faire, nous allons utiliser quelque chose qu'on appelle une instance. Alors laissez-moi vous montrer ce qu'est une instance, qu'est-ce qu'une instance d'une classe ? C' est une variable statique, ce qui signifie constante dans tous nos projets. Il peut facilement être récupéré à partir de n'importe quelle autre classe, ou il peut être plus facilement récupéré et nous allons l'utiliser pour éviter de trouver l'objet chaque fois que nous voulons jouer. Et nous allons utiliser pour garder une trace du joueur et être en mesure de l'utiliser, elle dans d'autres scripts pour la faute de frappe. Alors allons de l'avant et utilisons une instance. Donc, de retour dans notre code, retour et joueur, nous allons créer une instance d'une classe. Et ça va être public. Ça va être statique. Comme nous l'avons dit, statique est quelque chose qui est le même sur toute la plate-forme. Il va être de type player et nous allons simplement l'appeler l'instance. On va sauver ça. Maintenant, à l'intérieur du début, nous voulons déterminer ce que les instances, instance est égal à cela. Et cela fait référence, eh bien, exactement ce qu'il dit. Il fait référence à cette classe exacte. Donc, chaque fois que nous recommençons, l'instance est définie sur cette classe particulière qui a le joueur. Mais maintenant, nous avons encore un léger problème quand nous commençons le jeu. L' instance sera définie sur ce joueur, mais quand un autre joueur sera généré, nous obtiendrons une autre instance. Donc, ce que nous pouvons faire, c'est aller de l'avant et finir ici. Nous allons créer une condition. Donc, si l'instance est différente de null, cela signifie qu'il y a une instance. Et comme nous l'avons dit, chaque fois que nous avons deux lignes droites, c'est un, OU, chaque fois que nous avons ces deux lignes squiggly, c'est une fin. L' instance est différente de celle-ci. Donc, ici, alors nous allons, tout d'
abord, détruire cet objet de jeu. Sinon, nous allons créer une instance. Nous allons définir une instance. Donc, ce qui se passe ici, c'est que si notre instance n'est pas nulle et notre instance est différente de cet objet particulier que nous regardons ou classe, alors nous allons la détruire. Si ce n'est pas le cas, si l'instance est nulle ou si l'instance est
celle-ci, nous allons simplement affecter l'instance à celle-ci. Donc, nous allons sauver ça. C' est ce qu'on appelle un modèle singleton. Et maintenant, quand nous
retournerons, nous allons courir notre jeu, notre équipe et marcher. Il arrive à la zone, il finit, maintenant on doit y retourner. On aurait dû les rendre un peu plus rapides. Alors, voilà. Nous n'avons qu'un démon. Et vous pouvez voir ici, c'est sous le paragraphe Ne pas détruire sur chargement ou c'est différent de la ville si vous voulez y penser. C' est comme si nous avions créé une scène différente où nous avons ce joueur et la scène est D1 en charge, mais elle est intégrée au-dessus de la ville. Donc maintenant, on peut même revenir à pied. Et voilà. Un seul Jimmy Demon. Vous pouvez voir ici et la hiérarchie, il n'y a qu'un seul démon Jimmy, mais il y a toujours un problème. Et le problème, c'est que chaque fois que
nous traversons, nous ne voulons pas être jetés à la fin de notre carte. Nous voulons vraiment être ici et cet endroit comme si nous entrions naturellement dans cette zone. Donc nous allons le faire dans la prochaine vidéo. N' oubliez pas de vous engager.
21. Zone Entrée: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous corrigeons le problème de notre démon Jimmy apparaissant de l'autre côté de la carte. Donc, comme vous pouvez le voir, quand nous sommes allés à la montagne, nous sommes dans une bonne position comme si nous y passons naturellement. Et si on essaie de revenir en arrière, voilà. Nous avons également fait la transition vers une position naturelle pour notre démon. Et maintenant, ce n'est pas parfait. Il a besoin d'un peu de peaufinage, mais ça marche. Donc, ne perdons plus de temps et commençons le 0. Donc, notre objectif dans cette vidéo est de trouver un moyen de faire apparaître notre joueur dans une certaine position. Dans la scène suivante, quand nous passons à travers. Ainsi, par exemple, lorsque nous entrons dans les montagnes à partir de cette sortie de zone spécifique, nous voulons apparaître juste ici à côté de la sortie de zone sur la deuxième scène. Et c'est très important. Donc, ce que nous pouvons faire est que nous pouvons réellement créer un objet de jeu ici appelé sortie de zone. Et nous pouvons le mettre à une certaine position. Gardez une trace du nom de transition à partir de la sortie de zone de la précédente à l'intérieur du joueur, puis remettez-le ici parce que le joueur n'est jamais détruit. Tu te souviens de ça ? C' est donc un bon endroit pour stocker un certain nom. Et nous pouvons, chaque fois que nous commençons la scène, prendre notre joueur et mettre sa position sur la zone, entrer. J' espère que cela a un peu de sens. Faisons-le au lieu de simplement parler et peut-être que ça deviendra clair. Donc, la première chose est que nous voulons garder une trace du nom de la transition. Donc, ici, nous allons créer un nom de transition String public. Ok. Et ce sera public parce que nous voulons
pouvoir y accéder à partir d'un script différent. Maintenant, ce n'est pas la meilleure façon de le faire, mais jusqu'à ce que nous apprenions une meilleure façon plus tard, nous continuerons à l'utiliser de cette façon. La prochaine chose que nous voulons faire est que nous allons entrer dans la sortie de zone et aussi créer ici un champ sérialisé, qui va être de type chaîne, et il va avoir le même nom, le nom de transition. Ok, donc on va sauver ça à Unity. Allons dans notre ville. Et n ici sur la sortie de la zone, vous pouvez voir que nous avons un nom de transition sur le joueur. Nous avons la même chose, mais nous ne nous embêterons pas à l'utiliser, remplira le nom de transition du code dynamiquement. Alors, ici, quel est le nom de transition ? Nous voulons quelque chose pour représenter que c'est cet endroit pour que vous puissiez voir notre carte. Pour que nous puissions sortir de cet endroit, de cet endroit ou de haut en haut. Donc, nous voulons tout d'abord, garder une trace de chaque sortie. Deuxièmement, nous voulons garder une trace de ce qui est le prochain emplacement. Donc, la façon dont nous faisons cela est de créer une sorte de convention de nommage. Nous allons, disons, appeler les zones où nous pouvons sortir de 1, 2, 3 et 4. Donc, la façon dont nous allons nommer ceci est, par
exemple, celui des montagnes. Donc, nous savons que cette zone nous emmène à la montagne une. Nous sauverons ça ici. Maintenant, de retour dans notre code et notre Onsager entrez ici. Avant de charger la scène, nous allons prendre notre script de joueur. Donc, nous référençons le script du lecteur ici, mais nous ne pouvons pas utiliser quoi que ce soit à l'intérieur de celui-ci, mais nous pouvons accéder à l'instance. Et parce que l'instance fait référence au script, qui est celui-ci, maintenant nous pouvons accéder à n'importe quelle méthode ici ou précieuse qui est publique. Donc maintenant, nous pouvons accéder au nom de transition. Et après avoir accédé au nom de transition, nous allons le définir sur le nom de transition. Maintenant, si vous êtes un peu confus, ce nom de transition fait référence au côté d'une main de la sortie de zone. Et ce nom de transition fait référence au nom de transition ici dans le script du lecteur. Si vous êtes toujours confus, vous pouvez changer le nom du nom de transition ici, quelque chose de différent. Donc, la façon dont vous pouvez changer un nom dans Visual Studio est simplement de maintenir le contrôle enfoncé. Assurez-vous que vous avez sélectionné le nom de la variable que vous souhaitez modifier, maintenez la touche Contrôle enfoncée, appuyez sur ou, ou deux fois. Et maintenant, nous pouvons changer le nom de la zone de transition. Vous verrez qu'il change ici et qu'il change dans tout votre dossier. Donc n'importe quel endroit où vous utilisez cette chaîne. Cette variable, elle sera changée. Ok, donc contrôle ou sont. Ok, super. Allons donc dans notre unité. Maintenant, cela ne va rien faire. Nous voulons juste nous assurer que notre joueur, donc chaque sortie, montagnes un est retourné à vide parce que nous avons changé le nom de la variable ici. Et comment nous exécutons le code et maintenant nous pouvons garder une trace du joueur. Quel est le nom de transition ? On y va. Alors maintenant, quand nous sommes allés à la montagne, c'est la montagne une. Maintenant, nous devons aller à notre deuxième scène ici, et nous allons créer un nouvel objet de jeu, qui sera l'entrée de la zone, réinitialisera sa position. Et nous allons juste le positionner devant la sortie de la zone et nous assurer qu'il est à l'extérieur de la petite place ici. Nous ne voulons pas que notre joueur entre et retourne immédiatement en arrière. Donc, nous allons sauver ça. Donc maintenant, nous avons une entrée de zone et nous allons créer un script. Donc, la façon dont nous pouvons créer un script, nous pouvons simplement créer une zone. Et troisièmement, vous pouvez voir qu'ici, il nous indique la possibilité de créer un nouveau script. Oui, merci. Le nom est Erin, entrez, créez une annonce. Et maintenant, nous avons un script de zone entrée. Et nous allons utiliser le script pour définir le joueur sur la position exacte de la zone entrée. Maintenant que le script est chargé, nous pouvons l'ouvrir. Et ici, nous allons créer un champ sérialisé, qui va être une chaîne, et ce sera le nom de zone de transition. Et ce que nous allons faire, c'est dès que nous commencerons notre niveau. Donc, au début, nous allons vérifier si le nom de la transition ou le nom de la zone de transition est égal
au nom de la transition point de l'instance du joueur. Ensuite, nous allons accéder à la transformation de point d'instance de joueur point et rappelez-vous la transformation. Et voici ce qui garde la trace d'un objet de jeu, d'un objet de jeu dans la scène Unity. Et la transformation du joueur sera égale à la position du point de transformation. Et cela fait référence à la transformation de la zone entrée ou de l'objet qui a la zone sous script dessus. Et nous avons une flèche. Et ici, la composante du transfert ne peut pas être assignée, d'accord ? Nous devons donc transformer la position des points, désolé pour cela, nous ne pouvons pas simplement changer la transformation. On doit accéder au poste. Donc ici, nous pouvons voir que nous avons une position, une rotation et une échelle. Donc, nous accédons réellement à la position sur la transformation, sur l'instance sur le joueur. Ok, super, donc avec ça, revenons à l'unité et on va s'assurer d'appeler ça, comment on l'a appelé dans la scène précédente ? Allons en ville. Oui. Sauvegarder cette zone sortie montagne un. Copions ça. Retournez aux montagnes, la zone entre et mettons-le juste ici. Rendons ça en ville. Exécutez le code, exécutez le jeu, et nous marchons, nous allons à la sortie de la zone. Oui, on y va. C' est cool ? Donc maintenant, notre joueur n'apparaît pas sur la carte. Et si on veut y retourner ? Oui, tu y vas. Cela ne fonctionne pas de cette façon et ce sera un défi pour vous. Votre défi sera de créer un préfabriqué. Donc, créez un préfabriqué de la zone entrer objet de jeu ajouté à la scène précédente et définissez-le dans la position que vous voulez que notre joueur apparaisse. Donc, bien sûr, la zone entrée devrait être dans une position logique. Mais de toute façon, mettez la vidéo en pause et allez relever le défi. Oh, ok, bienvenue. Donc ici, nous pouvons préfab la zone Entrée et nous pouvons ensuite aller de l'avant et ajouté ici et la langue. Mais quelque chose qu'on vient de frapper maintenant. Eh bien, en fait, je l'ai déjà remarqué, mais je veux vous dire que vous avez peut-être remarqué que chaque sortie de zone aura sa propre zone d'entrée. Donc, ce que nous pouvons faire, au lieu de simplement préférer être la zone entrer et puis l'ajouter, nous pouvons aller à la montagne et nous pouvons suivre la zone sous,
sous la sortie de la zone. Donc maintenant, vous pouvez voir que la zone entrée est sous la sortie de zone, et cela est appelé l'enfant dans un objet de jeu. Donc, ce qui se passe maintenant, c'est chaque sortie. Si nous le déplacons, disons à cette position, entrée de la
zone se déplacera avec la sortie de la zone et sa position ici est référencée à son parent. Donc, la zone quitte en tant que parent, la zone entrée est l'enfant et c'est une relation parent enfant. Nous allons regarder plus loin dans les vidéos ultérieures, mais pour l'instant, c'est tout ce que vous avez besoin de savoir. Donc, l'entrée de la zone est un enfant de la sortie de la zone. Et nous pouvons aller de l'avant et remplacer ce oui. Appliquez tout. Donc maintenant dans notre ville, sûr et notre ville, la sortie de la zone a une zone entrer et va simplement le déplacer à cette position juste ici. Alors regardons en arrière. Montagnes une zone, bonnes montagnes, une, sauf ça. De retour dans nos montagnes. La sortie de zone a un nom de transition. Est-il nécessaire d'avoir un nom de transition ? Voyons ce qui se passe. En ville. Nous exécutons le code, nous marchons à travers, donc il y a une erreur. Quelle est l'erreur ? Si on double-clique ? Oui, tu y vas. Et il y a une exception de référence nulle que je vous montre ce qu'il dit. Référence d'objet comme non définie sur une instance. Qu' est-ce que cela signifie si nous double-cliquez ici et c'est parce que le nom de transition est vide. Essayons donc de tester cela avant d'essayer de résoudre le problème. Oui, on y va. Il y a un énorme problème. Nous devons changer ça en montagnes, et maintenant nous pouvons relancer le code. Voyons voir. Oui, on y va. Nous allons dans les montagnes. Maintenant, si on veut y retourner, oui. On n'y retourne pas correctement. Pourquoi c'est ça ? Eh bien, parce que sur les montagnes et ici, nous n'avons pas donné le nom correct, donc ça devrait être Montagnes un. Donc je vais sauver ça. Ne remplacez pas tout en arrière. Appuyez sur Play. Marchez ici. Oui. Oui. Oui. Oui. Tout semble fonctionner parfaitement bien. J' espère que ça vous plaira. Assurez-vous de valider nos modifications et je vous verrai dans la prochaine vidéo.
22. Ordre de Script d'exécution: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous n'avons pas beaucoup changé. Nous venons d'apprendre quelque chose sur l'ordre d'exécution des scripts. Et nous avons également appris comment nous pouvons parfois optimiser ce que nous avons déjà créé. Donc maintenant, si nous menons notre jeu, vous pouvez voir que notre démon Jimmy commence dans la zone, entrez en position. Tout fonctionne très bien. Si nous allons à la prochaine zone, vous verrez que tout est toujours le même. Rien n'a changé, mais nous avons juste joué et modifié quelques choses. Alors ne perdons plus de temps et commençons. Oh, ok. Alors maintenant que nous avons le nom de la sortie de la zone et la zone entrer le même. Nous voulons créer une vague pour gagner un peu de temps et rendre les choses plus rapides avec moins de portée. Donc, une sortie de zone, nous allons obtenir une référence à l'anthère de la zone. Donc, nous allons créer un champ sérialisé et il va être de la zone de type. Et troisièmement, et on l'appellera la zone. Et d'accord, maintenant et commencez, nous allons définir le nom de transition sur la zone. Et troisièmement, c'est le même nom que le nom de la zone de transition ici. Ainsi, la zone et le troisième nom de transition point. Donc ça ne nous donne pas ça parce que c'est un domaine sérialisé et pas un public. Alors changeons ça en public. Garde ça ici. la zone de transition point et nom de la zone de transition. Alors ne confondons pas les choses. C' est pour celle-là. Celle-là est pour celle-là. Je ne vais pas changer de nom. Si vous pensez que vous voulez changer les noms, hésitez pas à le faire. Ok, super. Maintenant, de retour à Unity, allons dans nos préfabriqués et,
et la sortie de la zone. Nous pouvons aller de l'avant et la référence. Donc, si nous double-cliquez, nous pouvons ouvrir le préfabriqué et nous pouvons immédiatement référencer la zone entrée. C' est un enfant de cela. Super. Ainsi, comme vous pouvez le voir, la sortie de la zone a un enfant qui est la zone entrée qui est juste ici. Nous sauverons cela. Sortons du préfabriqué. Et si nous allons à la zone entrer, nous pouvons supprimer cela et la sortie de la zone, vous verrez qu'il va automatiquement se mettre à jour. Alors gardons une trace de l'entrée de la zone. On frappe le jeu, et on y va. Le nom de la zone de transition en tant que montagne un sur la zone, entrez. Ok, super. Alors essayons de jouer à notre jeu. Assurez-vous que tout est bon. Oui, tout va bien. Mais il y a un petit problème ici dont j'ai parlé, mais je n'ai pas corrigé ou peut-être que je l'ai fait. Mais vous pouvez voir qu'il y a une erreur. Il existe une exception de référence nulle. Ainsi, la référence d'objet non définie sur une instance d'une zone d'objet entrez dot-dot-dot. Et il est dit zone entrer point de départ car il est un problème dans la zone entrer. Si nous double-cliquez, cela nous mènera à la ligne et il nous indique
que nous avons essayé d'accéder à une instance, mais il n'y en a pas. Maintenant, comme vous pouvez le voir, quand nous jouons à notre jeu, tout fonctionne bien. Mais si vous êtes très grogneux à propos des choses et que vous voulez réparer ça, nous devons le réparer. Quel est le problème ? Le problème est que la zone entrer ce script exact se charge avant le script du lecteur. Donc, ce qui se passe est, disons que la zone entrée est créée. Nous démarrons la zone entrée, mais le joueur n'a pas encore été créé, donc il n'y a pas d'instance. Alors, comment pouvons-nous réparer ça ? Il y a plusieurs façons. Je vais vous en montrer une très astucieuse. Et c'est quelque chose que pas beaucoup de US, ce n'est pas si bon de le faire, mais il est bon de savoir que vous avez l'option. Donc, dans la Modifier, accédez à Paramètres du projet. Ici, vous pouvez voir que nous avons quelque chose appelé où est-ce l'ordre d'exécution de script ? Et vous pouvez voir comment chaque script est exécuté. Donc on peut ajouter un plus. Et ici vous pouvez voir que ce sont les scripts que nous avons. Choisissons le joueur et déplacons-le ici. Donc, il commence avant l'heure par défaut. Cela signifie qu'il commence avant tous les autres scripts. Nous allons appuyer sur Appliquer. On sortira. Nous allons exécuter notre code et nous ne devrions plus avoir cette erreur. Voilà, tu y vas. Mais comme vous pouvez le voir, notre joueur va à la position de la zone entrer, tout fonctionne bien, mais chaque fois que nous commençons notre jeu, Nous y allons. Notre démon est transporté à cette position. Je pense que c'est une bonne chose parce que nous ne commencerons jamais au milieu d'une carte. Donc c'est, je pense, une bonne chose. Quoi qu'il en soit, j'espère que ça vous plaira. J' espère que vous sauvegardez vos dépôts. Et je te verrai dans la prochaine.
23. Section 4 : Cinemachine 101: Bienvenue, Mes développeurs de jeux préférés. Dans cette vidéo, nous ne sommes plus statiques et le travail. Donc, comme vous pouvez le voir avant d'ajouter quoi que ce soit, chaque fois que nous avons déménagé et que le tourbillon, nous ne pouvions voir que ce que nous avons devant nous. Mais maintenant que nous bougeons, vous pouvez voir que la caméra suit notre joueur partout où il va. Alors ne perdons plus de temps et commençons à ajouter des machines. Oh, ok. Donc, actuellement, lorsque nous frappons en jeu, vous pouvez voir que nous avons tous tourbillonné dans notre scène, mais notre joueur ne peut se déplacer que dans l'espace limité que nous avons à l'intérieur de notre fenêtre de jeu. Mais nous voulons nous déplacer à travers toute la carte que nous avons une interaction avec différents objets. Mais malheureusement, l'appareil photo ne permet pas cela. Ce qu'on va faire, c'est créer un camp de suivi. Donc, partout où notre joueur se déplace, notre caméra se déplace sans aucun. Il y a deux façons de le faire. La première façon est l'ancienne, où nous créons un script que nous avons ajouté à la caméra, nous fixons une cible, puis nous devons faire beaucoup de réglages. Et il y a la façon nouvelle et plus avancée et c'est l'utilisation d'une machine centrale. Alors qu'est-ce qu'une machine pécheur ? Je vais vous montrer la documentation de Unity. Donc ici, vous pouvez voir dans les chiens de l'unité, vous pouvez tout lire sur les machines de cinéma, ce qu'ils ont besoin, ce dont ils ont besoin. Je pense que vous devriez aller chercher la documentation. C' est un peu long. C'est quelque part ici. Je ne pense pas que tu devrais tout lire,
mais au moins savoir ce que tu as. Revenons dans Unity et ajoutons une machine de cinéma. Donc, la première chose que nous devons faire est d'importer un paquet. Nous devrons donc aller au gestionnaire de paquets. Nous allons à Window, le gestionnaire de paquets et ici, attendre l'actualisation des paquets, aller au Registre Unity et maintenant et machine de cinéma qui est à la recherche de la machine Cinna. Voilà, tu y vas. Envoyez une machine, assurez-vous de l'installer. Et je vous verrai une fois l'installation terminée. O K. Bienvenue. Donc, en utilisant la magie du montage, je viens de terminer l'installation de la machine de cinéma. Et maintenant, la prochaine chose que nous devons faire est d'aller dans notre caméra principale et nous allons y ajouter un composant. Et ça va être un cerveau. Donc on aura un cerveau de machine de cinéma sur notre caméra principale. Il nous permettra d'avoir des caméras co-existantes avec l'un d' eux sera la caméra principale et l'autre sera une caméra virtuelle. Alors allons de l'avant et créons une de ces caméras virtuelles. La façon dont nous faisons c'est que nous monterons ici et la machine de cinéma, et nous allons créer une caméra 2D, comme vous pouvez le voir ici. Donc maintenant, nous avons ce C VCA. Et vous pouvez voir qu'il y a quelques choses que nous n'avons pas ici ne vont pas toutes les examiner parce qu'il y en a beaucoup. Mais pour l'instant, les choses que vous devez considérer et définir immédiatement sont ici, le suivi et la recherche. Mais avant de le faire, nous devrons créer un objet de jeu et mettre les deux caméras sur notre enfant, les caméras pour lui. Nous allons donc créer un objet de jeu. On appellera ça les caméras. Et nous allons juste faire glisser la caméra principale et deux caméras. Ou avant de le faire, laissez-moi juste réinitialiser la position et ensuite nous allons faire glisser la caméra principale sous caméras et le camp virtuel et vers les caméras aussi. Maintenant, nous avons les caméras qui tiennent la caméra principale et la caméra virtuelle. Maintenant, la prochaine chose que nous devons faire est de faire glisser la chose ou tout ce que vous voulez suivre. Alors, qu'est-ce qu'on veut suivre ? Eh bien, nous voulons suivre le joueur, donc nous allons faire glisser le joueur juste ici. Comme vous pouvez le voir, nous avons quelques guides. Et avant de continuer, passons dans la fenêtre de jeu de l'aspect libre à 16 par 9, et cela aidera à stabiliser l'image. Donc nous allons sauver ça. Et allons frapper Play et voir ce qu'on a. Et je vais expliquer ce que tous ces guides ici ou maintenant si nous montons, nous
y allons, vous pouvez voir que notre caméra suit réellement notre joueur. C' est cool ? Donc maintenant, nous ne nous contentons pas de marcher et ne pouvons plus voir le joueur. Nous avons en fait une caméra qui suit et vous pouvez voir comment elle suit ici à travers ces lignes rouges. Donc vous pouvez voir que ce n'est pas immédiat. Cela prend donc un peu de temps et cela donne une sensation plus naturelle à notre jeu, une sensation plus professionnelle aussi. Et ce n'est pas quelque chose qui se fait facilement en utilisant des scripts. Il a besoin de beaucoup de code et beaucoup de modifications. Mais avant de continuer, quels sont ces poumons, vous pouvez les éteindre. Si vous regardez ici et que le CMV peut, vous pouvez voir ou nous devons changer cela. Une caméra virtuelle. Voilà, tu y vas. Donc maintenant vous pouvez voir que si nous appuyons sur le guide de la fenêtre de jeu, vous voyez qu'ils sont tous en train de disparaître. Et je pense que nous devons copier ça parce que quand nous arrêtons de jouer, vous voyez, comme nous l'avons dit, chaque fois que nous sommes en Mode Jeu, rien n'est sûr. C' est pourquoi j'ai copié et collé ici. Ok, bien. C' est quelque chose que vous comprendrez après de nombreuses années
de perdre toutes les choses que vous avez changées. Quoi qu'il en soit. Maintenant, c'est quoi ces gars ? Si nous faisons défiler vers le bas, nous pouvons voir ici que nous avons quelque chose appelé le corps. Et ici, vous pouvez modifier et changer beaucoup de choses. Maintenant, encore une fois, je ne vais pas les examiner tous. Mais une façon pratique de comprendre ce que tout cela signifie est simplement en tournant, par exemple, tout le chemin vers le haut. Maintenant, quand nous lancerons notre jeu, vous verrez ça. Voilà, tu y vas. Donc, vous pouvez voir parce que nous avons tourné l'amortissement, il faut plus de temps pour que notre appareil photo rattrape réellement notre joueur. Mais quand il sort de la zone rouge, vous pouvez voir qu'il suit immédiatement. Si nous changeons l'amortissement sur le y, nous avons le même effet. Très gentil. Revenons-en à un. Et voyons ce que nous avons d'autre si nous déplacons l'écran, par
exemple, nous pouvons déplacer l'écran. Donc maintenant notre joueur est toujours sur la droite, ce qui est quelque chose, je ne sais pas comment vous allez l'utiliser, mais cela pourrait être utile. On peut changer la distance de la caméra, mais rien ne se passe. Peut-être que c'est parce que vous ne pouvez l'utiliser que lorsqu'il est en 3D. On peut changer la zone morte et essayer de voir comment ça marche. Donc maintenant, si notre joueur bouge juste un peu, vous pouvez voir que la caméra ne suit pas. Mais dès qu'il sort de la zone morte, vous pouvez voir que la caméra commence à suivre. Et c'est une astuce très astucieuse que vous pouvez utiliser pour implémenter votre appareil photo. Ramenons ça à 0. Ensuite, qu'est-ce qu'on a d'autre ? On a d'autres choses. Donc si vous bougez, je ne suis pas sûr de la zone molle 0. Donc, la zone sud est, par
exemple, disons que l'amortissement est de retour à 20. Vous pouvez voir les lignes rouges sont très loin. Alors maintenant, même si nous sommes en dehors des lignes, la caméra prend du temps pour rattraper notre joueur. Je pense que c'est quelque chose que nous voulons aussi revenir à 0,8, celui, pourquoi amortir à un. Donc, comme vous pouvez le voir, il y a beaucoup d'options. Il y a aussi du bruit et du but, et vous pouvez même ajouter des extensions à eux, que je recommande d'aller essayer la recherche. Et maintenant qu'on a ajouté une caméra de suivi, laisse-moi juste éteindre le guide de la fenêtre. Je pense que celui que nous avons obtenu par défaut est assez bon pour notre jeu pour l'instant. Je ne veux pas compliquer beaucoup ça, mais c'est l'heure de votre défi. Votre défi sera de peaufiner votre machine Cinna. Alors jouez avec les paramètres et découvrez où se trouve
votre point d'intérêt ou comment vous voulez que l'appareil photo suit votre joueur. Une bonne règle de base comme vous venez de le voir, si vous ne voulez pas lire ce que chaque paramètre fait, est juste d'en définir un au maximum et d'essayer. Donc vous avez des doutes sur ce que fait cette chose. Définissez-le au maximum. Jouez, voyez ce qui se passe et amusez-vous. Alors arrêtez la vidéo dès maintenant et allez faire le défi, et n'oubliez pas de sauvegarder vos repos. Et je te vois dans la prochaine vidéo.
24. Extension Cinemachine Confiner: Bienvenue à mes collègues développeurs de jeux à l'
une des plus grandes vidéos et à tout ce cours. Mais nous avons beaucoup appris. Nous avons appris sur les combinateurs de machines Cinna. Nous avons appris sur les couches. Le calque physique n'est pas les anciennes couches de tri. Nous avons appris à trouver des objets de type. Nous avons appris sur obtenir des composants. Donc j'ai besoin de ta concentration et autour, disons 16 minutes peut-être de ton temps. Alors ne perdons plus de temps. C' est une vidéo très importante et commençons. Oh, donc en ce moment, quand on frappe le jeu, voir qu'on a notre caméra de suivi et que tout fonctionne bien. Mais le problème, c'est que quand on arrive au bord, on voit ces carrés bleus juste ici. Et on ne veut pas ça. Nous ne voulons pas sortir notre joueur de l'expérience. S' il peut voir ce qui est hors des limites de notre jeu, il comprendra que c'est encore une fois. Et comme vous le savez, chaque fois que vous voyez un problème dans le jeu et que vous réalisez, oh, c'est un jeu. Ça vous sort vraiment de l'expérience. Donc, nous allons devoir réparer ça. Comment on répare ça ? Nous devrons limiter notre caméra virtuelle. Et la façon dont nous le faisons, c'est que si nous descendons ici et la caméra virtuelle, vous pouvez voir que nous avons des extensions. Donc, si nous cliquons dessus, vous verrez que nous avons quelque chose qu'on appelle une machine de cinéma confinée. Et comme je l'ai dit, ce sont des choses vraiment cool à chercher ici. Par exemple, si vous faites un jeu 3D ou si vous essayez d'ajouter un zoom de suivi et ainsi de suite. C' est un bon endroit pour lire ces caractéristiques cool que vous avez à l'intérieur de la machine. Mais pour l'instant, nous allons ajouter un combinateur. Alors, voilà. Vous pouvez voir que lorsque nous choisissons un confinement, un nouvel objet de jeu ou un nouveau composant est ajouté à la caméra virtuelle, un composant. Alors, qu'est-ce qu'on va faire ici ? Eh bien, vous pouvez voir que nous avons besoin d'une forme délimitante. Comment ajouter une forme délimitante ? Nous avons ajouté avec un collisionneur 2D. Nous allons donc aller à la couche d'arrière-plan. Nous allons ajouter un composant. Et disons que nous voulons ajouter un collisionneur de boîte, et je vais vous montrer pourquoi cela ne fonctionnera pas. Donc maintenant, si nous revenons à la caméra virtuelle et nous essayons de faire glisser l'image d'arrière-plan, vous pouvez voir ici que nous avons un avertissement que ce doit être un collisionneur de polygone ou un collisionneur composite. Revenons à l'arrière-plan. Supprimons ce collisionneur de boîte et ajoutons un collisionneur de polygone 2D. Et quelle est la différence entre un collisionneur normal et le collisionneur de polygone ? Eh bien, comme vous pouvez le voir, le collisionneur de polygone est beaucoup plus flexible chaque fois que vous voulez ajouter des objets ou un collisionneur autour d'un objet qui n'
est pas vraiment un carré, un cercle ou autre chose. Vous pouvez le voir, vous pouvez le créer avec la forme que vous voulez. Et si vous voulez supprimer l'un de ces côtés, vous pouvez simplement maintenir le contrôle enfoncé. Et on y va. Vous pouvez voir que nous ne pouvons pas tout supprimer. Et nous allons juste nous assurer qu'il est juste ici autour des bords et pas plus. Ok, super, maintenant que nous avons le collisionneur de polygones, gardons ça. Sortons du mode d'édition, revenons en arrière et notre caméra virtuelle et faites glisser l'image d'arrière-plan. Sauvons ça. Mais maintenant, quelque chose de bizarre va se produire quand nous lancerons notre jeu. Alors on a frappé Play. Vous pouvez voir que notre joueur vient de sortir de l'écran. Et pourquoi c'est ça ? Pourquoi pensez-vous, ou quel est le problème ? Pensez-vous ? Prenez un moment pour réfléchir. Le temps est écoulé. Donc, le problème est notre joueur interagit avec ce collisionneur de polygone en arrière-plan. La façon dont nous allons résoudre ce problème est de créer un calque séparé pour l'image d'arrière-plan. Et je ne parle pas de la couche de tri. Si nous allons dans les calques ici, allez dans les calques d'édition. Vous pouvez vous rappeler que nous avons quelque chose appelé tags, nous avons quelque chose appelé des couches de tri, et nous avons aussi les couches. Donc auparavant, nous avons ajouté un calque
de tri, ce qui nous permettra de trier les images au-dessus de l'image de l'auteur. Mais maintenant, nous allons réellement utiliser les couches et ceux-ci nous permettent d'interagir ou permet de déterminer
quel collisionneur interagit avec quel Collider ou quel objet physique peut interagir avec quel autre objet physique. Donc, actuellement, nous allons créer une couche d'arrière-plan. Et vous verrez que notre joueur, par exemple, est sur le joueur par défaut et notre image d'arrière-plan l'est aussi. Donc, si nous changeons le calque ici à l'arrière-plan, vous pouvez le voir lorsque nous allons à Modifier les paramètres du projet. En bas, vous verrez qu'on a cette matrice très astucieuse. Et qu'est-ce que cette matrice me ? Vous pouvez voir que nous avons plusieurs couches ici et l'un d'eux est l'arrière-plan que nous venons de créer. Donc vous pouvez voir là qu'ils sont juste ici à droite. L' un d'eux est la valeur par défaut, qui est notre couche de joueurs. Et nous avons aussi l'eau si vous ignorez la refonte. Mais pour l'instant, que fait cette matrice ? Elle détermine si une couche interagit avec une autre couche. Ainsi, par exemple, la valeur par défaut avec l'arrière-plan, ils interagissent, la valeur par défaut avec l'interface utilisateur, ils interagissent et ainsi de suite et ainsi de suite. Donc, ce que nous voulons, c'est que nous voulons que la couche d'arrière-plan ne soit pas en mesure d'interagir avec quoi que ce soit, et surtout avec le joueur. Donc, ce qu'on va faire, c'est tout simplement éteindre tout ça. On va sauver ça. Et maintenant, nous savons pour un fait que la couche d'arrière-plan n'interagira pas avec la couche par défaut. Donc, nos joueurs ne devraient pas être affectés par ce qui se passe quand il touche l'arrière-plan. Alors maintenant, quand nous lançons notre jeu, nous devrions voir que notre joueur n'est plus hors des limites de la carte. Mais si on sort, ça
passera ? Non, comme vous pouvez le voir, quelque chose s'est mal passé. Nous voulons passer au niveau supérieur, mais comme vous pouvez le voir, maintenant, si nous descendons dans les eaux, nous ne sortons plus des limites avec notre caméra. Maintenant, notre joueur va toujours dehors, mais pas de soucis à ce sujet. Vous pouvez voir que notre caméra ne le suit plus. Et nous pouvons vraiment sentir que l'environnement dans
lequel nous nous trouvons est celui du monde entier. Et cela ajoute vraiment beaucoup d'authenticité à ou de gain. Maintenant, si nous passons au niveau suivant, vous auriez peut-être remarqué un petit problème. Et c'est que nous n'avons pas de caméra virtuelle en cours d'exécution ici. Mais l'autre problème, si nous revenons à notre scène précédente, encore une fois, comme vous pouvez le voir, il n'y a plus de caméra virtuelle, même si nous l'avons juste ici. Et les caméras, la caméra virtuelle, mais il n'y a rien à suivre. La transformation que nous utilisons pour suivre est maintenant manquante. Alors, comment allons-nous dépasser ce petit problème ? Eh bien, nous aurons besoin de créer un contrôleur de caméra dans lequel nous allons accéder à la machine centrale et accéder au joueur dans notre jeu ou trouver notre joueur dans
la scène, puis l'assigner à la caméra virtuelle à suivre. Alors, comment allons-nous faire ça ? La première chose est que nous allons créer un nouveau script Sharp. Donc, nous allons à Create C Sharp. Contrôleur de boîte. Appuyez sur Entrée, attendez qu'elle se compile. Et je ne suis pas sûr de ce qui vient de se passer. Ensuite, nous allons l'ajouter à notre caméra virtuelle. Donc maintenant notre caméra virtuelle a un script de contrôleur de came dessus. Nous allons double-cliquer, l'ouvrir et Visual Studio. Et la première chose dont nous avons besoin est juste comme nous avons ajouté un où est-il dans la sortie de la zone. Nous avons ajouté une gestion de scène afin d'accéder à la bibliothèque du gestionnaire de scène. Et ici, nous allons également avoir besoin d'ajouter en utilisant la machine centrale. Maintenant, nous pouvons accéder aux composants sur une seule machine. Ensuite, nous avons besoin de deux variables ici. L' un d'eux va être un joueur privé, et ce sera une cible de joueur. Et vous vous demandez peut-être, Michael, pourquoi on n'en a pas fait un domaine sérialisé ou public ? Le problème ici est que nous ne voulons pas attacher manuellement notre joueur à la cible. Nous voulons que cela se produise dynamiquement dans notre script. Je vais te montrer ce que je veux dire dans un peu. La prochaine chose que nous voulons faire est que nous voulons une machine de cinéma, caméras
virtuelles ou une caméra virtuelle de machine péché, et nous allons juste l'appeler la caméra virtuelle. Voilà, tu y vas. Sauvegardez ça. Maintenant et commencez. Nous allons utiliser une méthode qui nous permettra de trouver un objet. Et si nous allons dans les documentations ici, je vais vous montrer comment un maître résolveur de problèmes trouve ça. Disons que nous voulons trouver le joueur. Comment on fait ça ? Eh bien, Google comment trouver un objet et entrer. Voilà, tu y vas. Vous pouvez voir que nous avons quelque chose appelé l'objet de jeu dot find. Si nous cliquons dessus, vous verrez que nous pouvons trouver un objet de jeu dont nous avons besoin. Mais il y a une méthode de pattern que je vais vous montrer et c'est l'objet Find d'un certain. Tapez Unity. Appuyez sur Entrée. Whoa, il y a un objet fini de type. Alors entrez. Qu' est-ce que ça fait ? Eh bien, il retourne le premier objet chargé actif qui correspond au type spécifique. Donc, nous voulons un type spécifique qui est le joueur, et vous pouvez voir comment nous pouvons l'utiliser ici. Ok, super. Retour dans notre script et je vous recommande de prendre un peu de temps pour regarder à travers cette méthode va accéder à la cible du joueur. Donc la cible du joueur, c'est le nom de la variable que nous avons créée ici. Il va être égal à l'objet phi1 de type. Et quel type voulons-nous chercher ? C' est le joueur. Donc, en appelant le script du joueur, nous obtenons réellement l'objet du joueur. Et maintenant on peut l'attacher à la caméra. Mais avant de le faire, pour accéder à la caméra virtuelle, nous devons réellement l'assigner. Et parce que nous n'avons pas créé de champ sérialisé ici, nous allons avoir besoin d'une autre méthode. Nous avons donc le contrôleur qui est attaché à la caméra virtuelle. Mais ce que nous voulons, c'est que nous voulons accéder à cet objet ici, qui est sur la suite. Nous voulons accéder au composant caméra virtuelle de la machine de cinéma. Et nous pouvons le faire d'une manière très pratique. Et c'est en obtenant le composant. Donc, en utilisant le composant Get, la machine de cinéma, la caméra virtuelle. Et maintenant, tout ce que nous avons à faire est d'obtenir le point de la caméra virtuelle suivre. Donc, nous accédons à la suite. Et puis nous allons l'assigner comme cible du joueur. Mais pas seulement cela, parce qu'une cible de joueur est juste l'objet que nous avons trouvé, nous devons réellement accéder à la transformation. Alors gardons ça et laissez-moi juste expliquer une fois de plus ce qui se passe ici. Donc, tout d'abord, nous avons créé ces deux variables, l'
une d'entre elles en tant que privé, nous pouvons aussi rendre le cygne privé, mais pas de soucis c'est. Donc, une cible de joueur privé et une caméra virtuelle privée. Ensuite, nous avons trouvé cet objet de jeu. Et pourquoi essayons-nous de trouver l'objet du jeu et de ne pas l'affecter manuellement ? Parce que nous voulons que ça se produise dynamiquement. Nous ne voulons pas aller dans chaque scène et assigner le joueur à la caméra dans chaque scène que nous voulions se produire dynamiquement. Ensuite, nous avons utilisé une méthode qui obtient un composant. Et parce que le contrôleur est sur la caméra virtuelle et c'est l'un des composants. Nous avons un autre composant qui est la caméra virtuelle de la machine de cinéma. Nous y accédons et assignons la prochaine chose que nous accédons à la suite. Donc ici, vous pouvez voir que nous avons un suivi. Nous y accédons en utilisant le droit ici en utilisant ce petit point. Et nous assignons le lecteur cible de transport HDL parce que nous avons juste l'objet, pas le transport réel. Ok, donc si nous gardons ça, retournez à Unity. Définissons ça comme aucun. Sauvegardez ce jeu. Et nous devrions voir ici que le joueur a été trouvé et a été assigné. Alors maintenant, quand nous bougeons, vous verrez que la caméra suit notre joueur. Mais si nous allons dans la scène suivante, vous verrez que rien ne se passe et c'est parce que nous n'avons pas de caméra virtuelle. Alors comment on va arranger ça ? On va dans les préfabriqués. Nous allons définir les caméras comme un préfabriqué, sauvera ça. Nous allons revenir en arrière et scènes dans les montagnes, va supprimer la caméra principale. Et nous prendrons les préfabriqués et ajouterons les caméras que nous avons. On va sauver ça. Nous retournerons dans notre ville, lancerons le code. Nous allons marcher vers les montagnes et voilà. Comme vous pouvez le voir, nous avons une caméra de suivi. Maintenant, nous n'avons pas de confessionnel, nous l'ajouterons plus tard, mais ça marche. Comment c'est ? J' espère que ça vous plaira. J' espère que vous sauvegardez vos dépôts. Comme vous pouvez le voir, notre projet prend forme et devient très grand. Tu devrais être vraiment fier de toi et de ce que tu as accompli jusqu'à présent. Je te vois dans la prochaine vidéo.
25. Tilesets en unité: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons apprendre à créer des jeux de
tuiles à partir des feuilles de sprite de tranches que nous avons. Ce que nous avons fait c'est que nous avons un sprite ici, une image complète des tuiles que nous voulons utiliser. Nous l'avons découpé et nous l'avons converti en actifs de tuiles. Et ces atouts sont maintenant présents ici et notre palette de tuiles. Alors ne perdons plus de temps. Commençons. Oh, d'accord. Donc, actuellement, comme vous pouvez le voir, nous avons toujours travaillé avec une image d'arrière-plan. C' est donc une image où nous avons déjà une sorte de chemin prédéterminé. Nous avons des objets prédéterminés et notre monde. Mais ce n'est pas amusant chaque fois que vous voulez créer vos propres niveaux, il est toujours préférable d'avoir un moyen d'utiliser une sorte de tuiles. Peut-être que nous verrons cela plus tard afin de créer votre propre carte avec votre propre mise en page. Alors, comment allons-nous faire ça ? Eh bien, tout d'abord, en utilisant Sprites, puis en disséquant ou en tranchant les sprites, puis en utilisant ces sprites tranchés pour disposer les tuiles et notre monde, peut-être que vous êtes un peu confus par ce que je viens de dire. Laissez-moi vous expliquer un peu mieux. Tout d'abord, nous obtenons notre feuille de sprite. Donc, comme nous avions la feuille de sprite démon Jimmy, nous avons aussi une feuille de sprite pour nos carreaux. La prochaine étape est que nous allons découper les sprites. Ensuite, nous allons convertir ces sprites tranchés et en actifs de tuiles. Nous ajouterons les éléments de style à une palette de tuiles qui nous
permettra de dessiner sur le dessus de notre scène à l'aide d'une mise en page de grille. Et nous aurons une carte de tuiles avec notre démon dessus. Alors prenez juste un moment pour comprendre le processus, car nous allons le faire tout de suite. Donc de retour dans Unity, et ici nous allons aller à Windows 2D et nous allons appeler 40 palette de tuiles. Et cette palette de carreaux nous permet de dessiner, ou c'est comme une palette de peinture chaque fois que vous voulez peindre un tableau, c'est une palette de carreaux qui nous permettra de peindre différents carreaux sur notre C. Ok, donc maintenant nous avons besoin de nos carreaux. Et vous pouvez voir que dans les ressources que je vous ai laissé les fichiers à utiliser, qui est le chemin et les objets, et c'est le jeu de fichiers que je vais utiliser. Nous aurons d'autres jeux de tuiles plus tard. Mais pour l'instant, le pantalon et les objets sont ce que je vais utiliser. Donc, ce que nous allons faire ici, c'est que nous allons aller à Assets, va créer un nouveau dossier pour les fichiers. Et ici, nous allons aller de l'avant et laisser tomber le chemin et les objets. Donc on va le déposer ici. Donc, comme vous pouvez le voir, si nous double-cliquez ici, c'est un sprite avec toutes les tuiles que nous voulons. Maintenant, l'étape suivante est d'aller de l'avant et de les découper. Nous allons donc passer en mode Sprite, choisir plusieurs, appliquer les modifications. Va au rédacteur en chef de Sprite. Et ici, nous allons les découper. Donc je ne pense pas que l'automatique ne fonctionnera pas. 64 par 64. Essayons ça. Non, nous devons avoir ce style, par
exemple, cette pierre et l'herbe ont été en neuf morceaux. Essayons 32 par 32. Et oui, on y va. Vous pouvez voir qu'il est coupé en neuf morceaux et nous pouvons l'utiliser. Donc, nous allons appuyer sur Appliquer. Et maintenant, vous verrez qu'au lieu d'une seule image, nous aurons tous les petits sprites découper toutes les tranches de notre grande feuille de calcul. Ok, super. Ce sont donc les deux premières étapes. L' étape suivante consiste à créer des actifs de tuiles et à les ajouter dans la palette de tuiles. Et la façon dont nous le faisons, si nous retournons dans Unity, et ici nous avons la Palette de tuiles. Nous devons donc créer une nouvelle palette de tuiles. Nous appellerons ça le chemin et les objets. Nous allons cliquer sur Créer et nous allons voir les actifs à l'intérieur des tuiles. Allons de l'avant et créez un dossier, des chemins et des objets. Et nous allons sélectionner ce dossier ici. Et nous allons aussi traîner le sprite ici. Donc maintenant, nous avons la palette Style créée, mais maintenant nous devons créer l'actif de fichier. Donc, la façon dont nous faisons cela est de prendre cette image entière et de la faire glisser ici dans la palette de tuiles. Nous devons sélectionner un dossier. Et allons de l'avant et sélectionnons le chemin et les objets à l'intérieur du fichier. Assurez-vous donc d'enregistrer dans un dossier où vous pouvez avoir toutes les tuiles. Sélectionnez donc le dossier et attendez que l'importation ait. Alors maintenant, les sprites sont convertis en actifs de tuiles. Et voilà. Donc, comme vous pouvez le voir, ce sont les actifs de tuiles et vous pouvez lire ici dans l'inspecteur qu'il s'agit d'une tuile. Donc chacun d'entre eux est une tuile et vous pouvez les voir ici dans une palette de tuiles. Maintenant que nous avons tout configuré, la prochaine chose à faire est de créer une carte de tuiles, mais nous allons le faire dans la vidéo suivante parce que celle-ci est déjà trop longue. Et avant de partir, je veux vous lancer un défi. Votre défi sera donc de créer votre propre carte de tuiles ou décalage pour l'instant. Importez donc tous les sprites et tuiles que vous choisissez d'utiliser pour votre jeu. Coupez donc les feuilles de calcul des tuiles et ajoutez-les à la palette de tuiles pour créer votre nouveau jeu de pneus. Et avant de partir, je veux aussi vous montrer où j'ai mes jeux de tuiles. Donc c'est ma feuille de calcul. Donc, c'est de l'art de jeu ouvert. Comme toujours, c'est une ressource incroyable pour tout ce dont vous avez besoin pour créer vos jeux. C' est de l'auteur, Sabine. Je ne suis pas sûr. Je vous recommande de les vérifier. Et vous pouvez également aller à l'art de jeu ouvert et trouver votre propre jeu de style afin que vous puissiez aller à la navigation, à l'art. Il y a des tonnes et des tonnes de biais, comme vous pouvez le voir ici, Zelda comme les donjons bloqués et ainsi de suite. Trouvez donc votre feuille de calcul,
votre feuille de sprite préférée et utilisez-la pour créer votre jeu de piles. Donc, je vous verrai dans la prochaine vidéo où nous allons commencer poser nos tuiles et à créer une carte de tuiles.
26. Créer une carte de mosaïques: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons créé une carte de tuiles. Alors maintenant, laisse-moi juste bouger un peu mon joueur sur la route. Si nous exécutons notre vue de jeu, vous pouvez voir qu'il s'agit de la carte que j'ai créée. Alors, voilà. Vous pouvez voir que nous avons des objets solides avec lesquels nous interagissons. On a des magasins, on a tout. Il y a quelques choses que nous devrons changer. Par exemple, nous pouvons voir que nous avons les eaux ici. Nous avons les sacs de pommes de terre et nous avons le plan d'eau que nous ne pouvons pas traverser. Alors ne perdons plus de temps et commençons. Oh, d'accord. Donc, avant de continuer ici, lorsque nous voulons valider les modifications après avoir créé les actifs de tuiles, il y a un petit problème. Si vous avez déjà mis en scène ou validé tous vos fichiers, c'est bon. Mais si ce n'est pas le cas, je vous recommande d'ignorer tout sous les actifs, les styles, le chemin et les objets. Et pourquoi c'est ça ? Parce que je ne pense pas qu'il soit vraiment nécessaire d'aller de l'avant et de sauver tous les biens. C' est beaucoup d'espace, et je ne crois pas que ce soit très nécessaire. Seul le code et ce qui se passe à
l'intérieur du jeu sont plus importants que les images réelles. Nous allons donc ignorer tout ce qui est sous Assets, chemin de fichier et objets sur Okay, donc maintenant nous pouvons mettre en scène tous nos fichiers et aller de l'avant et valider nos modifications. J' ai donc créé un ensemble de tuiles. Ne vous inquiétez pas si vous avez déjà fait ça. Pas de soucis. Continuez sur l'immunité du dos. Maintenant, il est temps de commencer à peindre. Alors, comment allons-nous peindre avec notre nouvelle palette de carreaux ? Eh bien, tout d'abord, nous allons aller de l'avant et créer une nouvelle scène. Nous allons aller de l'avant et nous assurer que c'est 2D. Enregistrez les modifications. Notre scène ici. Et maintenant, nous allons aller dans l'objet de jeu. Nous allons aller dans la 2D et trouver la carte de tuiles, assurez-vous qu'elle est rectangulaire. Appuyez sur Entrée. Et maintenant, nous avons une carte de tuiles. Nous pouvons changer cela en arrière-plan. Et vous remarquerez ici que la carte de tuiles active deviendra l'arrière-plan. Voilà, tu y vas. Sauvons la scène. Et je pense qu'on va appeler ça la ville aussi. Donc Control S pour sauver la scène. Et les cytosines appelleront ça la ville pour sauver. Et maintenant, nous avons une deuxième fois. Maintenant, comment allons-nous dessiner ici ? Ainsi, par exemple, si nous
zoomons, nous pouvons choisir l'un de ces styles. Et parlons des options que nous avons ici. Nous avons, tout d'abord, la sélection d'une zone sur la grille. Et laisse-moi faire un peu plus grand. Nous pouvons sélectionner une zone sur la grille, et ceci est pour l'édition. Ainsi, par exemple, si nous appuyons sur la touche Modifier ici, sélectionnez cette grille, avait le déplacement. Maintenant, nous pouvons déplacer cette palette. On ne veut pas ça pour l'instant. C' est le mouvement de juste vu ce qu'il a fait. Et nous avons aussi le pinceau, et cela nous permettra de peindre des choses dans notre monde. Donc, si nous choisissons ceci, par exemple, ce genre de pierre, nous pouvons commencer à peindre. Mais évidemment, vous pouvez voir que les sprites ou les tuiles sont trop petits. Comment on répare ça ? Si nous allons dans le bain de tuiles et les objets, si nous frappons le grand sprite, nous pouvons changer cela de 100 à 32. Appuyez sur appliquer, et vous y allez. Nous avons les tuiles maintenant assez grandes. Nous pouvons également changer le mode de filtre pour ne pas pointer de filtre. Et cela devrait rendre nos tuiles un peu plus nettes. Ok, super, maintenant que nous savons utiliser la peinture, la prochaine chose pour apprendre à utiliser la boîte remplie de peinture. Et cela nous permet de créer rapidement des boîtes dans notre jeu. Donc, comme vous pouvez le voir, nous pouvons peindre plusieurs blocs très rapidement. Ok, super. Ensuite, nous avons le tabouret. Je n'ai jamais utilisé cet outil. C' est un peu déroutant. Et nous avons la gomme, ce qui est extrêmement important. Ok, super. Donc maintenant, nous allons créer juste un petit exemple juste pour tester quelques choses. Donc je vais créer une petite route ici. Ensuite, nous devons ajouter l'herbe sur le dessus. Donc, comme vous pouvez le voir, c'est le bloc que nous pouvons utiliser pour dessiner de l'herbe. Donc, nous dessinons sur le dessus juste ici. On y va. On dessine un peu d'herbe en dessous. Et disons, par exemple, que
nous voulons faire une sorte de courbe. Alors nous allons sauver la route qui va de cette façon. Alors, comment allons-nous nous assurer qu'il a l'air authentique ? Eh bien, tout d'abord, ajoutons une herbe ici. Ajoutons l'herbe à droite. Et à gauche. Mais qu'allons-nous ajouter et ce bloc, ou dans ce bloc ? Eh bien, vous pouvez voir que nous avons celle-là pour ici. Alors, voilà. Vous pouvez le voir naturellement courbes. Mais qu'en est-il de celui-là ? Nous ne pouvons pas utiliser ni celui-ci, ni donc aucun autre. Eh bien, si nous descendons ici dans notre palette de tuiles, nous pouvons voir que nous avons, par
exemple, ce type d'herbe. Et si on ajoutait ici, on y va. Nous avons une très belle courbe vers le haut. Donc, cela prendra un peu de temps à comprendre, mais une fois que vous en aurez le coup,
cela deviendra très facile. Donc, par exemple, si vous voulez créer un tas de saleté, nous ajoutons ce genre de blocage à l'herbe et ensuite nous remplissons tout ici. Donc maintenant, nous avons un chemin de terre ou ADR, juste de la saleté sur le sol. Ok, alors la prochaine chose est, disons que nous voulons ajouter ces sacs de pommes de terre pour pouvoir choisir plusieurs blocs et commencer à les peindre. Mais il y a évidemment quelque chose qui ne va pas. Le fond de ces sacs de pommes de terre est transparent, comme
vous pouvez le voir, il peint sur nos arrière-plans. Qu' est-ce qu'on va faire à ce sujet ? Eh bien, nous pouvons créer une deuxième carte de fichiers. Donc, si nous allons dans la grille, nous faisons un clic droit et allons à la carte de tuiles 2D rectangulaire. Et appelons ça les objets. Donc maintenant, nous avons une deuxième carte de tuiles active ici, qui va être les objets. Vous devez toujours vous assurer dans quelle carte de tuiles active vous travaillez. Donc je vais supprimer le sexe pour l'instant. Je vais ajouter les sauvegardes. Ce n'est pas la saleté que nous recherchons. Donc nous allons rajouter cette saleté ici. Et maintenant, nous devons ajouter le saxophone. Donc, au lieu de l'arrière-plan, nous allons aller aux objets, va sélectionner les sacs. Et maintenant, vous remarquerez que nous pouvons peindre les sacs
sans avoir de problèmes ou d'incohérences dans notre monde. Et juste pour s'assurer que les objets sont toujours terminés, l'arrière-plan, ira aux objets,
choisira le calque d'arrière-plan comme calque de tri, et nous allons en écrire un. Et ici, je vais aussi aller à l'arrière-plan. Nous allons nous assurer qu'il s'agit d'un arrière-plan dans le calque de tri et son ordre et qu'il y a 0. Sauvons ça. Et maintenant, vous pouvez voir comment nous pouvons créer nos fichiers. Maintenant, testons comment ce monde fonctionne pour notre joueur. Donc, si nous retournons dans notre scène précédente à la ville ou à la ville ordinaire, nous allons aller de l'avant et le préfabriqué, notre joueur. Maintenant, nous avons un joueur comme préfabriqué et nous retournerons dans la scène. On enlèvera les caméras principales et on ajoutera nos propres caméras. Donc ce sont les caméras virtuelles avec une boîte de suivi et nous allons ajouter un joueur. Alors maintenant, quand on économise, on lance le jeu. Vous pouvez voir que nous pouvons bouger avec notre joueur et nous avons un camp d'automne. Super. Bien sûr, nous allons étendre notre jeu plus tard ou étendre la carte pour le rendre meilleur. Mais pour l'instant, nous devons faire quelque chose de très important. Et cela fait en sorte que notre joueur interagit avec ces sacs et ne se contente pas de les traverser. Et on peut continuer à ajouter des collisionneurs. Nous avons un bien meilleur moyen. Alors, comment allons-nous faire ça ? Eh bien, je vais vous lancer un défi. Donc, en ajoutant des collisionneurs aux tuiles solides. Ajoutez donc un collisionneur de carte de tuiles, deux objets solides. Donc, la carte de tuiles d'objets que nous avons ici, vous devrez y ajouter un collisionneur. Ensuite, vous devrez ajouter un collisionneur composite. Je vous expliquerai ce que c'est plus tard. Vous devrez ajouter un Rigid Body 2D et lancer le jeu et remarquer comment tout fonctionne parfaitement bien. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Oh, d'accord, bienvenue. Allons donc aux objets. Et vous remarquerez que ce sont les objets juste ici. Nous allons ajouter un composant et ce sera un collisionneur de carte de tuiles que 2D peut voir en ce moment, voilà. Vous pouvez voir que les sacs ont un collisionneur sur eux. Et par exemple, disons que nous voulons ajouter un peu d'eau ici. Et ça va être sous des objets parce qu'on ne veut pas se déplacer dans l'eau. Donc je vais juste ajouter un peu d'eau ici, et voilà. Alors maintenant, quand nous courons notre jeu, vous pouvez voir que nous ne pouvons plus passer à l'eau ni aller le week-end sur le dos. Ok, super. Donc maintenant cela fonctionne parfaitement bien, mais il y a un léger problème. Comme vous pouvez le voir ici, nous avons des bûcherons médicaux sur ce plan d'eau. Et cela prend beaucoup de mémoire et de gain. Donc, ce que nous pouvons faire est d'ajouter un, où est-ce le collisionneur composite ? Et vous verrez ce qui se passe lorsque nous ajoutons un collisionneur composite 2D. Vous pouvez voir en ce moment qu'un corps rigide 2D a été ajouté et toute la carte, si nous cliquons sur l'utilisé par composite, remarquez ce qui arrive aux fichiers ou aux collisionneurs sur tous ces styles. On y va. Donc maintenant, au lieu d'avoir 40 collisionneurs, nous avons un seul collisionneur qui est composite sur tous les sacs ou je veux dire tout le plan d'eau. Donc encore une fois, si nous exécutons le code, vous remarquerez que parce que nous avons ajouté un corps rigide et c'est ce que je voulais dire quand je vous ai dit que tout ne devrait pas fonctionner parfaitement. Cela ne fonctionne pas parce que le corps tombe, parce que sa dynamique ou changeons à cinématique. Lancez le jeu. Et maintenant tout devrait fonctionner complètement bien. Tellement gentil. Comme je l'ai dit, ce n'est pas très compliqué. C' est plus facile que vous ne le pensez quand vous voulez dessiner vos tuiles, vous vous y habituerez. Assurez-vous que vous êtes toujours sur la carte active correcte. Assurez-vous donc de valider vos modifications. Créez une carte que vous voulez regarder jamais mappée que vous voulez en utilisant les tuiles que je vous ai fournies ou les essais que vous avez trouvés sur l'art de jeu ouvert ou d'autres sites Web. Est-ce que cela dit dans la prochaine vidéo, je vais en faire préparer un que nous pouvons utiliser et je vous verrai alors.
27. Garder le joueur dans la carte: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons tout d'abord lié nos caméras. Ainsi, comme vous pouvez le voir, la caméra ne sort plus de la scène de jeu. Et pas seulement cela, nous avons également serré la position du joueur. Ainsi, comme vous pouvez le voir, il ne peut plus sortir de la carte que nous avons créée. Alors ne perdons plus de temps et commençons. O k. Donc, actuellement, nous pouvons nous déplacer et notre nouveau créer une carte de tuiles. Mais le problème est que le joueur sort de la carte et la caméra le suit là-bas. Comme vous pouvez le voir, nous pouvons sortir de la carte et voir le fond bleu ici et nous ne voulons pas que ça. Avant de faire ça, je voulais juste te montrer quelque chose que j'ai fait. J' ai ajouté un jeu de tuiles supplémentaire ici qui est l'arrière-plan sur les objets. Et vous pouvez voir qu'il est sur l'arrière-plan du calque de tri et commander la couche 2 sans collision. Et c'est pour les objets en arrière-plan. Donc je veux dire arrière-plan sur l'objet. Donc, par exemple, je voulais dessiner un peu de bois sur l'eau et des boulons sur l'eau. J' ai donc ajouté cet objet d'arrière-plan juste pour cela, ou arrière-plan sur des objets. J' ai aussi fait en sorte que je puisse marcher sur le pad juste ici. Ok, alors continuons. Comment allons-nous, tout d'abord, s'
assurer que la caméra ne sort pas des limites. Eh bien, vous savez déjà qu'il faut ajouter un collisionneur de polygone. Nous allons donc ajouter à l'arrière-plan collisionneur de polygone 2D. Laisse-moi réparer ça très vite. Nous allons donc éditer le polygone. Voilà, tu y vas. Mettez le bord ici et le bord apparaît. Un pair de bord. Et un bord en bas. Nous allons enregistrer qui ouvrira la caméra virtuelle. Et où est le confiné ? Il y a un confinement ici. Faisons-le glisser, sauvegardez ça, et voilà. Maintenant, nous avons un combineur. Donc, si notre joueur hoops, donc nous avons oublié de nous assurer que cette couche de polygones est sur le calque d'arrière-plan et qu'il n'interagit pas avec le joueur. Encore une fois, nous exécutons le code et nous pouvons voir que la caméra ne sort plus des limites, mais le joueur peut encore s'éloigner de notre scène. Alors comment on va arranger ça ? Eh bien, nous aurons besoin de créer un moyen pour le joueur savoir où les limites qu'il peut marcher sur r. Donc, nous allons ouvrir le script et le script du joueur aura besoin de quelques variables. Nous aurons donc besoin d'un vecteur privé 3 parce que nous avons besoin de
la position du bord inférieur gauche de l'écran. Et nous aurons aussi besoin d'un bord supérieur droit. Donc, en haut à droite. Ok, donc maintenant nous aurons les deux bords de la carte à la disposition du joueur. Comment allons-nous les avoir ? Nous aurons donc besoin d'avoir accès à la carte de tuiles dans laquelle nous travaillons. Donc, pour accéder à la carte de tuiles, nous devrons utiliser le moteur Unity. Cartes de tuiles de points. On y va. Sauvons ça. Maintenant. La prochaine chose que nous devrons faire est de créer une variable ici, qui va être un champ sérialisé pour référencer la carte de tuiles. Et on appellera ça la carte des tuiles. Pour tout garder très simple. Peut-être gardons la carte de tuiles comme ça, sauvegardez ça. Et maintenant, nous devons nous assurer que nous assignons la bonne carte de tuiles. Nous aurons donc besoin de l'arrière-plan pour notre joueur. Donc, de retour dans Unity, attendez ces compilations crypto. Allez chez le joueur. Et où est le script ? Voilà, tu y vas. Nous avons une carte de tuiles. Faites glisser l'arrière-plan, et ici, sauvegardez cela dans notre script. Alors, qu'est-ce qu'on va faire ? Eh bien, tout d'abord, nous avons besoin des bords. Comment allons-nous obtenir les bords ? Après avoir initialisé notre joueur ici, nous allons aller de l'avant et appeler le bord inférieur gauche. Et ce sera la carte des tuiles point limites locales que les hommes. Laissez-moi revenir en arrière et essayer ceci encore une fois pour que nous puissions lire le point minimum de la boîte. Ceci est toujours égal au centre étendu. Donc, cela nous donnera les limites inférieures. C' est en bas à gauche. Maintenant, nous allons essayer le bord supérieur droit, et ce sera la carte de tuiles points limites locales. Vous l'avez deviné au maximum, et c'est le point maximum de la boîte. Ok, donc maintenant nous avons le bord supérieur, le bord inférieur, et nous pouvons les utiliser pour déterminer où le joueur peut marcher. Nous allons le faire dans la mise à jour juste ici. Donc, nous allons tout d'abord, accéder au transport de la position du joueur. Et nous allons utiliser une méthode qui est appelée laissez-moi juste créer le nouveau vecteur 3. C' est donc là que le joueur pourra marcher. Mais comment allons-nous faire en sorte que la position du joueur ne soit jamais hors des limites. Donc, dans la mise à jour, nous gardons une trace de la position du joueur. Alors qu'il se promène, disons, et nous avons remarqué que sa position est au bord de l'endroit où nous pouvons marcher. Nous voulons nous assurer qu'il ne pourra jamais dépasser ce point ici, ou ce point ici ou là-haut. Alors comment allons-nous faire ça ? Il existe une méthode très astucieuse qui s'appelle la pince à points mathématiques. Et vous pouvez voir ce que ça fait. Il retourne un flotteur. Et un flotteur est le résultat entre la valeur minimale et la valeur maximale. Donc pince donne une valeur entre le minimum donné et le maximum donné. Donc, ce que nous pouvons faire est de nous assurer que la position du joueur ne dépasse jamais une certaine variable serrée, qui sera du minimum au maximum. Et vous pouvez en savoir plus sur la pince et comment cela fonctionne. C' est donc la valeur que nous avons fournie. Ce sera la position du joueur. Le minimum sera le bord inférieur gauche, et le maximum sera le bord supérieur droit. Alors allons de l'avant et essayons de mettre en œuvre cela dans notre jeu. Donc, tout d'abord, parce que cela va être très long, nous allons appuyer sur Entrée et commencer à écrire ici. Donc, parce que nous prenons nos joueurs en position de transformation, c'est un vecteur trois comme nous l'avons appris parce que nous travaillons sur les axes x, y et z. Donc la première chose que nous devons faire est de
serrer la position de transformation du joueur. Et voyons comment on peut écrire des maths après la pince. Vous pouvez voir que nous devons d'abord écrire f dot clamp, puis ajouter les valeurs. Donc on va écrire la pince de point F mathématique, et on ouvrira les parenthèses. Quelle est la valeur que nous voulons apporter ? Ce sera le point de position de transformation x. Et ce qui est, quelle est la valeur minimale va être le point de bord inférieur gauche x. Et quelle est la valeur maximale va être le bord supérieur droit, le x. Là, nous allons et nous devons ajouter une virgule ici. Maintenant, la prochaine chose à faire est de continuer avec la position y et z. Et ça va faire partie de votre défi. Donc votre défi est de finir le reste des pinces. Serrez la position du joueur sur le y et aussi sur le zip. C' est donc un défi assez facile. Mettez la vidéo en pause maintenant. Si vous le souhaitez, vous pouvez en savoir plus sur les pinces et les chiens d'unité et aller au défi. Bon, bienvenue. Donc je vais aller de l'avant et dupliquer ça deux fois. Je vais supprimer la dernière virgule. Et au lieu de la position point x, je vais utiliser le point de position Y et au lieu de la position x près du point de dépôt z. et bien sûr, nous devons changer cela ici aussi. Alors point y. Mais y et le z, ou z ou quoi que vous l'appelez, assurez-vous de sauver tout ça. Et si, laissez-moi juste remettre cela ici, la façon dont je l'ai fait est d'utiliser le décalage de tabulation pour dégager, mais cela semble
plus organisé que si nous mettons tout sur une seule ligne et avions une ligne vraiment longue. Ok, donc avec ça fait, allons continuer notre jeu et voir si ça marche. Donc nous allons sauver tout ça, exécuter le jeu. Et maintenant que notre joueur marche, vous verrez que quand il arrivera au bord, vous y allez. Il ne peut plus passer par là, mais il y a encore un petit problème que nous utilisons. Donc, comme vous pouvez le voir, le joueur peut sortir des limites un peu. Et ce n'est pas très gentil, surtout quand il est en bas. Nous voulons un moyen de nous assurer que notre joueur est toujours visible dans notre fenêtre de jeu. Donc, la façon dont nous faisons cela, je peux juste arrêter notre jeu dans notre code ici et commencer où nous avons dit le bord inférieur gauche et le bord inférieur droit. Nous allons ajouter quelque chose à cela. Donc ce ne sera pas seulement la limite supérieure, je veux dire, 40 bord inférieur gauche ou la limite inférieure. Nous allons l'augmenter d'un petit peu. Donc, je vais créer un nouveau vecteur 3, et nous allons juste ajouter 0.50.5 f et 0 F sur l'ensemble. Et nous ferons la même chose. Laissez-moi copier ceci et le mettre ici. Alors voilà. On va sauver ça. Donc, ce qui arrive maintenant
à, afin d'assigner le bord supérieur droit prendra la carte de tuiles à limite locale max. Nous obtenons la limite supérieure et nous la diminuons juste un peu. Et ceci ici devrait être moins et moins. Donc, nous le réduisons juste un peu pour que le joueur ne touche pas le bord réel. Il frappe un bord là-haut qui est juste un peu plus bas. Ok, donc maintenant on peut aller de l'avant et exécuter notre code et voir ce qui se passe. Alors que notre joueur marche, il devrait commencer. Oh, tu y vas. Donc, vous pouvez voir que le joueur s'arrête avant qu'il ne passe réellement par. Et pourquoi est-ce qu'il a traversé ? Vous pouvez voir que c'est parce que la position est ici. C' est donc le centre de la position. Donc maintenant cette petite distance ici est la 0,5 que nous avons ajoutée avec le vecteur à cela. Frappe ça sur le bord inférieur. Et voilà. Laissez-moi revenir au joueur contre le joueur, joueur et la position. Voilà, tu y vas. Ainsi, vous pouvez voir que le joueur est toujours affiché. On pourrait avoir besoin d'en ajouter un peu plus ici. Essayons le haut. Et si on va au sommet, oui, voilà. Je pense qu'il faut ajouter un peu au haut et au bas. Alors essayez de réparer ça. Peut-être faire ce 0.8 ici 0.8. Sauvons ça. Essayez à nouveau à R1, déplacez notre joueur vers le bord. Vous pouvez voir que c'est la même chose en bas. Il en a besoin un peu plus au sommet. Oui. Le haut, je pense, est assez bon. Peut-être qu'on va faire celle-là. Je vais arrêter la vidéo maintenant. Et j'espère que vous essayez d'ajouter vos propres bords dans la prochaine vidéo, nous allons créer un gestionnaire de niveau et apprendre les méthodes dans Unity. Alors je te verrai là-bas. Assurez-vous de valider vos modifications.
28. Créer un deuxième niveau: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons créer une deuxième carte de fichiers. Comme vous pouvez le voir ici, nous avons créé cette carte, nous avons ajouté la grille, nous avons ajouté une zone, une
sortie, etc. Maintenant, je ne vais pas tout faire devant vous parce que les étapes que nous allons
faire sont extrêmement basiques et il n'y a rien de nouveau à apprendre. Ce que vous devrez faire, c'est d'abord, vous devrez ajouter le sprite de montagne que je vous ai fourni. Vous devrez le définir sur 32 ou cela dépend de vos sprites. Vous devez vous assurer que le mode sprite est multiple. Vous devrez appliquer cela et vous assurer que le mode de filtre est point plus filtre. Et puis vous devrez aller dans l'éditeur Sprite. Vous aurez besoin de découper tout ça. Et si vous utilisez la même carte de tuiles que moi, vous devez utiliser. Je pense que 32 sur 32 est la façon dont vous les tranchez. Donc, lorsque vous avez tout tranché, vous devrez les ajouter à votre palette de tuiles ici. Vous devez créer une nouvelle palette de tuiles et ajouter les tuiles entières et ici. Donc, avec cela fait, la prochaine chose que vous devrez faire, et c'est une étape très importante, c'est que vous devez aller dans la ville aussi. Sauve ça. Oui. Gardez en sécurité. Vous devrez préparer la grille. Et pourquoi c'est ça ? Parce que si vous voyez ici, la grille a l'arrière-plan, les objets, l'arrière-plan sur les objets. Et nous avons les collisionneurs de polygones et les collisions de cartes de tuiles et ainsi de suite. Et nous ne voulons pas continuer à faire ça. Mais la seule différence est que vous devez décompresser complètement la grille. Alors, qu'est-ce que je veux dire par là ? Disons que nous sommes dans les montagnes deux, nous voulons commencer notre jeu. Mais quand nous ajoutons la grille, par exemple, si nous allons dans les Prefabs et nous ajoutons notre grille, vous remarquerez qu'elle est la même que la précédente. Et chaque fois que nous voulons y apporter des modifications, il y aura un léger problème. On ne veut pas ça. La façon dont nous le déballons est de faire un clic droit sur la grille, nous allons dans les Prefabs et nous sélectionnons décompresser complètement. Donc, maintenant, nous allons être en mesure d'apporter des modifications à cette grille sans avoir de sorte d'erreurs. Et c'est une étape très importante. Assurez-vous donc de cliquer avec le bouton droit de la souris. Donc maintenant ce n'est plus le cas. Donc, vous faites un clic droit, allez à prefab et décompresser complètement la grille, puis vous serez en mesure de continuer à travailler. Encore une fois. Une autre chose que nous devons nous assurer est la, lorsque vous cliquez sur l'arrière-plan, vous remarquerez que les bords ici seront un peu partout. Vous devrez donc aller dans le rendu de la carte de tuiles, je veux dire la carte de tuiles et vous devrez compresser le
rebond de la carte de tuiles après avoir fini de disposer toutes vos piles. Donc c'est fondamentalement tout. Vous devrez également changer le collisionneur de polygones, assurez-vous qu'il est correctement configuré. Vous devrez ajouter le confiné ici. Donc, faites glisser et l'arrière-plan trouvera plus tard un moyen de le faire plus facilement. Sauve ça. Et c'est fondamentalement tout. C' est tout ce que vous devez faire pour créer une deuxième carte de pile à la grille sur le paquet complètement et commencer à peindre. Donc, avec tout cela dit, je vais vous lancer un défi car c'est de créer une seconde ou une seconde scène ou tout ce que vous voulez appeler. Donc, créez les actifs de tuiles à partir des sprites, préfabriquez la grille, créez une nouvelle scène à la grille dans la hiérarchie, et décompressez complètement la grille, sorte que cela ne crée pas votre niveau. Alors mettez la vidéo en pause maintenant, allez créer votre niveau. Et je vous verrai dans la prochaine vidéo où nous allons créer un gestionnaire de niveau.
29. Gestionnaire de niveau: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons créer un gestionnaire de niveau va apprendre ce que cela signifie lorsque nous voulons déléguer des scripts, où nous voulons créer différents scripts pour différentes choses à faire. Nous allons également en apprendre davantage sur les méthodes et les méthodes publiques et comment les scripts peuvent communiquer les uns avec les autres, même s'ils ont des variables privées. Alors ne perdons plus de temps et commençons. Oh, d'accord. Donc, actuellement, nous pouvons voir que lorsque nous exécutons notre jeu, tout fonctionne bien et nous pouvons passer d'un niveau à l'autre. Maintenant, nous avons un petit problème que la caméra ne suit pas le joueur quand il va au niveau suivant. Mais nous corrigerons ça plus tard quand nous apprendrons tout en boucle. Pour l'instant, concentrons-nous sur la création d'un gestionnaire de niveau. Pourquoi avons-nous besoin d'un responsable de niveau ? Eh bien, quand il s'agit de programmer et de créer des jeux, en
particulier, vous devez toujours trouver un moyen de déléguer votre code. Donc, nous ne voulons pas que notre joueur garde toujours une trace de tout. Nous voulons que notre joueur ait à trouver les limites de notre niveau. Donc, ce que nous allons faire est de créer un gestionnaire de niveau qui fera cela pour le joueur et ensuite envoyer les informations des bords au joueur en utilisant des méthodes. Donc, nous allons tout d'abord créer un gestionnaire de niveau. Donc, dans la hiérarchie va créer un objet de jeu vide. On l'appellera le responsable de niveau, et on réinitialisera sa position 2 000 000 de tous les côtés. Ensuite, nous allons créer un script. Ainsi, dans les scripts fera un clic droit créer un script C-Sharp. Ça va s'appeler le niveau. Et sans aucun espace, le manager appuie sur Entrée. Attendez que ces compilations crypto. Nous allons l'ajouter au gestionnaire de niveau et allons de l'avant et ne préférons. Mais avant d'oublier, parce que nous aurons besoin du gestionnaire de niveau et de tous nos scripts. Maintenant, ouvrons le script et voyons ce que nous allons faire ici. Donc, le script sera responsable de déterminer quels sont les bords de notre niveau. Donc, d'abord, bien sûr, nous aurons besoin d'ajouter un fichier mappage. Cela nous donnera donc la possibilité d'accéder aux cartes de tuiles. Ensuite, nous aurons besoin autour des mêmes variables que nous avons et le joueur. Donc nous allons simplement les copier et les coller ici dans le lecteur. Et laisse-moi monter ça ici, Enter, et voilà. Maintenant, nous avons une référence à la carte de tuiles, le bord inférieur gauche et le bord supérieur droit. Mais tu me dis peut-être comment on va communiquer entre eux ? Ou même avant cela, laissez-moi juste enlever le fardeau du joueur. Et je viens de les obtenir en utilisant Control X et je vais les coller ici et le début. Donc, chaque fois que le gestionnaire de niveau commence, il obtient la carte de tuiles que nous avons ici et il définit les limites de celui-ci. Ok, super, donc maintenant que nous avons fini avec ça, vous pourriez me demander, eh bien, Michael, comment Player va savoir ce que sont le bord inférieur gauche et ce qu'est le bord supérieur droit. Donc, même si nous avons ce privé et que nous les avons ici aussi privés, comment vont-ils communiquer ? Eh bien, ils communiqueront en utilisant quelque chose appelé une méthode. Laissez-moi vous expliquer quelles sont les méthodes. Donc, tout comme une variable, les méthodes ont également une structure similaire. Tout d'abord, nous avons le type d'accès. C' est la façon dont l'accessibilité de notre méthode. Alors peut-on y accéder uniquement à partir du même script ? Ça veut dire que c'est un privé. Si nous pouvons y accéder à partir de plusieurs scripts, cela signifie que ce sera un public. Ensuite, nous avons un type de retour. Donc, tout comme nous avons un type variable, nous avons aussi pour une méthode, un type de retour, et il peut retourner une chaîne et un entier, un flotteur. Donc, quand nous finissons de calculer les choses dans notre méthode, nous pouvons les retourner. Ensuite, nous avons le nom de notre méthode. Et tout comme nous nommons nos variables, nous avons aussi un moyen de nommer nos méthodes en
faisant toujours capitaliser chaque mot de la méthode. Donc, en ajoutant la vitesse, le a et le v sont en majuscules et nous aussi toujours nommer nos méthodes par ce qu'ils font. Donc, en ajoutant de la vitesse à la vitesse. Et enfin, un outil très puissant de méthodes est que nous pouvons envoyer des paramètres et à eux. Donc, si nous, par exemple, besoin d'avoir deux choses qui doivent être calculées, nous pouvons les envoyer dans les paramètres et dans l'autre script, nous pouvons les calculer. Nous verrons comment tout cela fonctionne quand nous faisons un exemple. Donc, de retour dans notre script ici, nous pouvons réellement supprimer la carte de tuiles parce que nous n'en aurons pas besoin dans le lecteur. Et la bibliothèque d'utilisation pour économiser un peu de mémoire. Donc, nous allons créer une méthode et le joueur que nous serons en mesure d'
accepter le bord inférieur gauche et le bord supérieur droit et de les définir. Donc, nous allons créer un public parce que nous voulons l'appeler du responsable de niveau. Nous allons la rendre nulle. Et puis on l'appellera la limite fixée. Et cette limite définie va prendre deux arguments. Le premier sera un vecteur trois, et ce sera le bord inférieur gauche ou le bord inférieur à définir. Et un autre qui va être le bord supérieur à mettre. Maintenant que nous avons ces variables passées, nous pouvons accéder au bord inférieur gauche de notre joueur ou à la variable sur le joueur ici, celui-ci. Et nous allons le définir comme le bord inférieur à définir. Nous ferons la même chose avec le bord supérieur. bord supérieur droit est égal au bord supérieur à définir. Super. Donc, comme vous pouvez le voir, nous avons une méthode publique qui n'a pas de retour et elle est appelée limite définie. Remarquez comment défini, comment les S et V sont tous les deux en majuscules. Nous avons deux arguments qui sont envoyés ici. Et nous définissons nos variables en fonction des arguments ou des paramètres qui lui sont envoyés. Maintenant, l'étape suivante consiste à appeler cette méthode dans le gestionnaire de niveau. Et je vais vous lancer un défi pour le faire. Vous devrez donc appeler les limites définies de la méthode. Tout d'abord, allez au script du gestionnaire de niveau, accédez à l'instance à partir du script du lecteur, accédez à la méthode, définissez des limites et donnez-lui les paramètres. Donc, chaque fois que nous définissons enfin nos bords, en utilisant le gestionnaire de niveau devra appeler le joueur de méthode et lui dire que ce sont des bords. Ici, vous allez en utilisant les paramètres. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Comment as-tu réussi avec ça ? Donc, tout d'abord, nous allons accéder à l'instance du joueur. Ensuite, nous allons appeler la limite définie. Et ici, nous aurons besoin de passer les deux paramètres. Donc, le premier paramètre va être le bord inférieur gauche. Le deuxième paramètre sera le bord supérieur droit, et nous allons l'enregistrer. Alors maintenant ce qui se passe, c'est quand nous exécutons le jeu et le gestionnaire de niveau commence, il prend le bord inférieur ou il calcule le bord inférieur. Il calcule le bord supérieur, il appelle le joueur, il accède à l'instance, il définit la limite, qui est la méthode ici. Donc, il appelle la méthode ici et il définit ces deux paramètres. Alors que se passe-t-il alors quand nous appelons cette méthode, nous sautons dans le script du joueur. Nous définissons le bord inférieur gauche, le bord supérieur droit, et maintenant nous pouvons les utiliser ici. Et ce n'est qu'une petite ligne qui sont utilisées
afin de s'assurer que tout fonctionnait correctement, permettra d'économiser tout cela. Et maintenant, allons dans notre jeu et voyons si cela fonctionne vraiment. Donc, le gestionnaire de niveau devrait avoir une place pour nous pour ajouter l'arrière-plan. On va le mettre ici, on le sauvera. Voyons si ça marche. Donc on dirige le jeu et vous y allez. Oui, tu y vas. On peut descendre ici. Maintenant, allons dans la deuxième scène, les montagnes. Ajoutons un gestionnaire de niveau ici aussi. Et donnons-lui l'arrière-plan. J' ai dit ça, sauf ça. Si on lance le jeu. Voyons si on peut sortir. Non, tu y vas. Nous ne traversons pas tout. C' est cool ? Et un, une autre chose très importante à savoir est que si nous
enregistrons ces variables sur le joueur et que le joueur ne se détruit pas, les valeurs de la carte ne sont pas modifiées. Il est donc très important d'avoir un gestionnaire de niveau séparé du joueur. Maintenant, la dernière chose que nous devons tester, c'est que si nous allons de la ville
à la montagne, Voyons voir. Quand on y va. Oui, on peut voir qu'on n'a pas la caméra qui suit le joueur. Nous allons corriger cela, comme je l'ai dit, en utilisant la boucle while quand nous les apprenons. Mais comme vous pouvez le voir, nous ne pouvons pas traverser les bords, ni sur le bord vers le haut, ni sur la gauche, ni sur le bas. Donc, avec cela fait, j'espère que vous avez apprécié. Dans la prochaine vidéo, nous allons apprendre sur Canvas in Unity. Je te verrai alors. Assurez-vous de valider vos modifications.
30. Toile en union: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons créer une image décolorée. Donc, comme vous pouvez le voir en ce moment, nous avons quelque chose appelé une toile avec une image à l'intérieur. Et quand nous frappons jeu, vous remarquerez que nous nous estompons lentement et maintenant ce n'est pas parfait, mais au moins cela fonctionne en quelque sorte. Ne vous inquiétez pas pour ça. Nous allons arranger tout ça. Alors ne perdons plus de temps et commençons. Oh, donc actuellement, quand nous lançons notre jeu, quand nous allons au niveau suivant, vous pouvez voir que c'est instantané et c'est très rapide. Et honnêtement, nous ne voulons pas que ce soit comme ça. Nous ne voulons pas que ce soit aussi rapide. Ce que nous voulons, c'est qu'il y ait une sorte de décoloration à l'intérieur et à l'extérieur. Et la façon dont nous le faisons est de créer une image, une grande image noire ici qui couvrira tout
l'espace de notre niveau ou tout l'espace de la caméra. Et quand nous passons au niveau suivant, nous voulons que cette image apparaisse et disparaisse. Alors commençons. Tout d'abord, nous devons créer une image. Donc, si nous faisons un clic droit dans la hiérarchie juste ici, allez à l'interface utilisateur. Nous pouvons aller de l'avant et créer une image, appuyez sur Entrée. Comme vous pouvez le voir, nous avons créé quelque chose appelé une toile et une image. Et vous remarquerez que cette image est un énorme. Et si nous double-cliquez sur la toile, vous remarquerez que la toile est encore plus grande. Alors vous pourriez penser, pourquoi sont-ils si gros ? Mais ne vous trompez pas. Ils sont en fait extrêmement petits. Parce que si nous cliquons sur l'image et que nous la déplacons, vous verrez qu'elle est très petite par rapport à notre joueur. Alors que le joueur et nous regardons dans la scène est extrêmement petite par rapport à l'image. Alors qu'est-ce qui donne, pourquoi avons-nous cette mise à l'échelle bizarre entre la toile et le jeu ? C' est une façon pour l'unité de savoir comment les choses fonctionnent. Ils ont préféré garder tout dans l'interface utilisateur grand afin que nous puissions facilement le contrôler. Et en attendant, ça affecte juste l'appareil photo et tout ce qui se trouve devant lui. Ne vous inquiétez pas pour ça. Maintenant, ce que nous allons faire, c'est utiliser cette image et l' étirer pour qu'elle couvre toute la toile. Vous pouvez voir que plus nous le faisons,
plus il est grand et plus d'espace qu'il remplit. Maintenant, nous pouvons prendre ça jusqu'au bout, mais laissez-moi vous apprendre une façon très cool. Si nous regardons ici à droite, il y a quelque chose qui s'appelle le point d'ancrage. Donc, si nous cliquons ici, vous pouvez voir que la façon dont nous pouvons l'ancrer, vous remarquerez ces fines lignes blanches. Et je ne vais pas aller trop loin là-dedans
parce que si je veux tout expliquer dans l'interface utilisateur, cela peut prendre un cours sur lui-même, mais nous allons juste apprendre les bases si nous maintenons Alt. Et nous pouvons voir que tout change lorsque nous maintenons Alt enfoncé, nous cliquons sur le bord inférieur droit. Vous verrez qu'il va immédiatement sur tout. C' est donc une façon très cool et astucieuse de faire les choses. L' étape suivante, nous allons cliquer sur l'image et nous allons changer la couleur. Donc, ici vous pouvez voir que nous avons la couleur de l'image. Nous allons cliquer sur la couleur et la rendre complètement noire. Ok, bien. Donc maintenant, nous avons une image noire devant notre écran qui ne disparaît pas et devra, bien
sûr, changer cela. Comment allons-nous faire ça ? Donc, la première chose est que nous devons créer une animation qui
prendra cela de complètement noir à complètement transparent. Alors comment allons-nous faire ça ? Si nous allons dans l'image, ajoutez un composant. Nous pouvons ajouter un groupe de canevas. Et ce que ce groupe de canevas fait, c'est que vous remarquerez qu'il a un alpha. Et ici, maintenant nous devons éteindre le bloc, re-cast et désactiver l'interactible. Et vous pouvez voir que l'alpha est à un. Mais si nous le faisons glisser vers le bas, vous pouvez voir qu'à 0 il est complètement transparent et celui-là, il est complètement non transparent. Je suppose que c'est comme ça que tu appelles ça. Nous allons donc manipuler cela en utilisant des animations afin de le fondre et de le faire disparaître. Alors commençons. Nous allons créer une animation. Donc, nous allons faire un clic droit sur l'image ou sera en fait tandis que l'animation, nous l'avons perdu. Pas de soucis. Nous allons à l'animation dans l'onglet animation. Et nous allons juste, laissez-moi juste déplacer ceci, mais définissez-le juste ici à côté de gagner, sélectionnez l'image, créez une animation. Et où devrions-nous aller avec cela ira dans les animations, la décoloration de
l'image et le fichier OVA côté. Et on va appeler ça le trait de soulignement fondu. Et donc cela met fin à la décoloration. Et nous allons créer une autre animation. Nous allons donc y aller, créer un nouveau clip. Et c'est le trait de soulignement de fondu arrêté. On va sauver ça. Maintenant, nous avons deux animations. Comment le fondu démarre fonctionne-t-il et comment pouvons-nous l'enregistrer ici ? Donc, tout d'abord, le fondu commence, va de un à 0. Donc, on commence à un. Quand nous arrivons à la première seconde, nous voulions aller à 0. Donc si on clique ici, on peut appuyer sur ce petit bouton rouge. On peut aller à la fin et on peut régler ça à 0. Que se passe-t-il si nous menons notre jeu ? Vous pouvez voir qu'il va de complètement noir à complètement transparent. Puis on a cliqué sur ce bouton rouge et ça disparaît. Ensuite, nous allons entrer dans la fin du fondu et nous allons faire tout le contraire. Donc on commence à 0, on doit appuyer sur le bouton d'enregistrement. On va à la seconde et on va la mettre à une. Enregistrez cela, supprimez le bouton d'enregistrement. Et maintenant, quand nous frapperons le jeu, vous remarquerez qu'il passe de complètement transparent à complètement noir. Ok, super. Maintenant que nous avons mis en place nos animations, la prochaine chose évidente à faire est d'aller de l'avant et de configurer correctement l'animateur. Et pour ça, je vais vous lancer un défi. Et votre défi sera de faire de l'image la foi. Alors allez dans l'animateur et dit The Fate start comme l'état par défaut, puis créez une transition pour fondre et il ne devrait
pas avoir de temps de sortie et une durée de transition de 0. Créez un paramètre de déclenchement appelé Fade start et définissez-le comme condition sur la transition. Alors mettez la vidéo en pause et allez configurer l'animateur. Bon, bienvenue. Comment as-tu eu tout ça ? Donc, tout d'abord, nous devrons définir le début de la foi comme la couche par défaut ou l'état par défaut créera alors une transition vers le fondu. Et nous allons supprimer tout temps de sortie et nous allons définir la durée à 0. On va sauver ça. Ensuite, nous aurons besoin de créer un paramètre et ce sera un déclencheur. Et cela va s'appeler commencer à s'estomper, appuyez sur Entrée. Et à condition que nous commencions à disparaître quand nous le ferons, nous passons au niveau suivant. Maintenant que nous avons tout mis en place, l'étape suivante est de déclencher réellement ce paramètre, et nous allons le faire dans la vidéo suivante en utilisant quelque chose de très, très important appelé coroutines. Je te verrai alors.
31. 101: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons suspendu le temps jusqu'à ce que nous chargeons la scène suivante. Ainsi, comme vous pouvez le voir, nous n'avons plus d'images noires clignotantes, une
seule image noire qui s'estompe. Ensuite, quand nous passons au niveau suivant, il s'estompe puis redevient transparent. C' est cool ? Laissez-moi vous montrer comment ça se passe en regardant la scène. Voilà, tu y vas. Vous pouvez voir quand on passe au niveau suivant ici que cela prend juste un peu de temps. Voilà, tu y vas. Il n'est plus instantané. Il attend 1 seconde. C' est une façon très cool de faire les choses, alors ne perdons plus de temps. Commençons. Oh, ok, alors ce qu'on va faire c'est qu'on va accéder à l'animateur sur l'image et on va commencer les animations à partir de là. Mais on veut un script. Alors, quels scripts devraient contrôler tout cela ? Je pense que ce devrait être le script sur une toile parce que nous allons utiliser ce Canvas pour beaucoup de choses. Et avant que je l'oublie,
quelque chose que nous devons faire et qui est ici dans le détartreur de toile. Nous devons mettre à l'échelle avec la taille de l'écran. Et nous allons le mettre à 1920 d'ici 1080. Donc, c'est l'ATP et ces écrans habituels utilisent généralement pour s'adapter exactement avec nous juste ici afin qu'il ne change pas de formes au fur et à mesure que nous avançons. Continuons. Maintenant, nous allons créer un nouveau script ici. Donc, un nouveau script C-Sharp va être le gestionnaire de menu. Attendons qu'il se compile et nous allons le donner à la toile. Alors maintenant dans le Canvas, fermons tout ça. Nous avons le gestionnaire de menu, pas le gestionnaire de niveau. Allons-y et ouvrons ça. Maintenant. La première chose dont nous avons besoin est une référence à l'image. Nous allons donc créer un champ sérialisé de type image. Mais malheureusement, nous ne pouvons pas utiliser l'image à moins que nous ayons dit l'interface de point du moteur Unity. Donc maintenant, nous aurons la possibilité de créer une variable d'image. J' espère que ce n'était pas trop rapide. La prochaine chose que nous allons faire est d'appeler cette image D au destin ici. Maintenant, ce que nous allons faire, c'est que nous allons réellement
accéder au composant qui se trouve sur l'image. Et pour ça, je vais vous lancer un défi. Et votre défi sera d'obtenir le composant animateur. Donc, créez une méthode image fondu agit comme le composant animateur sur cette image. Définissez le déclencheur pour démarrer la décoloration. Et je te donnerai quelques mains si tu veux faire le défi tout seul et que tu n'as pas besoin d'aide. Mettez la vidéo en pause dès maintenant et passez au défi. Sinon. Bon, bienvenue. Alors allons de l'avant et créons la méthode ici. Je ne pense pas que nous aurons besoin du début et de la mise à jour pour l'instant, juste pour l'instant, si jamais nous en avons besoin, nous allons les créer. Donc, nous allons créer une image de fondu du vide public. Et ici, nous avons déjà l'accès au destin de l'image. Nous allons obtenir le composant, qui est l'animateur. Et c'est le composant sur l'image à fondre. Et puis nous allons régler la gâchette. Maintenant. Nous allons ajouter un petit point ici et nous allons définir le déclencheur. Et parce que nous avons besoin d'une référence de chaîne, nous devons toujours aller la copier. Alors choisissez l'image, allez à l'animateur, commencez à s'estomper. Copiez ça. De retour ici, nous avons collé et nous le gardons. Alors maintenant, le prochain défi est savoir
où devrions-nous appeler cette image de foi ? Où voulons-nous l'appeler ? Je pense que le meilleur endroit pour l'appeler est dans la sortie de la zone bien, est l'endroit que nous devons l'appeler. Donc, dans la sortie de zone, quand le joueur entre, nous avons dit la transition, nous commençons à charger la scène suivante. Mais avant de le faire,
nous allons aller de l'avant et appeler l'instance de point du gestionnaire de menu. Ok, nous n'avons pas d'instance, alors allons de l'avant et créons une instance. Donc, comme vous allez être un statique public si vous vous souvenez toujours comment nous créons des instances. Donc le gestionnaire de menu de type statique public, et ce sera l'instance, instance. C' est comme ça que vous écrivez instance. Et parce que nous avons supprimé le début. Nous allons créer le début à nouveau. Voyez comme c'était facile. L' instance est égale à ceci. Et je ne pense pas qu'on ait besoin d'en faire un modèle singleton juste pour l'instant. Plus tard, nous devrons peut-être le faire. Donc maintenant de retour dans la zone, sortie va définir l'instance que le destin MH. Donc maintenant, chaque fois que notre joueur entre dans le collisionneur et nous nous assurons que c'est un joueur. Nous ajoutons le nom de transition. Nous commençons à fondre l'image, puis rechargeons la scène suivante. Nous allons sauver ça dans notre jeu. Nous allons courir et il y a un léger problème que vous
remarquerez que notre image s'estompe mais qu'elle continue d'échouer et vous pouvez le voir ici. Quel est le problème ? Si on clique dessus ? Si nous allons à l'animation réelle ici sur le destin pensé, vous remarquerez qu'il a un temps de boucle. Donc, nous allons juste décocher cette case, cliquez sur Default et décochez cette case aussi. Alors maintenant, nous gardons ça. Nous courons notre jeu et nous ne disparaissons qu'une seule fois. Super. Donc maintenant, si nous marchons, il y a un problème qui est que nous ne l'avons pas fait. Si nous double-cliquez ici et que nous devons commencer à s'estomper, mais nous n'avons pas de référence à l'image. C' est parce que dans le niveau, où est-il dans le Canvas ? Ok, dans le Canvas, voilà. Nous n'avons pas assigné la bonne image. Maintenant, quand on le sauve, quand on court, tout devrait bien fonctionner. Donc on s'estompe. Nous sommes allés au niveau suivant, et voilà. Nous sautons immédiatement au niveau suivant. Quel est le problème ici ? Eh bien, encore une fois, nous n'avons pas préfabriqué la toile. Donc je te prends pas à pas très dur à travers ça, mais pas de soucis. C' est une bonne chose d'apprendre de nos erreurs ici. Alors que notre préfabriqué, notre toile, nous
y allons, nous gardons ça. Essayons encore une fois. Et ils sont encore un petit truc qui ne fonctionne pas. Mais maintenant, on s'estompe. Nous marchons, et voilà. Nous nous estompons au niveau suivant. Mais il y a encore un léger problème si vous avez remarqué que nous passons instantanément au niveau suivant, nous voyons même la décoloration et notre gain. Donc quand on peut, ce que je veux dire, c'est qu'on s'efface. Nous voulons avoir juste une seconde juste pour que tout s'estompe à nouveau au noir. Et cela n'arrive pas parce que nous sommes immédiatement en train de claquer. Comment pouvons-nous réparer ça ? Nous voulons un moyen d'attendre quelques secondes,
peut-être 1 seconde, juste pour s'estomper et ensuite s'estomper dans le niveau suivant, comme la magie. La façon dont nous le faisons est d'utiliser des choses froides. Qu' est-ce qu'une qualité ? C' est une méthode qui peut suspendre l'exécution des instructions jusqu'à ce qu'une certaine condition soit remplie. Ces suspensions sont connues sous le nom de rendement. Et notre exemple sera de suspendre le temps jusqu'à ce que nous chargeons la scène suivante pour voir notre, ceci devrait être notre image à disparaître. coroutines. Prenez juste un moment pour lire à leur sujet. Vous pouvez les rechercher. Les chiens de l'unité, je recommande qu'ils sont un peu compliqués lorsque vous commencez à les faire, mais je vais essayer de vous prendre étape par étape et de rendre tout plus facile. Donc, ne parlons pas de coroutines. Allons-y et créons-les. Alors, où devrions-nous les créer ? Il devrait être où est-il ? Dans la région, sortie. Zone, sortie. Au lieu de charger immédiatement la scène lorsque le joueur frappe, nous allons utiliser un Goldie. Donc, une coroutine est de type énumérateur oculaire. Alors j'énumérateur, on va appeler la scène de chargement Goldstein. Et ici, nous allons faire quelques choses. Donc, dès que nous entrons ce que vous pouvez voir que nous avons une ligne squiggly parce que nous avons besoin d'une valeur de retour dessus. Donc ce que nous allons faire, c'est que nous allons céder, comme je vous l'ai dit, nous devons céder, nous aurons besoin de revenir nouveau. Et nous avons quelques conditions que nous pouvons utiliser. L' un d'eux est d'attendre quatre secondes. Et maintenant, ce que nous pouvons faire, c'est lui donner un certain temps qu'il a besoin attendre avant de tout faire et que veut-il faire ? Eh bien, il veut aller de l'avant et utiliser le gestionnaire de scène pour charger la scène. Et pour appeler cette co-routine, nous allons dire commencer coroutine, charger, vu co-routine. Alors que se passe-t-il maintenant ? Nous commençons, notre joueur entre, nous nous assurons que c'est un joueur. Nous réglons la transition, nous fondons l'image, nous commençons un rhume dans. Tout cela arrive presque en même temps. Mais quand on commence une cour, c'est là que la magie se produit. Nous entrons dans la méthode. C' est un énumérateur oculaire. Il s'attend à un rendement. Donc ça commence par cette ligne. Il lit rendement, nouveau, attendre quatre secondes. Donc, il sait qu'il doit attendre 1 seconde avant d'exécuter tout le reste. Voyons qu'en action, si vous êtes un peu confus, mettez la vidéo en pause, regardez cela, assurez-vous de bien comprendre ce qui se passe. Et allons de l'avant et testons ça. Donc, nous dirigeons notre jeu. Regardons l'animateur. Nous marchons, nous disparaissons. Nous nous estompons au niveau suivant. C' est cool ? Donc, j'espère que vous avez apprécié si vous êtes encore confus au sujet de la co-routine, je recommande cette chaussure à nouveau. Jetez un oeil au code pour vous, puis respirez. Pensez à ce qui se passe. Comprenez comment fonctionne le rendement, comment nous attendons une seconde avant de charger la scène et comment l'image s'estompe et s'estompe. D' ici en utilisant notre froid, j'espère que vous en apprécierez. Et c'est, c'est un 10 diable d'une longue vidéo, mais c'est très important. Je te verrai dans la prochaine.
32. Section 5 : Créer des dialogues UI: Bienvenue à mes collègues développeurs de jeux dans cette longue et longue vidéo. Mais très important, comme vous pouvez le voir, nous avons créé quelques éléments d'interface utilisateur. Nous avons ajouté une zone de texte ici, qui est un panneau. Nous avons ajouté une petite boîte de nom ici, et nous avons également ajouté un petit personnage, qui est un guérisseur qui va pouvoir nous parler. Hitler, qu'est-ce que tu as pour nous ? Alors ne perdons plus de temps. Cette vidéo est très longue, et nous avons également créé notre propre police si vous l'avez remarqué, et commençons. Oh, ok, donc créer un dialogue, la première chose qu'il faut faire car il faut avoir un CPM à qui parler. Nous allons donc ajouter un des MPC que je vous ai fournis. Et encore une fois, tous ces éléments sont disponibles sur l' art de jeu
ouvert afin que vous vous retrouviez regarder quand vous voulez. C' est donc le cygne de la fierté des RPG. Je l'ai trouvé sur. Peut-être que vous pouvez le rechercher et le trouver vous-même. Et allons de l'avant et utiliser le, vous pouvez utiliser ce que vous voulez. Utilisons le guérisseur. Donc, dans ces primates, c'est changer ici pour l'environnement. Donc l'environnement, et nous allons ajouter ces deux à l'environnement. Et nous allons créer un autre fichier pour les personnages, et nous ajouterons le démon ambulant et le guérisseur. Allons chercher le guérisseur. Alors ici, double-cliquez sur le guérisseur. Voilà, tu y vas. Il n'est pas d'excellente qualité, mais il le fera pour l'instant. Nous allons le définir multiple, fera pas de filtre. Espérons que cela fait le beurre des fesses. Donc, comme vous pouvez le voir, allons de l'avant et découpons par taille de cellule. Non, c'est trop grand. Alors faisons-en 32, découpons-le. Peut-être qu'on doit en faire 32 aux deux extrémités. Et non, voyons à quel point il doit être grand. Donc, il doit être 32 sur 37. Alors essayons ça. 32 avec une largeur de 32, une hauteur de 37. Coupez-le. Et je suppose que nous devons avoir un peu de, disons juste comme ça ou vous savez quoi, nous pouvons juste couper cette fierté dont nous avons besoin. Donc nous n'aurons besoin que de celui-là. Alors laissez-moi juste supprimer l'existant. Et je vais juste couper ce seul sprite dont nous avons besoin. Et là, vous allez, appliquez et n'aurez besoin que de ce sprite. On ne fera pas marcher le joueur. Et nous allons obtenir, tandis que le guérisseur qui est juste là vous allez, le voici. Donc nous allons le traîner ici dans notre jeu qui définit le calque de tri comme le joueur. Et nous le mettrons en un seul. Donc ne fonctionne pas. Pourquoi c'est ça ? Oh, ça marche, mais il est si petit. Alors faisons-le quatre par quatre. Et je pense que c'est une taille assez bonne. Donc maintenant, nous avons le guérisseur debout juste ici. Et la prochaine chose que nous allons faire,
c'est que nous allons changer ça pour le magasin ou comment devrions-nous l'appeler ici. Ok, nous y voilà. Alors, voilà. C' est notre guérisseur. ne sais pas qui je l'ai fait capitaliser. Voilà, guérisseur. Alors maintenant, quand nous courons notre jeu, nous allons vers notre guérisseur. Hé, il guérisseur. Et nous devons nous assurer que nous pouvons réellement rendre. Pas de soucis à ce sujet. Qu' est-ce que c'est ? Le 0, le joueur est le 0. Alors faisons-en moins un. Ok, génial, sauvegardons ça. La prochaine chose que nous allons faire est d'aller dans le Canvas. Donc double-cliquez sur le Canvas va ouvrir le canevas, le cygne. Donc, nous voyons juste ce qui se passe, la composante campus sur le Canvas. Et nous allons aller de l'avant et cliquer avec le bouton droit et créer le panneau de l'interface utilisateur. Alors où est-il, le panneau ? Voilà, tu y vas. Donc, ce panneau est l'endroit où nous allons mettre notre élément d'interface utilisateur et c'est là que nous aurons tout notre dialogue. Maintenant, vous remarquerez que c'est transparent. Donc, si nous cliquons sur la couleur et augmentons la transparence au maximum, alors nous allons choisir ce panneau, appuyer sur D ou l'outil de rec ici et nous allons le rendre un peu plus petit. Il s'agit donc de l'endroit où se déroulera notre dialogue, peut-être même un peu plus petit. Alors, voilà. On ne veut pas qu'il soit complètement blanc. Nous voulons y avoir quelques éléments. Donc, allons au fichier où je vous ai fourni quelques éléments d'interface utilisateur. Et allons dans l'endroit où devrions-nous les mettre dans le dossier de création de sprites. Vous l'êtes. Éléments. Et faisons simplement glisser le panneau pour l'instant. Et peut-être que je pense que je vais juste, nous allons juste faire glisser la police maintenant aussi. Donc, faisons glisser la police dans l'élément de l'interface utilisateur, et peut-être celui-ci aussi. Gardez-le ici. On l'utilisera plus tard. Donc vous voyez, nous avons cette image et ce sera notre panneau. Et je vais y aller. Si nous cliquons sur le panneau, vous verrez que nous avons une image source va simplement le remplacer par cette bannière. Alors, voilà. Voici notre panel. Ça a l'air bien plus agréable. Nous pouvons le définir à sa taille native. Vous pouvez voir à quoi il devrait ressembler, mais nous allons l'étendre à notre contenu. On peut faire beaucoup de choses ici pour changer un peu. Peut-être que nous pouvons tourner la cible refonte parce que nous n'avons pas besoin de ça pour arriver. Le re-cast signifie que si nous pouvons ou ne pouvons pas cliquer dessus. D' accord avec ce n'est rien. Maintenant, l'étape suivante consiste à ajouter une zone de texte en elle afin où nous pouvons un texte. Tout d'abord, nous nommerons ce panneau de dialogue. Panneau de dialogue. Et nous allons faire un clic droit. Allez dans l'interface utilisateur et utilisez le texte, mais pas seulement le texte normal, le texte Mesh Pro. Et il vous demandera d'importer des centrales, avait des essentiels d'importation. Et tu verras pourquoi dans une minute. Nous utilisons le texte Mesh Pro. Nous l'utilisons parce qu'il nous permet d'ajouter notre propre police. Et si nous regardons dans la police ici, c'est la police médiévale et nous aurions probablement dû l'extraire. Alors faisons ça. Enlevez-le d'ici. Et à l'intérieur de la fête médiévale, extrayons le dossier. D' accord. Voilà, tu y vas. Et où nous avons eu nos téléphones est d'un site appelé duff font.com. Et vous pouvez aller voir beaucoup, beaucoup de polices. Donc ce que j'ai fait, c'est que je viens d'écrire médiéval et j'ai obtenu toutes ces options et choisi d'utiliser la fête médiévale. Voyons si ça a l'air bien. Donc de retour dans notre jeu, et ici nous avons notre texte Mesh Pro. Allons de l'avant et élargissons à tous les côtés. Nous devons le faire manuellement et 0. Bien sûr, si vous ne voulez pas le rétrécir comme ça, vous pouvez réellement maintenir Alt enfoncé, appuyer sur l'un des côtés. Et voilà. Vous pouvez voir que nous pouvons le rendre plus grand et plus petit. Alors maintenez Alt enfoncé et étendu. Ok, alors comment va-t-on créer notre propre police ? Si nous allons dans le texte de fenêtre Mesh Pro actif de police créateur, il nous donne la possibilité d'ajouter une police. Donc, nous allons aller dans la fête médiévale, moins le glisser dans les polices ici et les éléments de l'interface utilisateur. Et maintenant, nous allons le faire glisser ici dans ces fichiers de police source générés à partir d'Atlas. Sauvegardez ça. Il nous demandera où voulons-nous la sauver ? Nous allons l'enregistrer à l'intérieur de la police des éléments de l'interface utilisateur. Sauvegardez ça. Maintenant, nous pouvons traîner le médiéval ici. Et on peut écrire, par exemple, Hey, hé là, comment vas-tu ? Et on changera la couleur en noir. Et là, vous pouvez voir que nous avons, hé, comment allez-vous ? Allons le modifier un peu,
peut-être le rendre audacieux. Nous pouvons augmenter la taille de la police si elle n'a pas l'air très bonne. Et nous pouvons même changer la distance entre chaque lettre. Nous avons donc l'option d'espacement. Voyez que nous pouvons les séparer ou nous pouvons séparer juste la distance entre les mots, qui est très cool et tout cela parce que nous utilisons le texte Mesh Pro. Alors peut-être que je pense que je vais juste le faire un peu ou qu'on peut faire la taille automatique. Donc, plus nous avons de mots moins d'espace qu'il faut, nous pouvons passer du débordement à toutes les choses différentes. Nous pouvons les placer au milieu et nous assurer qu'il est au milieu, verticalement et horizontalement et ainsi de suite. Nous pouvons même ajouter un peu d'éclairage et la largeur sombre sont tous, toutes ces options sont que vous pouvez essayer de comprendre, voir ce qui se passe. Donc, si nous ajoutons une sous-couche, vous pouvez voir que nous avons un peu de remplissage. On peut augmenter les sous-couches. Voilà, tu y vas. Vous pouvez voir que c'est beaucoup plus clair ou nous pouvons le changer en rouge, mais nous ne voulons pas ça. Gardez-le noir, complètement noir. Ok, super. Est-ce que c'est fait ? Laissez-moi juste réinitialiser cela et peut-être juste 0 ou gardera la taille automatique. Allons l'augmenter. Vous pouvez voir que nous pouvons définir le minimum et le maximum. Ce n'est donc qu'un aperçu rapide de la façon dont le texte Mesh Pro fonctionne et ainsi de suite. Ok, super. Donc, la prochaine chose à faire maintenant que nous avons mis en place notre panel de dialogue est que nous voulons aller de l'avant et fixer un nom. Donc, chaque fois que nous parlons à quelqu'un, nous savons qu'il a un certain nom. Et ça va faire partie de votre défi. Votre défi est de créer une boîte de nom. Créez donc une boîte de dialogue plus petite ou une boîte de noms plus petite à droite sur la grande boîte de dialogue. Je vais vous donner un petit indice sur la façon dont vous pouvez le faire rapidement. Il suffit de dupliquer et de définir le nom du texte correctement. Vous devrez donc dupliquer le panneau, rendre juste un peu plus petit au-dessus du panneau arrière. Et c'est tout. Mettez la vidéo en pause et allez faire le défi. Oh, d'accord, bienvenue. Alors entrons dans le texte et voici une petite introduction ou une petite leçon sur le fonctionnement des ancres. Je vais te montrer parce que je ne sais pas comment l'expliquer en mots. Donc, si nous choisissons le panneau de dialogue, vous pouvez voir que lorsque nous le réduisons, cela détecte va dehors. C' est parce que l'ancre du texte est au milieu. Si nous sommes ancrés en haut à droite, vous remarquerez que lorsque nous réduisons notre boîte de dialogue, les mots restent à l'intérieur. C' est donc l'un des aspects clés de l'utilisation des ancres et il est très important de comprendre comment elles fonctionnent. Rendons ça juste un peu plus grand sur le côté et sur le côté. Et nous pouvons également aller de l'avant et étendre le texte afin qu'il remplisse tout le carré. Mais comme vous pouvez le voir, nous ne voyons plus le côté. Donc je pense que le garder ici sera assez bon pour nous. Alors remplissons les espaces avec notre texte. Et voilà. Je pense que c'est assez bon. Donc maintenant, afin de créer le panneau de nom, va dupliquer le panneau. On l'appellera le panneau de nom, le panneau principal. Et on va le rendre beaucoup plus petit. Donc, laissez-moi déplacer cela un peu vers le haut afin que vous puissiez voir le texte sur le panneau de nom devrait également être plus petit. Et mettons-le ici. Rendons le chemin, beaucoup plus petit. Donc, c'est la taille qu'il devrait être. Et le texte devrait également être beaucoup, beaucoup plus petit. C' est donc l'avantage d'utiliser le pilote automatique, mais il est clair que le texte n'est plus lisible. Alors laissez-moi juste, juste un peu et nous allons passer de l' aspect
16 par 9 à la 1920 fois 1080. Et si vous ne l'avez pas, vous pouvez l'ajouter en utilisant ce plus. Donc 1080. Allons frapper ça. Et maintenant, vous pouvez voir que notre taxe est juste un peu plus claire. Laisse-moi zoomer et régler tout. Et ce sera votre défi de le mettre en place comme vous le souhaitez. Laisse-moi juste ajuster la position et voilà. C' est tout ce qu'il faut faire. Comme vous pouvez le voir, nous avons créé un panneau de nom, un panneau de dialogue. Ils ajustent la taille de la taxe en conséquence. Nous avons également créé notre propre police. Tout ce que nous avons à faire maintenant, c'est d'engager nos changements. Donc, j'aime le montrer de temps en temps. Donc nous allons tout mettre en scène. Nous allons appeler ceci, ajouté une boîte de dialogue, valider les modifications. Regardons notre branche maîtresse, et voilà. C' est incroyable ? Enfin, nous voyons notre jeu être construit devant nos yeux. Regarde combien on a déjà couvert. Donc, dans la prochaine vidéo, nous allons vraiment contrôler ce qui se passe à l'intérieur de ces deux boîtes. Je te verrai alors.
33. Contrôle de dialogue (rayons): Bienvenue à mes collègues développeurs de jeux. Et dans cette vidéo, nous allons en apprendre davantage sur les tableaux. Nous allons en apprendre davantage sur l'utilisation du texte Mesh Pro. Et je fais aussi une énorme erreur. Donc, avant de continuer, c'est le code. Assurez-vous que lorsque je vous dis que c'est juste du texte Mesh pro, que vous utilisez du texte beaucoup Pro UI GUI. Donc, avec tout cela dit, ce n'est pas perdre plus de temps. Et commençons. Oh, ok, alors ce que nous voulons c'est que nous voulons créer un moyen de contrôler notre dialogue. Donc, pour cela, je pense que ce n'est approprié que si nous créons un contrôleur de dialogue. Alors ajoutons simplement le panneau de nom au panneau de dialogue. Nous n'avons donc qu'un seul panel de dialogue. Et allons dans l'endroit où il est, où r, c'est fermer tout parce
que ça commence à devenir confus et faire la même chose mais plus grand. Et cela un peu plus petit, il suffit de tout configurer correctement. On y va. Cliquez avec le bouton droit de la souris et continuons et créez un script C-Sharp appelé le contrôleur de dialogue. Et je pense qu'on doit commencer à créer, Ok, qu'est-ce qui s'est passé ? Commencez à créer des dossiers ici. Donc, nous allons créer une colonne de dossier, la gestion de niveau, et allons et définissons la sortie de zone, zone, entrée. Arrêtez de faire cette zone. Entrez le gestionnaire de niveau. Allez. Visual Studio. Ouvrez. Oui. Maintenant, je connais vos tactiques et que devrions-nous choisir d'autre ? Peut-être le contrôleur de caméra. Je ne suis pas sûr de ce qui ajoute aussi, mais pour l'instant gardons juste pour que nous continuions à organiser nos fichiers. Faites glisser le contrôleur de dialogue sur le canevas. Donc maintenant, nous avons un gestionnaire de menu et un contrôleur de dialogue. Et ouvrons ce script. Tout d'abord, parce que nous allons manipuler et contrôler les éléments de l'interface utilisateur, nous aurons besoin du moteur Unity wi, et maintenant nous avons besoin de quelques références. Donc, la première référence va être un champ sérialisé, va être un texte Mesh Pro. Mais malheureusement, nous ne pouvons pas utiliser beaucoup de textes Pro à moins d'utiliser le texte point du moteur Unity, le BI Pro. Et maintenant, nous pouvons commencer à utiliser le maillage de texte par ligne. Et il va y avoir tout d'abord, le texte du dialogue et le texte du nom. Donc parce que nous avons deux textes, si vous vous souvenez du texte du dialogue qui est ici, et du texte du nom ici. La prochaine chose que nous devons faire est de créer un champ sérialisé qui référencera la boîte de dialogue et la boîte de nom afin que nous puissions les activer et les désactiver. Ce sont des objets de jeu. Donc, la boîte de dialogue et la boîte de nom. Et enfin, ce que nous devons faire est de créer un champ sérialisé, qui va être une chaîne, et ce sera les lignes de dialogue. Maintenant, vous pourriez penser, eh bien, généralement les lignes de dialogue sont, comme son nom l'indique, beaucoup de lignes, ce n'est pas une ligne de dialogue. Il y a beaucoup de lignes. Alors, qu'est-ce qu'on peut faire ? Allons de l'avant et dupliquons en faire 15. Nous devons aussi les renommer en 1, 2, 3, etc. Mais que faire si vous voulez en ajouter un autre ? On va entrer dans le contrôleur de dialogue, puis un autre. Mais vous pouvez maintenant voir à quel point cela va être lourd et pas agréable du tout. Mais heureusement, C-Sharp a quelque chose pour nous, et ce sont les tableaux. Alors, que sont les tableaux ? Les tableaux vous permettent de stocker plusieurs objets du même type dans une seule variable. Qu' est-ce que je veux dire par là ? Ce n'est pas techniquement une seule variable, mais une liste de variables qui est appelée un tableau. Donc, nous créons un entier, qui est, nous avons déjà couvert. C' est un type de variable, mais au lieu de simplement le nommer entier, nous ajoutons ces deux crochets ici. Donc, cela indique à C Sharp que nous l'utilisons comme un tableau d'entiers. Nous avons le nom, nous avons la même convention de nommage que les variables, et nous pouvons ajouter à l'intérieur d'eux ces valeurs. Comment cela fonctionne-t-il ? Tout d'abord, nous avons le type, nous avons le nom, et nous avons les valeurs que nous donnons à ce tableau. Et une chose à garder à l'esprit, comment nous indexons ces tableaux, nous allons de 0 à 1, à 2 à 3, 0 est toujours le premier index et il est très important que vous vous souveniez de cette étape exacte. La première valeur dans le tableau est toujours, toujours 0. Donc, les quatre sont dans le 0, position 6 dans le premier ou l'un. 112713 et ainsi de suite et ainsi de suite. Nous pouvons créer des tableaux aussi grands que nous le voulons, bien
sûr, à certaines limites. Alors, comment allons-nous implémenter des tableaux dans notre code ? Au lieu de créer 17 lignes de dialogue objets de valeur, nous allons en créer un seul, qui va être un tableau. Nous avons donc maintenant un éventail de dialogues et nous les utilisons pour créer notre système de dialogue. Et nous devons aussi garder une trace de la phrase actuelle. Nous allons donc créer un, un autre champ sérialisé. Nous n'avons pas besoin de créer cela comme un champ sérialisé, mais nous voulons juste nous assurer que tout fonctionne. Donc, ce sera la phrase actuelle aux États-Unis. J' espère que c'est comme ça que vous écrivez une phrase. Ok, bien. Donc maintenant, nous avons tout mis en place. L' étape suivante consiste à entrer dans le texte du dialogue dans le point de départ txt. Et ça va être égal au dialogue, aux lignes LOC. Et en fait, passons de lignes biolab à des phrases de dialogue. Double-cliquez ici, Commande R et K phrases de dialogue. Je pense que cela va petit parce que nous utilisons la phrase actuelle. Donc la phrase actuelle, voilà. Donc, quand nous commencerons, quelle que soit la phrase actuelle que nous avons envoyée sera le dialogue ou les textes qui apparaissent sur le texte du dialogue. Tellement génial, allons de l'avant et tester cela en vous lançant un défi à quelques lignes. Donc, à quelques lignes de dialogue vers le contrôleur de dialogue, jouez avec la phrase en cours et
assurez-vous que les lignes sont affichées dans la boîte de dialogue. Donc, je vais vous donner l'occasion d'explorer l'apparence des tableaux dans l'inspecteur par vous-même. C' est très amusant et excitant et peut-être un peu effrayant pour certains d'entre vous. Mettez la vidéo en pause dès maintenant et allez faire le défi. Oh, ok, bienvenue. J' espère que vous avez fait le défi et j'espère que vous réalisez que vous deviez ajouter les textes ici. Donc, la première chose que nous faisons, nous allons à la Canvas. Cliquez sur cette petite serrure juste ici. Et cela nous permettra de choisir l'objet que nous voulons sans changer d'inspecteur. Un outil très pratique, dont j'aurais dû vous parler avant de relever le défi. J' espère que tu n'es pas en colère. Quoi qu'il en soit, dialogue texte, nous faisons glisser le texte sous le dialogue. Voilà, tu y vas. Ça ne me permet pas parce qu'on a appelé quoi ? Boîte de dialogue ? Peut-être que ce devrait être le texte Mesh pro GUI. Oui, je pense que c'est comme ça que ça aurait dû être depuis le début. Alors maintenant, quand on ne voulait pas le prouver, désolé, laisse-moi réparer mes erreurs rapidement. Et maintenant, voilà. Nous pouvons ajouter la boîte de dialogue. Maintenant, je me rends compte que ça a dû être. Tu as dû être très en colère contre moi. Tellement désolé pour ça. Encore une fois, nous ajoutons le nom. Je transpire. Donc, le panneau de dialogue et le panneau de nom. Super. Maintenant, allons de l'avant et ajouter quelques phrases. Donc, vous pouvez voir en ce moment que nous commençons avec 0 phrases. Ajoutons un. Hé, là. Je suis Jimmy. Je viens de la pègre. J' avais l'habitude de tuer beaucoup de paysans, comme toi à mon époque. Mais maintenant je suis une bonne sorte de démon si ça existe. Alors choisissons la phrase actuelle et comme vous pouvez le voir, les éléments commencent à 0. Donc, nous allons choisir l'élément à un. Sauvegardez ça. Laissons notre jeu. Et tu vois que je suis Jimmy. Très gentil. Essayons la phrase actuelle pour la changer. Essayons d'utiliser l'élément 3. Sauvegardez ça, exécutez notre jeu. Et j'avais l'habitude de tuer beaucoup de paysans comme toi à mon époque. Donc ça a l'air assez bien. Si vous pensez que la police est peut-être un peu désactivée, je vous recommande d'aller trouver une autre police ou vous pouvez jouer avec le texte Mesh prop. Donc, encore une fois, résoudre pour ne pas utiliser le nom de variable correct ici, il aurait dû être une barre oblique inverse Pro GUI. Si vous avez rencontré ça et que vous l'avez changé par vous-même, alors je veux juste vous donner un coup de main d'applaudissements. Tu es incroyable, donc j'espère que tu l'apprécieras. Dans la prochaine vidéo, nous allons lire plusieurs lignes. Alors je vous verrai et je vous enverrai mes changements.
34. Propriétés du tableau: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons contrôler notre dialogue texte en utilisant notre bouton le plus à gauche. Donc je suis Jimmy, venir de la pègre sont habitués à tuer beaucoup de paysans comme vous à l'époque, à mon époque. Mais maintenant je suis un bon genre de démons. Et quand on frappera la dernière phrase, tu y vas. Vous pouvez voir que le dialogue de texte et disparaît de son propre chef. Alors ne perdons plus de temps et commençons. Oh, affaire. Maintenant, nous avons besoin d'un moyen de contrôler notre dialogue et
de passer d'une phrase à l'
autre sans avoir à les mettre à chaque fois manuellement ici. Mais quand on appuie sur un certain bouton, soit sur l'écran, soit sur une sorte de bouton que nous créons ici. Alors commençons. Tout d'abord, allons dans notre contrôleur de dialogue. Et ici, dans la mise à jour, nous allons nous assurer que nous mettons à jour chaque image. Donc, avant de faire quoi que ce soit, nous devons nous assurer que la boîte de dialogue est ouverte dans la hiérarchie et la façon dont nous la vérifions, et voilà. Vous pouvez voir qu'il est actif dans la hiérarchie, cela signifie
que définit si l'objet du jeu est actif et tromperie. Et si vous avez oublié ce que la hiérarchie est là, c'est, le nom est là-haut. Donc, si est actif ou actif et hiérarchie, alors nous verrons ce que nous voulons faire. Que voulons-nous faire ? Nous voulons prendre une certaine contribution. Donc, comme je l'ai dit, nous pouvons l'utiliser ou nous pouvons créer un bouton ici si vous ne voulez pas, continuez simplement. Donc, si nous appuyons sur un certain bouton, donc nous allons utiliser le point d'entrée get button up. Et si nous regardons de près les retours true, la première image de l'utilisateur libère le bouton virtuel. Pourquoi utilisons-nous celui-ci ? Si nous regardons ici dans la documentation Unity, vous pouvez voir que c'est vrai et que le bouton virtuel est activé. Nous ne voulons pas que le joueur commence à cliquer sur quelque chose. Et si nous utilisons le bouton get down, par
exemple, cela ne fonctionnera pas. Utiliser le bouton « get button up » est une meilleure façon, surtout quand il s'agit de gérer le dialogue, car il évitera parfois que le joueur les saute ou frappe trop. Quoi qu'il en soit, continuons. Quel bouton devrions-nous utiliser ? Eh bien, nous pouvons entrer dans l'entrée juste ici. Donc, dans le Modifier les paramètres du projet, Gestionnaire
d'entrée, mais avons-nous des options ? Options, nous avons le feu. Donc, feu un est avec la souris 0, et je pense que c'est le bouton gauche de la souris, que je crois est la meilleure option à utiliser. Alors copions, tirons un, fermez ça ici, collez-le ici. Et maintenant, qu'est-ce qu'on veut faire ? Donc, la première chose que nous voulons faire est de prendre notre peine actuelle et de l'augmenter d'une. Comment on fait ça ? On peut dire que la phrase actuelle devient la phrase actuelle plus une. Donc, ce qui se passe est disons que nous le sommes, la phrase
actuelle est 0. Nous prenons 0, nous avons ajouté à un, puis nous donnons cette valeur entière et la mettons à l'intérieur de la phrase actuelle. Donc ça devient un. Puis encore une fois, lorsque nous appuyons à nouveau, deviendra la phrase actuelle est un. 12, nous le donnons à la phrase actuelle. Et ensuite, nous prenons le texte de dialogue point txt. Et ce sera le même que ici, ce qui est égal aux phrases de dialogue de la phrase actuelle. Mais avant de passer à autre chose, c'est un peu encombrant à écrire et pas très professionnel. Et une autre façon d'écrire ceci est en supprimant toute
cette ligne, puis en ajoutant simplement le plus derrière elle. Donc, cela fonctionnera de la même manière. Mais même il y a une meilleure façon de le faire. Et chaque fois que nous voulons ajouter un 1, 2, n'importe quel entier, nous pouvons simplement écrire la phrase actuelle plus, plus. Et cela ajoutera une à la phrase actuelle chaque fois que nous tirons ou cliquez sur le bouton, en tirons un. Et chaque fois que la boîte de dialogue est active dans la hiérarchie. Et gardons ça. Allons de l'avant et testons ça dans Unity. Donc, quand nous définissons la phrase actuelle sur 0, nous allons appuyer sur Entrée. Voyons ce qui se passe. Alors hé, là. Je suis Jimmy. Je viens de la pègre. J' avais l'habitude de tuer beaucoup de paysans comme toi à mon époque. Maintenant, je suis une bonne sorte de démon. Très gentil. Mais que se passe-t-il ici ? Il y a une sorte d'erreur. Et vous remarquez qu'il augmente à chaque fois que nous
cliquons sur le bouton gauche de la souris ou la souris 0. Et ça nous dit que l'indice est hors de portée. L' index était en dehors des limites du tableau. Hmm. Intéressant, Double-cliquez et voyons où est le problème. Alors, voilà. Le problème est ici. Nous essayons d'ajouter la phrase actuelle. Si nous regardons ici, la phrase actuelle est 20, alors que nous n'avons qu'un à cinq éléments, donc nous sommes en dehors des limites de notre tableau. Et c'est une erreur très courante à se produire, surtout lorsque nous utilisons array. Donc, nous devons toujours trouver un moyen de nous assurer que nous
ne sortons jamais des limites du tableau. Comment allons-nous faire ça ? Eh bien, je vais vous lancer un défi et vous allez le résoudre parce que je suis trop fatigué. Donc, créez une instruction if pour vérifier si la phrase courante ou le nombre actuel a dépassé la longueur du tableau, si c'est le cas, désactivez la boîte de dialogue, je vais vous donner un petit indice. Utilisez les phrases de dialogue longueur de point pour obtenir toute la longueur de nos phrases de dialogue et utilisez le point de la boîte de dialogue défini sur false. Donc, avec tous ces conseils, mettez la vidéo en pause dès maintenant. C' est peut-être juste un peu plus difficile pour vous parce que vous devez comparer la taille de la longueur des phrases de dialogue avec la phrase actuelle. Nous pouvons utiliser ces tailles plus petites et plus grandes. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Oh, ok, bienvenue. Donc, ici, nous augmentons la taille ou le nombre de notre phrase actuelle. Donc, avant de le donner ici, nous devons créer l'instruction if. Et savoir où définir la déclaration if faisait également partie du défi. Donc, si la phrase actuelle est supérieure ou égale à la longueur des phrases de dialogue point. Ensuite, ce que nous allons faire est simplement aller dans la boîte de dialogue et nous allons la définir sur false. Ou désolé, je voulais dire boîte de dialogue Lot actif sur false. Alors que se passe-t-il ici ? Disons que nous arrivons à la phrase actuelle numéro 5 ou à celle qui précède. Disons qu'on en arrive à quatre. Et la durée de la phrase de dialogue est de cinq parce que nous avons 01234. Ensuite, si la phrase actuelle est supérieure ou égale à la longueur de la phrase de dialogue, nous allons définir le dialogue actif sur false. Et comment cela aide-t-il ? Eh bien, si elle est définie sur false, puis une mise à jour, nous ne pouvons plus entrer cette condition if car elle n'est plus active et la hiérarchie, Testez cela et voyons si cela fonctionne. Mais avant de le faire, nous devons également ajouter une déclaration else pour éviter l'erreur. Donc, nous allons simplement déplacer cela en maintenant la touche Alt enfoncée et en utilisant les touches fléchées et en appuyant sur l'onglet. Donc, c'est sur la même indentation. On va sauver tout ça. Nous retournerons à Unity. Nous allons exécuter le code. Alors maintenant, hé là, cette phrase actuelle est à une seule. Vous pouvez en garder une trace ici, dans l'inspecteur. Je suis Jimmy. Je viens de la pègre. J' avais l'habitude de tuer beaucoup de paysans, mais maintenant je suis un bon genre de démons. Alors maintenant, quand nous passons à la cinquième phrase ou la phrase actuelle devient cinq. Voilà, tu y vas. Nous avons tout d'abord, pas d'erreur. Et deuxièmement, la boîte de dialogue disparaît. Et même si nous continuons à presser la phrase actuelle est toujours cinq. Nous avons donc évité une erreur
majeure avec seulement quelques lignes de code. J' espère que vous avez apprécié le défi. J' espère que ce n'était pas trop dur. Et je te verrai dans la prochaine vidéo.
35. Activer le dialogue dans la zone: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons amélioré notre système afin ne plus frapper partout et tout devrait fonctionner. Nous voulons que le dialogue s'active seulement lorsque nous sommes à proximité de notre PNJ ou du CPM qui peut réellement nous parler. Donc maintenant, si nous sommes proches du MPC et que nous avions le bouton de tir, nous pouvons voir que hey, nous pouvons activer la boîte de dialogue. On l'a frappé plusieurs fois. Voilà, tu y vas. Vous pouvez voir que nous avons activé. Mais si nous sommes à l'extérieur, vous pouvez voir qu'il n'y a pas d'impression de la boîte de dialogue. On ne peut pas l'ouvrir. Encore une fois. Là, vous pouvez voir à l'intérieur des déclencheurs sur nous pouvons, dehors, nous pouvons. Alors ne perdons plus de temps et commençons. Ok, donc nous avons déjà créé une sorte de système de dialogue, mais nous ne voulons pas qu'il soit toujours là et qu'il soit toujours contrôlé partout,
partout où notre œdème de gym et nos promenades. Nous ne voulons le déclencher que chaque fois que nous sommes à proximité d'un des MPC auxquels nous pouvons parler. Donc, pour cela, nous allons aller dans le guérisseur, va le changer en PNJ guérisseur. Nous allons enregistrer cela et nous allons y ajouter des collisionneurs de boîte à outils. Donc, le premier collisionneur de boîte sera la taille de notre MPC ici. C' est 40 joueur bosse sur lui et ne pas marcher sur lui. Et nous allons créer un deuxième collisionneur de boîte. Et ce collisionneur de boîte représentera la zone où nous pouvons parler à notre MPC. Donc nous allons créer une sorte de grande zone ici pour que notre démon puisse s'intégrer. Donc maintenant vous pouvez voir que dans cette chanson, chaque fois que nous y
entrons, nous serons en mesure d'initier un dialogue et nous devons nous assurer que c'est un déclencheur afin que nous puissions utiliser l'anthère entrepreneur et le, votre joueur, celui que vous utilisent peut réellement entrer dans la zone. J' ai donc changé ça en MPC. Ok, merci. La prochaine chose que nous voulons faire est de créer un gestionnaire de script ou un gestionnaire de dialogue pour l'ajouter à notre MPC qui gère tout le dialogue de ce PNJ spécifique. Donc, pour ce faire, nous allons cliquer avec le bouton droit de la souris et ici nous allons créer un dossier. Ce sera pour le dialogue. Nous allons ajouter le script du contrôleur de dialogue dedans. Et nous allons aller de l'avant et créer un nouveau script C-Sharp. Le gestionnaire de dialogue. Attendez que ça se compile. Et d'accord, alors ajoutons-le au MPC guérisseur. Voilà, tu y vas. Vous pouvez voir que nous avons le rendu sprite des collisionneurs de boîte,
le deuxième collisionneur et le gestionnaire de dialogue. Ouvrons ça. Maintenant. Qu' est-ce qu'on va faire ici ? Donc c'est là que nous allons garder une trace de tous nos dialogues et ensuite nous contacterons le contrôleur de dialogue où z. Alors ouvrons le script. Nous contacterons le contrôleur de dialogue et
lui indiquerons quelles phrases de dialogue nous devons utiliser. Donc, pour cela, nous aurons besoin d'accéder au contrôleur de dialogue. Et pour cela, nous allons avoir besoin d'une instance. Alors je vais vous lancer un défi. Et ce défi est de créer une instance. Créez donc une instance du contrôleur de dialogue de classe. Si vous savez déjà comment faire cela, mettez la vidéo en pause dès maintenant et passez au défi. Sinon, je vais vous donner quelques indices. Vous devrez créer une variable statique publique de type et un contrôleur de dialogue appelé instance, puis définir l'instance sur cette. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bon, bienvenue. Donc on l'a déjà fait avant. C' est assez basique et facile. C' est un contrôleur de dialogue statique public nommé en position. Et puis commencez, nous allons définir l'instance pour être égale à true. Voilà, tu y vas. Donc je veux dire que, je veux dire vrai, je voulais dire ça. Ok, super. Donc, l'étape suivante est que nous allons aller dans le gestionnaire et créer deux variables ici. Donc, la première variable va être une chaîne publique, et ce sera les phrases. Et le second est un booléen privé qui peut activer la boîte. Alors pourquoi créons-nous la boîte d'activation de boîte ? Ce que je veux dire par cette variable, cette variable booléenne est que chaque fois que nous sommes à l'intérieur de la zone de déclenchement sur le MPC où Z nous l'a dit. Chaque fois que nous sommes à l'intérieur de la zone de déclenchement, nous pouvons activer la boîte. Si nous sommes à l'extérieur, nous pouvons activer la boîte. Donc, nous allons créer deux méthodes ici, qui sont le On Trigger, Enter 2D. Et le bras déclenche la sortie 2D. Alors, comment fonctionnent ces deux méthodes ? Le déclencheur Entrée, nous l'avons déjà utilisé sur la sortie de zone, mais vous n'avez pas encore utilisé la sortie de déclenchement. Donc, vous savez déjà quand nous entrons dans la certaine zone, le déclencheur entre, active. Mais lorsque nous quittons cette zone de déclenchement, la sortie On Trigger s'active. Laissez-moi vous montrer comment ça marche. Donc, à l'intérieur de l'entrepreneur Enter, nous allons vérifier si la collision est comparée à la couche. Et même si c'est une référence de chaîne, je suis à peu près sûr que c'est comme ça que vous écrivez joueur. Et ici, nous allons dire que peut activer la boîte est égale à vrai. Donc si nous sommes à l'intérieur de la zone de déclenchement ici pour le MPC, alors nous pouvons ouvrir la boîte. Mais si on est dehors, on va juste copier ça. Donc, si nous quittons la zone de déclenchement, nous pouvons activer la boîte sera faux. Donc ce n'est que lorsque nous sommes à l'intérieur de la zone de déclenchement que nous pouvons démarrer et activer la boîte de dialogue ? Et enfin, une mise à jour créera une condition si nous pouvons activer la boîte. Et rappelez-vous que c'est le signe pour. Et donc si nous pouvons activer la boîte et le point d'entrée obtenir le bouton vers le bas sur le feu. Ensuite, nous allons simplement aller de l'avant et imprimer le journal de points de débogage. On peut activer la boîte de dialogue. Donc, nous utilisons généralement l'impression pour déboguer des choses, mais l'impression est quelque chose qui s'imprime réellement sur la console tandis que le journal de points de débogage est juste pour développer le jeu et n'affiche pas réellement quelque chose. Les journaux sont donc meilleurs pour les développeurs et une façon beaucoup plus professionnelle de faire les choses. Donc nous allons sauver ça. Nous retournerons dans notre jeu et ensuite nous allons exécuter notre code. Donc maintenant, nous pouvons cliquer sur le bouton, va voir que nous n'avons rien ici. Mais quand nous entrons dans la zone, vous pouvez voir que le feu est inconnu. Pourquoi c'est ça ? Jusqu' à présent, on est inconnu. Le problème est de descendre la clé. Ok, alors on va descendre le bouton. Oh mon Dieu, descendez le bouton. Et cela devrait maintenant fonctionner. Donc encore une fois, nous exécutons le code, nous exécutons notre jeu. Et maintenant, si nous allons à notre MPC, quand nous avons eu le feu, voilà. On peut activer la boîte de dialogue. Vous pouvez voir combien de fois il est appelé ici sur la droite, parce que l'effondrement a enlevé l'effondrement. Vous verrez qu'ils sont tous imprimés sur une seule ligne avec le réduit. Ils sont tous concaténés. Si je déménage, vous remarquerez que si j'appuie sur la touche, il n'y a pas d'impression hors comportement. Peut activer le bouton. Quand on est à l'intérieur. Voilà, tu y vas. On peut activer le bouton. Maintenant, dans la prochaine vidéo, nous allons rendre cela beaucoup plus sophistiqué et vraiment implémenter cela dans notre système de dialogue. Est-ce que c'est fait ? J'espère que ça vous plaira et je vous verrai dans la prochaine vidéo.
36. Handler de dialogue: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, comme vous le voyez, si nous avions le bouton de la souris, rien ne se passe. Si on monte chez notre guérisseur et qu'on appuie sur le bouton de la souris, je suis guérisseur. Je suis un démon appelé le Jimmy. Je suis venu pour ton âme. Pourquoi es-tu si méchant Jimmy ? Vous semblez être gentil. Et c'est toute la conversation. Alors ne perdons plus de temps et commençons. Bon, maintenant que nous avons tout configuré, il est temps de commencer à activer la boîte de dialogue selon que nous sommes à l'intérieur ou à l'extérieur de la chanson. Donc, la première chose que nous devons faire est d'aller au contrôleur
de dialogue et de créer une méthode ici qui activera le dialogue. Donc ça va être un vide public. Activer le dialogue. Donc, cela va initier le dialogue et nous allons lui faire passer un argument. Et cet argument va être le tableau de chaînes des nouvelles phrases à utiliser. Donc, cela sera évidemment géré dans le gestionnaire de dialogue, mais nous aborderons cela plus tard, expliquerons plus loin. Ainsi, les phrases de dialogue, celles qui sont sur le contrôleur de dialogue, seront égales aux nouvelles phrases à utiliser. Et parce que nous commençons la conversation, la phrase actuelle sera égale à 0. Donc, c'est la variable qui garde une trace de la phrase sur laquelle nous sommes. Ça va être 0. Et le texte de dialogue texte point sera égal aux phrases de dialogue, les phrases de la phrase en cours. Donc, c'est juste pour tout initier. Et enfin, nous devons également activer la boîte de dialogue. Donc, le point de la boîte de dialogue défini actif sur true. Et nous allons bien sûr désactiver ici sur notre joueur. Alors, où est-il ? Où est notre panneau de dialogue Canvas ? Et on va éteindre ça. Et dans Canvas, c'est le panneau de dialogue. Il sera allumé plus tard. Alors, sauvegardez tout ça. Et maintenant, je vais vous lancer un défi. Et votre défi est d'activer le dialogue. Activez donc la boîte de dialogue à partir du script du gestionnaire de dialogue. Utilisez l'instance du contrôleur de dialogue et
assurez-vous de passer ces phrases à la méthode via le paramètre. Et nous avons déjà établi où, dans le gestionnaire de dialogue, vous devriez appeler la méthode du contrôleur de dialogue pour activer la boîte de dialogue. Donc, avec cela dit, arrêtez la vidéo dès maintenant et allez faire le défi. Bon, bienvenue. J' espère que vous saviez comment faire ça. Donc, dans le gestionnaire de dialogue, lorsque nous appuyons sur la touche Fire one et que nous pouvons activer la boîte, nous allons appeler le dialogue d'activation du point d'instance du contrôleur de dialogue. Et nous allons lui passer les phrases que nous avons. Donc, les phrases le sauvent. Maintenant, nous allons retourner dans Unity et même nous pouvons aller au contrôleur de dialogue et nous allons mettre cette lettre en privé. Mais pour l'instant, alors que ça, je vais mettre ça en privé. Nous aurions même pu dire la phrase actuelle à privé, mais nous voulons juste nous assurer que tout fonctionne. Donc, sur le guérisseur de PNJ, nous avons les phrases que nous voulons ajouter. Alors, voilà. On peut dire, hé, je veux dire guérisseur. Donc c'est une conversation, Hey, je suis un démon appelé ou je sais quoi ? Je suis un démon appelé. Jimmy. Je suis venu pour ton âme. Pourquoi es-tu si méchant Jimmy ? Vous semblez être gentil. C' est une petite conversation entre Jimmy et le guérisseur. Donc, ce qui va se passer maintenant, c'est que nous allons exécuter le code. C' est donc le script sur le gestionnaire de dialogue du PNJ. Et sur la toile, on devrait voir
ça, Jimmy, nous, tout est toujours le même. Mais quand nous marchons chez le guérisseur, quand nous avions la clé de feu, voilà. Hé, je suis un guérisseur. Hé, je suis un démon. Donc, vous pouvez voir qu'il y a encore un petit problème. Nous ne changeons pas. Nous passons de la phrase 0 à la phrase 1. Alors, quel est le problème ici ? Eh bien, le problème. Que dans le gestionnaire de dialogue, nous mettons à jour chaque image, en vérifiant si la boîte peut être activée et si nous appuyons sur le bouton de tir. Donc, ce qui se passe, c'est que cette méthode est appelée à chaque fois. Et ce que cela fait, c'est qu'il va de l'avant et active boîte de
dialogue et définit à nouveau la phrase actuelle à 0. Nous devons donc nous assurer que nous ne l'invoquons qu'une seule fois. Comment on fait ça ? On va ajouter une autre condition ici. Donc, si la boîte est active et que nous appuyons sur la touche de bouton et le gestionnaire de dialogue. Donc vous remarquerez que j'ai ajouté un point d'exclamation. Je vais vous dire ce que c'est. Et le gestionnaire de dialogue ou le contrôleur de dialogue, instance de
point, boîte de dialogue point. Donc boîte de dialogue est, où est-il ? La boîte de dialogue est un champ sérialisé. Nous ne pouvons pas y accéder. On peut faire deux choses ici. Donc, nous pouvons soit rendre cela public et donner accès à tout le monde. Ou un moyen beaucoup plus sophistiqué est d'aller de l'avant et de créer un booléen public. Et le dialogue est actif. Et ce que cela fait, c'est qu'il retournera, point de la boîte de dialogue de
retour est actif ou actif dans la hiérarchie. Donc maintenant, si la boîte de dialogue est active et hiérarchie, cela sera égal à true et nous allons retourner la valeur. Donc, si le point d'instance de point de contrôleur de dialogue est dialogue, est dialogue. Cela aurait dû être peut-être actif dans la boîte de dialogue. Donc dialogue qui peut changer la boîte de dialogue de nom actif. Appliquez ça. Quel est le problème ? La boîte de dialogue est-elle active ? Voilà, tu y vas. Mais qu'en est-il de ce petit point d'exclamation ? Alors, quel est l'intérêt ici ? Qu' est-ce qu'on fait réellement ? Nous voulons nous assurer que si la boîte de dialogue a déjà été ouverte, nous ne voulons pas continuer à appeler la boîte de dialogue d'activation. Donc, ce petit point d'exclamation nous indique que si la boîte de dialogue est active est vraie, le point d'exclamation inverse. La boîte de dialogue est active. Donc, si toute cette phrase est vraie, toute
cette condition ici est vraie en ajoutant un point d'exclamation, nous transformons ceci en un faux. Que se passe-t-il ici ? Nous cochons les cases actives. Nous avions la touche de feu, la boîte de dialogue est active, mais à cause de ce point d'exclamation, cela rend toute cette condition fausse donc nous n'activons pas la boîte de dialogue. C'est cool ? Alors prenez un peu de temps si vous êtes encore confus, que se passe-t-il ? Ce point d'exclamation, inverse déconditionnées et mélanger tout tombe ou rend tout vrai. Donc, avec cela dit, nous allons sauver cela. Nous retournerons dans l'unité et nous essaierons de nouveau. Donc, nous allons lancer le code, nous allons monter au MPC, va frapper. Et voilà. Je suis un démon appelé Jimmy. Je suis venu pour ton âme. Pourquoi es-tu si méchant Jimmy ? Vous semblez être gentil et on a fini la conversation. Ok, super. Mais si vous avez remarqué qu'il y a quelque chose qui ne va pas. Donc encore une fois, si je vais dans le guérisseur, appuyez sur la clé si haut que je suis un démon. Alors où est le, hé, je suis un guérisseur. Ça ne se montre pas. C' est parce que si nous revenons à notre contrôleur de dialogue ici, nous pouvons voir que chaque fois que nous appuyons sur le bouton, nous ajoutons immédiatement la phrase actuelle. Alors comment on va arranger ça ? Eh bien, c'est assez facile. Nous allons juste créer une variable ici qui gardera une trace si le dialogue vient d'enseigner. Donc, un dialogue booléen privé vient de commencer. Et dans le dialogue d'activation. Et ici, nous allons dialoguer juste commencé égal à vrai, sauf cela. Et à chaque fois que nous avons touché la clé de feu, nous allions ajouter une autre condition ici. Donc, si le dialogue vient de commencer, ou ce que je voulais dire, c'est que si le dialogue ne vient pas de commencer, alors nous allons ajouter un plus deux. Nous allons simplement mettre le dialogue qui vient de commencer à faux. Ok, alors testons ça et je vous expliquerai un peu plus. Alors maintenant, nous menons notre jeu. Nous allons voir le guérisseur, nous amorçons la conversation et comme vous pouvez le voir, nous n'avons pas sauté la première ligne, puis nous poursuivons notre conversation. Donc, ce qui se passe ici, c'est que nous avons créé une variable. Et comme vous pouvez le voir, j'ai ajouté un point d'exclamation. Donc, si le dialogue vient de commencer, nous n'entrons pas dans cette condition. Nous l'avons défini sur false, et nous lançons effectivement la première ligne de code ici parce que nous avons ajouté. Donc, ce qui se passait, c'est que nous avons dit la taxe de dialogue avait la phrase actuelle qui était 0. Mais dès que nous avons appuyé sur le bouton de feu, encore une fois, nous avons un plus courant et nous le changeons. Donc, cela nous permettra de, tout d'abord, si cela ne vient pas de commencer, alors nous allons ajouter un plus, plus. Mais si cela vient de commencer,
nous n'augmenterons pas la peine actuelle. J' espère que ce n'était pas trop déroutant. C' est juste un moyen d'atténuer les dégâts chaque fois que nous commençons une conversation. Mais il y a encore deux problèmes ici. La première, c'est que quand on va voir notre dame ici, si on lui parle, on peut encore partir. Et comme vous pouvez le voir, on lui parle à partir d'une autre carte presque. Et c'est un grand non-non. Nous devons trouver un moyen d'empêcher notre démon de bouger. La seconde, c'est qu'on parle, mais on ne sait pas qui dit : « Je suis un démon, peut-être gelé. Le démon a appelé la salle de gym. Peut-être qu'elle a appelé la salle de gym. Nous ne savons pas qui parle, alors nous devons ajouter un nom ici, mais c'est pour une autre vidéo. Jusque-là, assurez-vous de valider vos modifications. Et je te verrai dans la prochaine vidéo.
37. Tenir le mouvement des joueurs: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous avons pensé, ou démons quelques manières. Alors maintenant, quand nous montons pour parler à la gentille dame guérisseuse, nous ne pouvons plus fuir d'elle et crier de l'autre côté de l'écran. Donc, à moins d'avoir fini la conversation, nous n'avons aucun moyen de partir. Donc, comme vous pouvez le voir, quand nous finirons la conversation, nous pouvons partir et aller nager et les eaux. Alors ne perdons plus de temps et commençons. Ok, donc comme nous l'avons vu dans une vidéo précédente, nous voulons que notre joueur cesse de bouger chaque fois que nous avons une conversation avec le PNJ parce que c'est de bonnes manières et que notre démon Timmy doit avoir de bonnes manières. Il n'a pas de bonnes compétences en conversation, mais il a des manières. Alors, comment allons-nous faire ça ? Nous allons devoir trouver un moyen dans le joueur d'activer le mouvement chaque fois que nous parlons et nous le manipulons ici et la vitesse. Donc, la façon dont nous arrêtons cela est de vous lancer un défi, donc vous allez empêcher le joueur de bouger. Donc, créez une variable booléenne et déclare un script, qui sera le mouvement d'activation ou vous pouvez l'appeler n'importe quel nom que vous voulez. Une mise à jour. Vérifiez si la variable est vraie et nous la mettrons à une vitesse de 0. Donc, si la variable, le mouvement d'activation est vrai, la vitesse du joueur doit être réglée sur 0. Sinon gardera simplement la vitesse telle qu'elle est. Alors mettez la vidéo en pause maintenant. Prenez le temps de relever ce défi. C' est très important et je te verrai dans un peu. Oh, ok, bienvenue. Donc, la première chose que nous devons faire en
tant que mouvement de désactivation booléen public est égale à false. Nous allons nous assurer que nous commençons par avoir le mouvement d'activation faux. Et ici, quand nous définissons les flotteurs pour les axes get horizontaux et verticaux, nous allons vérifier si le mouvement de désactivation est vrai. Ensuite, nous allons aller de l'avant et accéder aux joueurs corps rigide. Nous allons accéder à la vitesse sur elle. Et pour que ça soit vrai, on ne va pas dire que c'est égal à 0. Nous allons nous assurer que nous lui disons que c'est un vecteur deux points 0. Pourquoi utilisons-nous cela au lieu d'un 0 ? Parce que vous pouvez voir que la vitesse ici, vous pouvez lire que c'est un vecteur, vitesse corporelle
trop rigide. Et pour le définir à 0, nous devons utiliser le facteur à 0, qui est initialement juste un vecteur 0, F 0, F. Alors, que devrions-nous faire ensuite ? Eh bien, nous devons ajouter un autre cas et ensuite le mettre ici. Donc, si le mouvement de désactivation du joueur est vrai, alors la vitesse devient 0. Sinon, on le définit comme la vitesse normale. Alors testons ça et notre gain. Oh, on n'a pas activé ça. Donc, pour nous assurer que nous le faisons, nous devons entrer dans le gestionnaire de dialogue. Je veux dire, le, désolé, les contrôleurs de dialogue. Donc ici, le dialogue vient d'être activé et nous devons aller et à l'instance de point de joueur le mouvement d'activation. Et nous le mettrons à vrai. Maintenant, évidemment, il aurait été préférable de faire cela une variable privée et de créer une méthode pour y accéder. Mais pour aller plus vite, nous allons utiliser l'instance. Donc, nous allons dire que dans notre jeu, nous menons notre jeu. Jimmy va au PNJ, je suis un démon guérisseur. Et maintenant, nous ne pouvons plus bouger. Même si nous arrêtons, la conversation devra désactiver les mouvements de désactivation. Alors maintenant, nous pouvons bouger, mais dès que nous commençons à parler, nous ne pouvons pas bouger. Mais il y a un léger problème et c'est que nous pouvons encore regarder autour de nous. Maintenant, si vous voulez, c'est une fonctionnalité cool. On peut le garder, mais on ne le veut pas dans notre cas maintenant. Donc je vais vous montrer un mini défi pour vous d' arrêter la rotation du joueur pendant que nous parlons. Ce n'est donc pas un défi officiel. Prenez un moment, mettez la vidéo en pause. Fais-le toi-même. Le temps est écoulé. Alors allons-y. Si nous ne sommes pas l'activation du mouvement, alors nous pouvons définir l'animateur. Donc parce que notre tournage est géré ici. Donc, si le mouvement est égal à un et ainsi de suite, nous accédons à l'animateur. Nous définissons le dernier x, donc nous avons le mouvement activé réglé sur true, alors cette condition ne fonctionnera pas et nous ne fixerons pas moins d'impôt, mais cela fait, revenons dans l'unité. Faisons en sorte que nous le sauvions. Non, on ne l'a pas fait. Donc encore une fois, nous devons juste remarquer que j'ai quelque chose pour l'astérix en haut. Alors on va au PNJ, on commence à parler et on y va. On ne peut pas faire demi-tour. Donc j'essaie de frapper le WASD et rien ne marche. D' accord. Mais un dernier problème. Comment donner à Jimmy la possibilité de recommencer à marcher ? Eh bien, nous allons entrer dans le contrôleur de dialogue. Et quand nous vérifions si les phrases actuelles sont supérieures à la longueur des phrases de dialogue, nous allons définir le dialogue actif sur false. Et nous allons aller accéder à l'instance de point de joueur, désactiver le mouvement et le définir sur false. Donc, nous allons sauver ça. Maintenant, nous devrions pouvoir voir que Jimmy peut marcher à nouveau après avoir fini d'avoir une conversation avec la gentille dame. Alors hé, je suis un démon guérisseur. Et voilà. Nous pouvons marcher à nouveau si nous essayons de marcher quand nous parlons. Oui, on y va. Maintenant, nous avons un démon très bien manié. Assurez-vous donc de valider vos modifications. Et dans la vidéo suivante, nous allons gérer les noms des personnages qui parlent. Je te verrai alors.
38. Montrer des noms des personnages: Bienvenue de retour, Mes développeurs de jeux préférés. Alors maintenant, quand nous marchons vers notre guérisseur, nous commençons à parler. Nous savons que c'est un guérisseur. Alors hé, je suis un guérisseur. Jimmy. Hé, je suis un démon. Jimmy a appelé Jimmy. Alors Jimmy parle, il dit, je m'appelle Jimmy. Je suis venu pour ton âme. Pourquoi êtes-vous si méchant Jimmy ? Qui parle ? Oh, c'est le guérisseur. Ok, super. Donc le guérisseur dit que vous semblez être gentil. Donc Jimmy a prouvé qu'il a des manières exceptionnelles ou avec des guérisseurs dans la ville. Donc, ne perdons plus de temps et assurez-vous que nous savons qui dit les centres de dialogue. Oh, ok, alors maintenant on veut définir le nom de chaque personnage parlant. Il y a donc plusieurs façons de le faire, mais je crois que le moyen le plus simple est le suivant. On va voir le guérisseur par exemple. Et ici, disons,
hé, je suis un guérisseur, mais nous le ferons, c'est que nous mettrons un certain caractère qui peut être n'importe quoi. Il peut s'agir du symbole hashtag. Donc, alors que le symbole hashtag, donc par exemple, le guérisseur de symbole hashtag. Et ce qu'on va faire, c'est le mettre quelque part. Alors maintenant, le guérisseur parle. Quand on veut s'assurer que c'est le démon qui parle, on va mettre Jamie et là, accord, et on recommence. Donc, nous allons cliquer ici. Et un autre. Guérisseur. Pourquoi es-tu si méchant Jimmy ? Vous semblez être gentil. Ok, donc maintenant vous pouvez voir qu'on a un guérisseur, Jimmy, guérisseur qui parle. Mais comment allons-nous nous assurer que lorsque les phrases sont rouges, nous savons que c'est un guérisseur. Eh bien, nous allons utiliser le symbole que nous avons dit derrière. Et nous allons utiliser deux méthodes dans C-Sharp. Donc, le premier est le point de chaîne commence par, et cela nous permet de vérifier si ou déterminer si l'instance de chaîne commence par un caractère spécifique. Cela nous permettra de vérifier le caractère ou symbole que nous avions au début de la phrase. Et puis nous utiliserons Remplacer. Et avec cela, nous allons remplacer le symbole par une sorte de peut-être juste un espace vide, donc nous allons nous en débarrasser afin qu'il n'apparaisse pas à nos noms. Allons de l'avant et mettons en œuvre cela. Donc une heure, alors qu'elle et notre contrôleur de dialogue vont créer une méthode et ici qui s'appelle void. Vérifiez si le nom ou vérifiez le nom. Appelons ça le chèque pour le nom. Je pense que ça convient à la méthode du beurre et qu'il n'a pas besoin d'être public, il peut être privé. Je ne pense pas qu'on l'utilisera en dehors du contrôleur de dialogue. Donc, nous allons créer une condition if ici qui vérifiera si les phrases de dialogue au point de phrase actuel commencent par le Hugo. Dès que nous écrivons. Je ne suis pas sûr de savoir comment même Visual Studio peut être si intelligent. Donc, si cela commence par le caractère hashtag, alors ce que nous allons faire est le texte de nom. On a déjà dit que le nom était taxé là-haut. Le texte en points sera égal aux phrases de dialogue de la phrase en cours. Et nous allons remplacer le hashtag par un espace vide. Remplaçons-le juste par un espace vide. Et ce que nous ferons, c'est d'augmenter la peine actuelle d'un. Ok, alors qu'est-ce qu'on fait ici ? Tout d'abord, nous vérifions si la phrase de dialogue à la phrase en cours commence par le hashtag ou le symbole que vous avez choisi d'ajouter. Nous allons accéder au texte du point fiscal du nom et nous le
définirons comme la phrase de dialogue à la phrase actuelle. Mais nous allons remplacer le hashtag par un espace vide. Maintenant, nous savons que c'est le nom, mais parce que nous ne voulons pas que le nom apparaisse dans la boîte de dialogue. Nous augmenterons immédiatement la peine actuelle à partir d'
ici et nous continuerons avec la conversation. Donc, la dernière étape est de savoir où appeler le numéro de contrôle. Et ça va faire partie de votre défi. Et votre défi sera d'appeler la méthode de vérification pour nom. Alors trouvez les deux. Il y a donc deux endroits où nous devrions vérifier si une phrase est un nom ou une ligne de dialogue, et les appliquer et exécuter le code, exécuter le jeu, assurez-vous que cela fonctionne. Alors arrêtez la vidéo dès maintenant et allez finir le système de jeu de fin de dialogue. Ok, bienvenue. Comment as-tu réussi avec ça ? C' était un défi très important si vous n'avez pas essayé de le faire, le faire dès maintenant, il vous donnera plus d'informations sur le fonctionnement des jeux et c'est vraiment un défi amusant de savoir où nous devrions appeler. J' ai donc donné le spoiler. Nous devons vérifier le nom juste avant d'activer le dialogue. Donc c'est la première place. Et nous devrions toujours vérifier si nous définissons le texte de dialogue point txt. Où devrions-nous vérifier d'autre ? Ici ? On va vérifier le nom. Alors, sauvegardez ça. Je pense que ce sont les deux endroits que nous devons vérifier. Essayons ça et voyons si j'avais raison. Donc, nous allons diriger notre jeu. Nous allons marcher jusqu'au guérisseur, va frapper Print. Donc là, vous pouvez voir un guérisseur, Hey, je suis un guérisseur. Jimmy, je suis un démon appelé Jimmy, je suis venu pour ton âme, le guérisseur. Pourquoi es-tu si méchant Jimmy ? Semble être gentil et voilà. Nous sortons. Alors, c'est cool ? Maintenant, nous savons qui parle quand et où. Le dialogue est donc terminé. J' espère que ça vous plaira. Je te vois dans la prochaine vidéo. Et n'oubliez pas de valider toutes vos modifications. On fait des choses incroyables. Regarde ce qu'on a déjà fait. Je te verrai ensuite.
39. Section 6 :: Bienvenue à mes collègues développeurs de jeux. Et dans cette vidéo, nous allons créer des statistiques de joueur. Donc, si nous cliquons sur le joueur en ce moment, vous verrez qu'il a quelques statistiques et le maximum de HP, la défense sale HP TEDx actuelle, et bien sûr le nom de Jimmy le démon. Alors ne perdons plus de temps et commençons. Oh, d'accord, il est temps de créer des statistiques pour notre joueur. Et comme nous avons déjà parlé de délégation, nous ne voulons pas que notre script de joueur gère les statistiques des joueurs. Nous allons créer un autre type de script pour gérer cela. Nous allons donc créer un dossier ici. Nous allons l'appeler le, disons que les personnages peut-être ajouteront le script du joueur. Et nous allons aller de l'avant et créer un script de statistiques de joueur. Et ici, donc faites un clic droit, créez un script C-Sharp et nous appellerons cette couche D. Statistiques. Appuyez sur Entrée. Que devrions-nous faire ici ? Eh bien, nous allons juste mettre en place quelques statistiques à avoir pour notre joueur. Donc, la première étape va être un champ sérialisé. C' est une corde, et ça va être le nom du joueur. C' est donc la première étape habituelle que nous avons pour tout genre de réalisateur dans un RPG. Et puis la deuxième variable sera le niveau des joueurs. Parce que comme nous le savons, chaque joueur d'un RPG a sorte de niveau et nous allons le définir à un par défaut, sera en mesure de changer tous ces éléments dans l'inspecteur parce que nous définissons les champs sérialisés IS. Nous allons garder une trace de l'expérience actuelle. Donc, l'XP actuel, et supprimons simplement les égaux ici. Donc l'expérience actuelle, qu'avons-nous d'autre ? Eh bien, nous avons le maximum de PV, donc la santé maximale, et nous allons définir par défaut à 100. Nous avons le HP actuel dont nous voulons garder une trace. Donc HP actuel, éliminons ce gouffre. Nous voulons ajouter de la magie à notre joueur. Nous aurons aussi un Max Mano. Donc, si vous ne savez pas quelle est la source de magie pour n'importe quel personnage, quantité de mana que vous possédez détermine le nombre de sorts que vous pouvez deviner. Et nous allons juste séparer tout ça avec un espace pour garder tout soigné. Et bien sûr, nous aurons aussi la manière actuelle. Alors Mano actuel, qu'est-ce qu'un personnage devrait avoir d'autre ? Un RPG ? Je pense que la dextérité et la défense sont une bonne statistique à avoir. Donc dextérité et différence. Et si vous ne savez pas quoi, je suis sûr que vous savez quelles défenses, mais si vous n'êtes pas sûr de ce qu'est la
dextérité, c'est votre capacité à manipuler une arme. Donc, plus vous avez de dextérité, plus vous pouvez manipuler une arme. Electron va peut-être ajouter quelques choses ici, comme l'arme équipée et l'armure équipée. Mais pour l'instant, je pense que ce sont les bases qui fonctionneront sur. Et quand nous aurons besoin d'en ajouter plus, nous reviendrons et ajouterons plus. Alors sauvegardons tout ça. Maintenant, revenons dans Unity et où est notre joueur ? Faites glisser les statistiques du joueur sur le joueur. Réduisons l'animateur. Et voilà, vous pouvez voir les statistiques des joueurs. Que devrions-nous faire ici ? Quel est le nom de notre joueur tel qu'on l'a dit, Jimmy ? Et quelle est l'expérience actuelle ? Alors que nous allons lui donner 200 ou pas à des centaines de trop. Donnons-lui 36. Avec le Max HP est 100. Nous allons lui donner une dextérité de 10 et une défense de, disons 30. Ok, donc ce ne sont que des nombres arbitraires. Vous pouvez ajouter ce que vous voulez plus tard, nous allons approfondir, mais pour l'instant, nous voulons juste mettre le terrain pour tout et commencer à travailler. Maintenant, il est temps de vous donner un défi. Et votre défi sera de créer des statistiques. Ajoutez donc vos propres statistiques de joueur que vous souhaitez avoir. Comme vous l'avez vu, ce sont très basiques, basiques, basiques. Vous pouvez ajouter beaucoup plus. Donc, si vous avez joué à un jeu comme, disons suivi New Vegas, il a de l'intelligence, de la chance et ainsi de suite. Dark Souls, Par exemple, a
aussi beaucoup de, qui est là. C' est là que j'ai eu de la dextérité. Et nous allons utiliser différents RPG pour créer
un système de nivellement à partir d'eux et comment nous attaquons en utilisant ces systèmes. Voici donc quelques exemples. Vitesse, vitalité, endurance, intelligence, verrouillage, etc. Il y a
donc beaucoup de compétences. Comme je l'ai dit, ce jeu est votre jeu que vous avez créé comme vous le souhaitez. N' ayez pas peur d'ajouter quelques statistiques à expérimenter, puis d' ajuster le code
au fur et à mesure que nous avançons dans notre jeu en fonction de vos statistiques, en fonction de vos propres besoins. Et c'est le processus d'apprentissage. Assis ici à me regarder faire froid et ne rien faire ne va pas t'aider autant. Donc, avec cela dit, arrêtez la vidéo dès maintenant à deux de vos propres statistiques si vous voulez. Et je te verrai dans la prochaine. Et aussi si vous appréciez le cours jusqu'à présent, cela m'aiderait beaucoup si vous me laissez un avis positif sur le parcours. Et merci, je te verrai dans la prochaine vidéo.
40. Pour les boucles en unité: Bienvenue de retour, Mes développeurs de jeux préférés dans cette vidéo, comme vous le savez, chaque jeu de RPG, chaque joueur de votre jeu nécessite un nivellement. Nous avons donc créé une expérience pour chaque niveau. Donc, la quantité d'expérience pour chaque niveau, et c'est fait dynamiquement. Dès que nous lançons le jeu, vous verrez qu'à partir du niveau 0 vous êtes ici. Pour atteindre le niveau deux, vous aurez besoin de 100 deux expérimentés, niveau trois, 200,
300, 400, 56 jusqu'à ce que vous arriviez à 49 000 ou 4 900. Ainsi, vous pouvez voir que tout cela a été fait automatiquement en utilisant des boucles. Alors ne perdons plus de temps. Et commençons. Oh, d'accord, il est temps de commencer à niveler notre joueur. Pour ce faire, nous allons entrer dans les statistiques des joueurs et nous
allons ajouter deux nouvelles variables ici. Donc, d'abord, nous allons ajouter un champ sérialisé. Champ sérialisé, ce sera un entier et ce sera le niveau maximum, et nous allons le définir à 50. Je ne pense pas qu'on aura besoin de plus de 50 niveaux maximum. Vous pouvez modifier cela en fonction du caractère que vous possédez. Vous verrez que nous pouvons ajouter la stat de ce joueur à n'importe quel personnage et en faire un joueur ou un personnage jouable. Et l'autre variable que nous voulons ajouter est un champ sérialisé, qui va être un entier ou un tableau d'entiers. Et ce sera l'expérience dont nous avons besoin pour que chaque niveau monte. Donc ça va être l'EXP. Pour chaque niveau. Voilà, tu y vas. Donc maintenant, nous avons le niveau maximum que notre joueur peut atteindre et l'expérience pour atteindre chacun de ces niveaux. Ensuite,
nous voulons définir ces expériences pour chaque niveau. Alors comment on fait ça ? Tout d'abord, et commencez, nous allons créer le tableau d'XP pour chaque niveau, et c'est ainsi que vous le créez. Ainsi, l'XP pour chaque niveau est égal à un nouveau tableau d'entiers. Et nous devons déterminer quelle taille il va
être et la taille sera le niveau maximum. Donc maintenant, le nombre d'expérience pour chaque niveau sera le niveau maximum. Alors, combien de niveaux avons-nous ? Eh bien, nous avons, par exemple ici 50. Ainsi, la taille du tableau XP pour chaque niveau sera 50. La prochaine chose que nous voulons faire est de pouvoir mettre en place ces expériences. Pour ce faire, nous avons besoin d'une autre variable et je ne suis pas sûr d'où nous allons ajouter la classe. Il suffit de garder tout ce qui est lié à l'expérience dans le même bloc ici. Et ça va être un entier. Et nous allons appeler un XP de niveau de base profond. Donc, ce sera égal à 100. Donc le premier niveau est 100, et nous allons le mettre aussi ici. Ainsi, l'expérience pour chaque niveau sur le niveau un sera égale au niveau de base XP. Ok, super. Maintenant un ordre pour remplir le reste, nous allons utiliser une boucle parce que nous ne voulons pas y aller. Et par exemple, pour chacun et les deux égaux à une sorte de nombre, nous voulons le faire dynamiquement. Et heureusement, il y a un outil incroyable pour faire cela qui s'appelle boucles. Laissez-moi vous expliquer ce que sont les boucles. Donc, pour être spécifique, qu'est-ce qu'une boucle for ? Ainsi, les boucles peuvent exécuter un bloc de code un certain nombre de fois. Les boucles sont pratiques si vous voulez exécuter le même code encore et encore à chaque fois avec une valeur différente. Donc, c'est la structure de la boucle. Nous commençons par écrire pour, et c'est une boucle for verra un autre type de boucle plus tard dans le cours. Donc, par exemple, nous écrivons quatre, nous ouvrons ces deux crochets. Nous commençons par initialiser la première condition. Donc int I est égal à 0. Alors que je suis moins d'une certaine limite, nous allons augmenter I plus, plus. Et à chaque fois, nous allons exécuter le code qui se trouve entre ces deux crochets bouclés. Donc, nous continuons à exécuter ce code à l'intérieur jusqu'à ce que j'atteigne une certaine limite. On commence à 0. Disons que la limite est de trois. On commence à 0, ok ? On peut exécuter le code. Nous augmentons i d'un est I, qui est maintenant un, moins de trois. Non. Donc encore une fois, nous exécutons le code, nous augmentons d'un. Je suis devient aussi je suis inférieur à la certaine limite ? Oui, ça l'est. Ai-je dit non auparavant ? Donc, je égale deux est inférieur à la certaine limite, qui est trois. Encore une fois, nous exécutons. Enfin, nous arrivons à 3. Donc, j'égale trois. Est-il inférieur à la certaine limite avec seulement trois nœuds pas donc nous quittons la boucle et nous finissons. Ajoutons ceci à notre code et voyons ce qui se passe. Donc, au début, nous allons créer une boucle for. Donc pour va ouvrir les crochets. Nous allons écrire int I égal à. Et pourquoi ne commençons-nous pas à 0 ? Pensez-y un peu. Pourquoi ne commençons-nous pas par I égal à 0 ? Eh bien, parce que nous avons déjà établi le I égal à un et ici, et le I égal à 0 sera, bien sûr 0. C' est le niveau de base. C' est avec ça que vous commencez. Pour arriver au premier niveau, vous utilisez le niveau de base et ensuite nous allons définir le reste de I égal à 2. Quelle est la limite que nous ne voulons pas dépasser sa taille du tableau, qui est l'XP pour chaque niveau. Donc, nous obtenons la taille en utilisant la longueur et augmenterons I d'un à chaque fois. Alors, qu'est-ce qu'on va faire et ici ? Eh bien, nous allons vous lancer un défi. En fait, je vais vous montrer un défi et votre défi est d'imprimer le numéro auquel nous sommes. Utilisez donc la méthode d'impression pour imprimer I ou le numéro où nous sommes actuellement dans l'itération. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bienvenue de retour. Donc c'est très facile. Il suffit d'écrire, d'imprimer, d'ouvrir les parenthèses. Allons-y. Nous sommes à et nous concaténons une chaîne, ce qui est, nous aurions pu simplement écrire I, mais c'est juste à des fins plus esthétiques. Nous allons sauver ça à Unity. Et nous, nous, nous avons ajouté tout. Alors maintenant regardons la console. Nous avons fait en sorte que le niveau maximum soit 50. Vous pouvez voir ici que chaque XP comme à 0, mais c'est un tableau. Donc, quand nous exécutons le code, mais voilà. Vous pouvez voir que maintenant nous avons de 0 à 49, donc 50 niveaux, le premier est 0, le second est initialisé à 100. Et vous pouvez voir les chiffres ici dans la console à partir de 2, 3, 4, 7, 8, 9, 10, 11, 14. Et ils continuent jusqu'à ce qu'ils arrivent à 49. Ok, super. Cela dit, ensuite, nous devons faire quelque chose de réel ici, pas seulement imprimer. Donc, nous allons commenter cela. Et nous allons aller de l'avant et dire que l'XP pour chaque niveau à la position I, parce que rappelez-vous que je augmente à chaque itération. Donc, nous allons passer par chaque élément dans le tableau de l'XP pour chaque niveau, et il va être égal à l'XP de niveau de base. Et nous allons juste le multiplier par moi Sauvegardez ça. Retournons à Unity. Attendons que cela compile et garde vos yeux sur l'XP pour chaque niveau, nous allons exécuter notre jeu et là vous allez. Vous pouvez voir que nous commençons pour atteindre le niveau suivant, nous avons besoin de 100 XP pour passer au niveau suivant, suivant,
200 au troisième niveau, 300,
400, 56, et ainsi de suite et ainsi de suite jusqu'à ce que nous ayons besoin de 4 900. Donc, avec cela fait, j'espère que ça vous a plu. Juste peut-être une fois de plus. Expliquez ce qui se passe dans la pente parce que si vous n'êtes pas familier avec les boucles et que c'est votre première fois, cela vaut la peine de l'écouter encore une fois. On commence. Notre condition initiale est deux. Nous avons une certaine limite, qui est la longueur de la pour chaque tableau de niveau que nous avons créé ici. Et chaque itération, nous augmentons i par un. On a vu à quoi ça ressemble quand on a imprimé le I sur chaque ligne. Ensuite, nous prenons ce gars qui augmente à chaque fois et nous l'utilisons pour passer par le tableau et sur chacun, et disons élément du tableau, nous définissons la vitesse de niveau de base fois le nombre I. Et c'est comment nous incrémentons chaque fois assignés à toutes les vitesses pour chaque niveau et la baie. J' espère que ça vous plaira. Et dans la vidéo suivante sera incrémenter la vitesse au niveau suivant et pas aussi stable que maintenant. Donc, nous ne voulons pas avoir seulement 100 points différenciés entre chacun. Comme vous le savez, les jeux RPG, chaque niveau nécessite plus que le précédent pour augmenter. Donc, disons que le premier niveau nous a pris 100 expérience, le second devrait prendre plus de 100 pour le surmonter. Alors je te verrai dans la prochaine.
41. Distribution d'expérience: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons implémenter une équation différente pour obtenir l'expérience dont nous avons besoin pour atteindre chaque niveau. Donc, quand nous exécutons le code, vous verrez que nous n'avons plus de 100 à chaque fois, mais nous avons un niveau très bien distribué pour passer au niveau suivant. Ainsi, vous pouvez voir, par exemple, il faut 223 pour arriver au niveau deux. Mais si nous voulons passer de sept à huit, cela nécessite un peu plus et en bas de la ligne, vous remarquerez que cela change aussi au fur et à mesure que nous progressons. Donc, ne perdons plus de temps et voyons comment nous implémentons cette distribution 0. Alors, comment allons-nous distribuer l'expérience que nous avons ? Parce que, comme nous l'avons dit précédemment, nous ne voulons pas simplement augmenter de 100 par niveau. Nous voulons avoir quelque chose d'un peu plus, disons dynamique. Donc on veut être un peu plus dur à chaque fois. Donc, ce que j'ai trouvé est cette très belle page, et ceci provient du wiki Dark Souls. Si vous n'êtes pas familier avec Dark Souls, je vous recommande de jouer. C' est un jeu incroyable et vraiment un endroit idéal pour apprendre comment les RPG fonctionnent. Vous pouvez obtenir beaucoup d'informations. Par exemple, quels types de statistiques de joueur vous voulez. Et dans cette page particulière est la quantité d'expérience requise pour passer d'un niveau à l'autre. Donc, comme vous pouvez le voir, les nombres n'augmentent pas normalement. Vous pouvez voir, par exemple ici, ils ont augmenté de 13 puis une sorte de nombre. Je ne vais pas faire les calculs ici,
mais chacun, par exemple, niveau, vous pouvez voir qu'il y a une différence par rapport aux deux niveaux précédents. Donc, pour obtenir, par exemple, de ce niveau à ce niveau, vous pouvez voir qu'il faut environ 300 âmes peut-être pour obtenir de 690 à 707. Vous pouvez voir que c'est beaucoup moins qu'un 100. C' est donc ce que nous voulons mettre en œuvre dans notre jeu. Et heureusement, nous avons une petite équation ici. Ainsi, comme vous pouvez le voir, y est égal à 0,2 x à la puissance 3, et x est le nombre de fois. Alors, comment puis-je le dire ? Ainsi, par exemple, chaque fois que c'est le x, nous commençons comme niveau de base, puis nous augmentons x et un et ainsi de suite. Donc, dans notre code, le x va être le I, et nous allons essayer d'appliquer ceci. Revenons donc dans notre script et voyons comment nous pouvons le faire. Retirons donc l'imprimé ici et recommençons. J' ai donc la formule devant moi et je recommande que vous obteniez aussi la formule quelque part à côté de vous. Donc nous allons ouvrir les crochets et nous allons écrire
0 à F. Ça va être fois I, fois I, fois I, fois I. Et pourquoi est-ce que j'ajoute autant de fois I, parce que si nous regardons en arrière ici, vous remarquerez qu'il est 0,02 fois x à la puissance trois. Et nous pouvons trouver le pouvoir dans Unity. Oups, nous pouvons trouver le pouvoir et l'unité, mais je pense que l'utilisation juste
fois, temps est beaucoup moins compliqué et plus facile et évite beaucoup d'erreurs. La prochaine chose est 3.06 F fois I fois, et c'est tout. Alors voyons encore, voilà. Temps 2, 3.06. Ensuite, nous avons 105,6 fois x. Donc ça va être 1.605 F fois I. Et voilà. Sauvons. Cela n'utilisera pas le moins 895. Je ne pense pas que ce soit obligatoire. Gardons-le à ce que c'est. Mais si vous avez écrit l'équation, vous remarquerez qu'il y a un petit problème. Il y a une ligne rouge squiggly. Donc, si nous survolons, vous pouvez voir que l'opérateur
flottant, float sur l'erreur gauche est ne peut pas implicitement convertir float en un entier. existe une conversion explicite. Alors, qu'est-ce qui est accrocheur, que se passe-t-il ? Donc, l'expérience pour chaque niveau est un tableau d'entiers o, k. Mais ce que nous nourrissons, c'est une valeur qui est un flotteur. Donc, vous pouvez voir quand nous écrivons un flotteur, donc par exemple, 0 à F, Cela signifie
que c'est un flotteur et 3.016 ou 3.06 F comme un flotteur. Alors, comment allons-nous être en mesure de nourrir un nombre flottant dans une variable entière ? Je suis trop fatiguée pour le faire, donc je vais vous le donner comme un défi. Convertir un flotteur en entier. Disons que vous êtes un développeur de jeux et que vous arrivez
au point où vous rencontrez un problème comme celui-ci, il est temps d'utiliser votre incroyable capacité de résolution de problèmes. Donc, faites un peu de recherche et cherchez comment convertir un flotteur et en un entier. Il existe deux méthodes pour le faire. Vous pouvez aller chercher ces deux méthodes par vous-même, ou je vous en donnerai une. Je vais vous donner le plus dur et c'est plancher de
maths et je ne vais pas dire plus que ça. Mettez la vidéo en pause dès maintenant et allez faire le défi. Oh, ok, bienvenue. Alors qu'as-tu trouvé, comment le faire ? Donc si on y va, tu peux voir qu'on a, on s'est rencontrés,
on a la parole à l'ORL. Et vous pouvez l'utiliser pour convertir renvoie le plus grand entier, plus petit ou égal à f. Donc, voilà. Voici comment vous l'utilisez, Math.Floor et vous mettez le flotteur et citez ceci par exemple, nous allons imprimer 10. Vous pouvez voir les exemples à côté. Mais on va utiliser un outil de beurre. Et cet outil est simplement en écrivant et avant. Donc, vous pouvez convertir n'importe quoi en utilisant cette méthode ici, bien que je pense qu'il prend plus de mémoire de l'ordinateur, mais nous ne nous inquiétons pas à ce sujet. Je suis sûr que vous avez assez de mémoire dans votre ordinateur avec cela fait,
j'espère que vous avez apprécié et j'espère que vous êtes en train de commettre les changements que vous faites. Et cela dit, je vous verrai dans la prochaine vidéo où nous allons tester notre système de nivellement. Alors, à vous voir.
42. Test de niveau: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous avons créé un moyen d'augmenter ou de tester notre expérience pour le niveau suivant en augmentant la quantité d'expérience. Donc, comme vous pouvez le voir en ce moment, nous sommes au niveau un. Pour arriver au niveau 2, nous avons besoin de 100, donc nous appuyons sur la touche L. Vous pouvez voir que nous avons à jouer ou niveau 2. Maintenant, nous avons besoin d'un 123. Alors, voilà. Pour atteindre le niveau 4, nous avons besoin de 344, donc nous continuons à augmenter jusqu'au niveau 4. Alors ne perdons plus de temps et commençons. Oh, maintenant nous voulons tester notre système de nivellement. Et allons dans notre script ici et les statistiques des joueurs. Et nous allons créer une nouvelle méthode. Donc, cette méthode va être un vide public, ajoutez XP. Et ici, nous allons lui dire la nième quantité d'EXP. Vous pouvez ajouter la quantité d'XP à ajouter, mais pour l'instant, continuons à le faire. La prochaine chose, ce que nous allons faire, c'est chaque fois que
nous appelons cette méthode, nous allons obtenir notre expérience actuelle et nous allons y ajouter la quantité d'attente à ajouter. Donc, nous nous souvenons que ce plus est égal à d'avant. C' est la même chose que de dire que le x b actuel est égal à la vitesse actuelle plus la quantité d'XP. Ok, super. Maintenant, la prochaine chose que nous voulons faire est une fois que nous avons ajouté la quantité d'EXP, nous voulons vérifier si le courant est
supérieur à l'EXP pour chaque niveau du joueur. Ensuite, nous voulons aller de l'avant et tout, retirer de l'EXP actuel moins égal à l'EXP pour chaque niveau sur le niveau du joueur. Et puis nous allons vouloir incrémenter le niveau du joueur d'un. Alors, voilà. Pourquoi on retire et ici l'EXP ? Parce que, comme vous le savez, par exemple, supposons que vous avez cumulé 480 XP et que vous voulez passer au niveau suivant. Vous ne gardez pas tout avec vous n'allez pas au niveau suivant qui, pourrait nécessiter 600. Donc tu ne gardes pas avec toi les 480 et tu n'as besoin que de 200. Vous devrez revenir en arrière et ou supprimer le montant déjà que vous avez. Et nous ne voulons pas le mettre à 0. Parce que disons par exemple, nous voulons donner le choix au joueur de monter ou non, tout comme un Dark Souls. Peut-être que nous ne voulons pas le rendre obligatoire, donc nous ne voulons pas le réinitialiser à 0. Nous supprimons simplement la quantité d'expérience nécessaire pour passer au niveau suivant. Donc c'est notre méthode, c'est tout ce que nous devons faire. Et je vais lancer un défi pour appeler cette méthode et mettre à jour. Utilisez donc l'entrée d'une clé et mettez à jour pour ajouter de l'XP à votre joueur. Je vous recommande de mettre la vidéo en pause et de faire le défi. Ou tu peux voir la main que je vais te fournir. On l'a déjà fait. Mettez la vidéo en pause dès maintenant, passez au défi. Ou utilisez le point d'entrée, obtenez le code keydown et utilisez l'une des touches. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Donc une mise à jour. Nous allons vérifier si le point d'entrée obtenir la clé vers le bas. Et avec un code clé de, utilisons L parce que c'est le nivellement vers le haut. Et ce que nous allons faire, c'est ajouter de l'XP et nous en ajouterons 100. Donc je suppose que je 100 est une bonne quantité à ajouter. Avant de passer à autre chose, il y a quelque chose qui me dérange. Le nom XP pour chaque niveau. N' est-ce pas une bonne représentation ? Ce devrait être l'exp E pour le niveau suivant. Donc XP pour le niveau suivant, il représente la bataille, ce que nous entendons par ce tableau. Donc, l'XP pour atteindre le niveau suivant est ceci. Ok, alors de retour à Unity et allons de l'avant et exécutons le code. Donc, vous pouvez voir que le courant est 36 et nous avons besoin de 100. Donc, si nous avions l'alcène, vous remarquerez que maintenant nous sommes au niveau 2 et ici, et l'XP est toujours 36. Pourquoi c'est ça ? Eh bien, parce que nous sommes passés du niveau 0 au niveau 1 et nous enlevons le 100. Donc maintenant, si on avait la LD une fois de plus, tu y vas. Nous sommes toujours au niveau 2 parce que nous avons besoin d'un 123. Maintenant, nous devrions passer au niveau 3. Oui, on y va. Niveau 3 et je crois qu'on a soustrait 223 du nombre qu'on a obtenu. C' est pour ça qu'il nous reste 13 à nouveau. Nous avons donc besoin de 344 pour passer au niveau suivant. Maintenant, nous allons à pour et avec un XP actuel 69. Très gentil. Encore une fois, essayons de niveau jusqu'au niveau cinq, ce qui nécessite 470 à 469. Nous avons juste besoin d'un peu plus donc nous allons ajouter un peu d'EXP. Voilà, tu y vas. Nous sommes au niveau 5 avec un XP actuel de 1970. Ainsi, comme vous pouvez le voir, notre méthode de nivellement fonctionne complètement bien. Donc j'espère que vous apprécierez et je vous verrai dans la prochaine vidéo où nous
aurons réellement un impact sur les statistiques que nous avons sur le joueur après chaque niveau.
43. Amélioration améliorée les statistiques: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons non seulement augmenter notre niveau pour le plaisir,
mais aussi augmenter nos statistiques à mesure que nous augmenterons de niveaux. Donc maintenant, vous verrez que nous sommes au niveau une heure max, HP est 100, maxmin de 30, dextérité 10 défense 30. Et maintenant je vais appuyer sur L et vous gardez les yeux sur les statistiques de notre démon ou joueur. Ainsi, comme vous pouvez le voir que nous augmentons notre dextérité, la défense et Max HP augmentent de différentes manières. Alors ne perdons plus de temps et mettons en œuvre ces changements dans notre jeu. Oh, comme nous savons un RPG jeux, quand notre niveau augmente, nous avons besoin d'avoir plus de force,
plus de moyens de nous défendre, plus de HP et plus de mana ou la puissance de la magie. Nous allons donc l'ajouter ou l'intégrer dans notre nivellement. Alors allons dans notre script et nous ouvrons ici. Où sommes-nous ? Ok, donc à chaque fois qu'on augmente le niveau, on va faire quelque chose de différent. Nous voulons augmenter la dextérité et la défense, mais pas à chaque fois. Nous voulons vérifier si le niveau de joueur auquel nous sommes actuellement est divisible par deux. Et qu'est-ce que cela signifie ? Connaissez-vous le signe pour modulo ? Modulo ceci divise le niveau du joueur par 2 et voit s'il y a un résidu. Y a-t-il un autre terme ? Par exemple, si le niveau de joueur est 3 divisé par 2 à laisse un, il y a
donc un autre nombre. Et quand nous divisons, par exemple, un nombre pair par 2, nous avons 0. Donc, quand un niveau égal arrive, nous allons augmenter la dextérité d'un. Sinon. Si c'est un niveau étrange, alors nous allons augmenter la différence d'un. Donc, chaque niveau nous avons soit la dextérité ou la défense augmente d'un. Et que pouvons-nous ajouter d'autre ? Tout d'abord, allons de l'avant et testons ceci. On le sauve. Faisons en sorte qu'on l'ait sauvé à Unity. Nous allons exécuter notre jeu de sorte que vous pouvez le voir, notre dextérité et la défense ou 30, Nous allons faire ce plus petit. Voyons quand on se met à niveau pour la première fois. Donc dix par 30, voilà, parce que nous sommes au niveau 2, sont des augmentations de dextérité. Puis notre différence, puis notre dextérité par rapport à notre défense, dextérité, défense, etc. Comme vous pouvez le voir, nous augmentons lentement nos statistiques de joueurs. Maintenant, l'autre chose que nous pouvons augmenter est le maximum, HP et TMax Mano que notre joueur peut avoir. Alors je vais vous lancer un défi. Et votre défi sera d'augmenter le HP et le mono. Augmentez donc le maximum de PV à chaque niveau. Multipliez le PV maximum par point zéro. Je vais juste mettre un nombre arbitraire ou tout autre rapport que vous jugez approprié et m'assurer de le convertir en un entier. Faites de même pour les moines. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bon, bienvenue. Donc, après avoir augmenté la dextérité et la défense, nous allons obtenir le maximum de PV. Et ça va être égal à Math point floor à int. Parce que nous allons utiliser le maximum HP que nous avions précédemment. Et nous allons le multiplier par combien ai-je dit est 1.06 ? Oui. C' est ça. 0.6 F. Oui, on y va. Et comme nous le savons, chaque fois que
nous montons, nous voulons régler le HP actuel au maximum. Donc tous les jeux ne le font pas, mais certains, ou la plupart des jeux réellement chaque fois que vous niveau de votre HP max comme un petit cadeau, le HP actuel que votre annonce va au maximum HP à votre nouveau HP Max. Et on va faire de même pour les manières. Donc je vais dupliquer ça, a quelques anthères et la manne max aura un rapport différent. Alors peut-être, rendons ça peut-être un peu petit. Tu sais quoi, faisons ce point 18 et ce 1.06. Donc nous ne voulons pas beaucoup de mono supplémentaire. Et le Mano
actuel, Mano actuel devient le maximum. On y va. Sauve ça. De retour à Unity. Attendez que ces crypto
compilent, exécutez le code et exécutez le jeu. Et voyons, quand on frappera L, tu y vas. Le HP max est maintenant 117, le courant est 117 et les maxima augmenté, mais aussi. Alors on y va, tu y vas. Vous pouvez voir que nous augmentons lentement le mana,
mais à un moment donné, nous allons déplacer non seulement 1, Nous allons déplacer plusieurs points. Voilà, tu y vas. Maintenant, nous allons augmenter de deux et maintenant nous en sommes encore à deux. Toujours jusqu'à un certain point ? Oui. On y va. D' accord. D'abord encore à deux et à un moment donné, je crois que nous allons passer à trois niveaux. Non. Allez, allez, allez, allez, allez. D'accord. Je crois que c'était trois. Eh bien, c'est fait. J' espère que vous avez apprécié assurez-vous de valider vos changements. Et je te vois dans la prochaine vidéo.
44. Gestionnaire Game: Oh, ok, donc nous voulons garder une trace de plusieurs couches avec leurs propres statistiques parce que plus tard, vous verrez dans notre système de combat que nous avons plusieurs joueurs, plusieurs ennemis s'attaquant, donc nous pouvons garder une trace d'eux sur notre joueur principal, qui est Jimmy le démon. Nous voulons garder une trace d'eux sur un objet de jeu séparé, une entité ou un script, qui va être notre gestionnaire de jeu. Donc la première chose que nous allons faire est de créer un objet de jeu vide appelé The Game Manager, et nous allons réinitialiser sa position. Ce n'est pas obligatoire, mais j'aime ça pour que nous sachions toujours où il est. Donc ce n'est pas quelque part au loin. Et nous allons aller de l'avant et R scripts ou cliquez avec le bouton droit de la souris créer un script C-Sharp appelé Game Manager. À Enter. Attendez qu'il se compile et vous pouvez voir qu'il a une icône différente dessus. Et c'est unique pour les gestionnaires de jeux. Donc, Unity sait que c'est un script très important qui va être presque tous les jeux. Alors voilà, vous pouvez le voir ici. Double-cliquez. Et qu'est-ce qu'on va faire ici ? Tout d'abord, nous allons vouloir en
faire une instance statique publique parce que nous allons l'appeler beaucoup. Donc statique publique, gestionnaire de jeu et instance. Super. Et ensuite, nous allons créer un champ sérialisé qui gardera une trace de tous les joueurs. Donc, les statistiques des joueurs, ce sera bien sûr un tableau, et nous l'appellerons les statistiques des joueurs. Ok, super. Maintenant et commencez, nous allons nous assurer que l'instance est égale à ceci. Nous ne voulons pas détruire Onload. Donc nous l'avons déjà fait quand nous voulons aller sur une scène différente. On ne veut pas détruire ça. Et nous allons aussi en faire un moment notre joueur, donc nous allons en faire un modèle singleton. Alors ouvrons le joueur. Et où sont les joueurs ? On y va. Ouvrez le script et copions ceci. Coller. Exactement la même chose. Et le gestionnaire de jeu, voilà. Et c'est tout. C' est tout ce qu'on doit faire. Maintenant. À partir d'ici, il y a deux façons d'y aller. La première façon est chaque fois que nous arrivons à une certaine carte ou plus tard sur une certaine grotte et redémarrons face aux ennemis. Vous pouvez aller de l'avant et disons, Comment puis-je dire appeler tous les joueurs disponibles avec une stat de joueur pour se battre avec vous. Donc, par exemple, disons que nous avons le guérisseur ici. Nous pouvons ajouter un joueur qui à lui ou à elle. Et nous pouvons ajouter un autre personnage, disons le guerrier. Et on lui ajoute une statistique aussi. Et disons que nous rencontrons une sorte de monstre et notre monde en marchant, alors nous devons le combattre. Donc tous les joueurs qui sont dans cette scène viendront à l'aide de notre démon Jimmy. C' est le premier mécanicien à le faire. Donc, la façon dont nous faisons cela est que nous allons aller de l'avant, va remplir les statistiques de joueur va être égal à trouver des objets de type et ses objets ne trouvent pas Object, trouver des objets de type. Alors qu'il, comme vous pouvez le voir, c'est des objets de type. Et cela renvoie un, tous les objets que nous pouvons trouver qui sont sous les statistiques du joueur. Donc, nous allons trouver tous les objets des statistiques de joueur de type et les ajouter au tableau de statistiques de joueur. Maintenant, c'est une façon. Dans l'autre sens, comme nous allons de l'avant et remplissons ce champ sérialisé manuellement. Par exemple, disons que nous ne voulons pas ajouter le guérisseur. Donc, par exemple ici, nous allons ajouter le premier sera le joueur, et le second sera, par exemple,
disons, donnons des statistiques de joueur au guérisseur et à la BC. Donc, vous pouvez voir qu'il a des statistiques de joueur. On peut les changer. Disons que nous faisons de la dextérité à la défense sept et maximum 200 et dans les coulisses 30, et ainsi de suite et ainsi de suite. Donc on va changer ça pour quel est le nom de Hillary ? Sarah. Donc plusieurs du guérisseur. Et disons que lorsque nous lançons le jeu, nous pouvons trouver tous les objets du jeu. Et nous obtenons Sarah et Jimmy, ou nous pouvons faire l'inverse et Indie Game Manager, nous ajoutons simplement le guérisseur juste ici. Et nous pouvons attacher le joueur sous le gestionnaire de jeu et le guérisseur sous le gestionnaire de jeu et les emmener avec nous à travers chaque C. Donc, cela dépendra de la façon dont vous voulez que votre jeu fonctionne. Je vous donne la pleine capacité, mais assurez-vous d'utiliser au moins un d'entre eux. Je préfère trouver n'importe qui qui se trouve dans les environs et les ajouter. Mais cela nécessitera un peu de garder une trace du nombre de joueurs qu'il y a. Vous ne voulez pas ajouter, disons 500 joueurs à votre jeu. Donc, avec cela dit, je vais vous laisser le choix. n'y a pas de défi dans cette vidéo, juste ça. Et voyons, dans Game Manager, je vais supprimer celui-ci et celui-ci. Et maintenant, si nous courons notre jeu, vous verrez que nous devrions trouver le guérisseur et le joueur est tous les deux ici parce que nous avons une statistique de joueur sur chacun d'eux. Donc j'espère que vous avez apprécié, si vous appréciez les scores et que
vous m'aimez comme instructeur pour prendre le temps de laisser un commentaire, ça m'aide beaucoup. Cela dit, je te verrai dans la prochaine vidéo.
45. Section 7 : Menu UI: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons créer un menu. Comme vous pouvez le voir, nous avons créé un menu. Nous avons créé plusieurs boutons et nous les avons tous placés sous un seul objet bouton. J' ai essayé de les espacer autant que possible. Et maintenant, si nous cliquons sur Maximiser sur Play, juste pour que nous puissions le voir, beaucoup mieux. Ram, et voilà. Vous pouvez voir que nous avons des éléments, statistiques, Enregistrer, Fermer et Quitter bouton. Nous n'avons toujours rien à montrer pour ça, mais pour l'instant cela va faire. Alors. Ne perdons plus de temps et commençons. Oh, d'accord, alors il est temps de créer un menu. Jusqu' à présent, nous avons seulement eu le panneau de dialogue va garder cela hors de la voie. Maintenant, il est temps de créer un menu. Et un menu aura beaucoup de choses dedans. Nous aurons l'inventaire, un bouton de sauvegarde, un bouton et ainsi de suite. Alors commençons. La première chose que nous devons faire est de faire un clic droit ici et allons à vous i, et nous allons créer un, Où est-ce un panneau ? Maintenant, nous avons un panel. Nous allons aller de l'avant et l'augmenter au maximum. Et nous allons lui donner le contexte que nous avons. Donc, nous allons ajouter l'arrière-plan et voilà. Donc ça va être notre menu. Si vous voulez, vous pouvez faire juste un peu plus petit, juste un peu pour que nous puissions voir peut-être les bords de notre gain. Et voilà. Alors peut-être un centimètre, voilà. Donc, ce sera le fond de notre jeu. Et assurez-vous que la résolution est 1920 d'ici 1080, comme l'échelle de notre toile. La prochaine chose que nous allons faire est d'ajouter un bouton à ce panneau. Et avant de le faire, changeons ceci au menu. Maintenant, nous avons un menu et allons de l'avant et ajouter un bouton ici. Donc, bouton Trouver. Donc, nous avons un bouton et ce que nous allons faire est que nous allons obtenir ce bouton, déplacer ici et nous allons devoir ajouter une sorte de fond pour le rendre un peu meilleur. Et comme arrière-plan de bouton, nous allons utiliser l'une des ressources que je nous ai fournies. Alors faites glisser ceci ici, et maintenant nous pouvons le faire glisser sur l'image du bouton. Et voilà, nous avons un bouton très cool. Maintenant, que faire sur le texte ? Il suffit de supprimer le texte, cliquez avec le bouton droit sur le bas. Et nous allons ajouter notre propre texte Mesh Pro. Nous allons l'ancrer à notre non, Nous ne sommes pas précis. Nous allons y ajouter la police. Donc, l'outil de texte ajoute la police ici. Nous allons le rendre complètement sombre. Alors voilà, c'est complètement noir. On va appeler ça. Donc, les objets. Et allons de l'avant et faisons en sorte que le texte corresponde au bon endroit. Et nous allons également changer la taille du bouton. Alors mettons-les,
ces articles. Fais-le ainsi. Et nous allons, prenons le bouton, le
rendre un peu plus grand. Et parce que nous allons avoir combien de boutons ? 12345 boutons. Assurez-vous donc d'économiser suffisamment d'espace pour cinq boutons. Je vais essayer aussi bien que je peux. C' est donc le premier bouton, les éléments. On y va. Et maintenant, il est temps de relever un défi pour vous. Et votre défi est de terminer le manuel. Donc, créez le reste des boutons. Vous pouvez dupliquer le bouton après avoir tout configuré. La mienne n'est pas encore parfaite. Je peux changer quelques choses et je vais vous donner un petit indice. Vous aurez besoin des statistiques,
du Save, des vêtements et de la cuvette. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Oh, ok, bienvenue. Donc quelques choses que je vais changer ici, je vais soit le sous-jacent est déjà présent. Voyons voir, voyons à quoi ça ressemble de loin. Donc, si j'augmente le décalage sur le X, décalé sur le y, non, cela n'aide pas à garder cela à 0 tonnes d'Archytas. Donc j'expérimente juste voir ce qui marche, voir ce qui ne fonctionne pas. Et si vous avez déjà fait ce que vous deviez faire, vous pouvez sauter et terminer. Je vais juste y aller et peut-être ajouter une lueur. Que se passerait-il si j'ajouterais le globe à travers ? Non, je ne pense pas qu'ajouter de la colle soit une bonne idée. Laisse-moi juste rendre ça un peu plus grand. Donc je vais augmenter la taille. Peut-être le rendre audacieux. Et la taille de la police sera plus grande. Alors, voilà. Des objets qui semblent bien. Et nous allons configurer cela correctement afin que déplacer les éléments. Donc voilà, les articles, je crois que ce sera assez bon. Peut-être le rétrécir. Voilà, tu y vas. Je veux juste que le crâne soit toujours beau. Alors essayons ça si bien. Cela a changé le nom du bouton, l'outil, les éléments, le bouton ou le bouton de l'article ou nous pouvons l'appeler éléments. Pas de soucis à ce sujet. Nous allons donc dupliquer ceci, Ajouter à côté de lui, dupliquer à nouveau, et dupliquer cela à nouveau. Et combien de boutons y a-t-il ? Cinq. Alors dupliquez cela à nouveau, et voilà. C' est le dernier bouton, et évidemment ils ne sont pas adaptés. Donc je ne vous ennuierai pas avec tout cela. Je vais arrêter la vidéo maintenant. Et le suivant, nous continuerons à créer notre menu. Alors je te verrai là-bas.
46. Informations de personnage: Bienvenue à mes collègues développeurs de jeux. Et dans cette vidéo, nous mettons à jour notre menu en créant des informations sur les personnages. Donc, si nous courons notre jeu, vous verrez que nous avons une très belle mise en page du personnage et de la formation. Nous avons le HP, mana et XP actuel était l'expérience que nous avons besoin
au niveau suivant avec l'image du joueur avec son nom en dessous et un nombre très précis. Nous allons donc apprendre beaucoup dans cette vidéo. C' est un peu long. Et la création d'interface utilisateur est toujours un processus long. Vous aurez besoin de prendre encore plus de temps pour que tout soit mieux dans votre jeu. Alors ne perdons plus de temps et commençons. Oh, ok, donc ce qu'on veut faire dans cette vidéo c'est créer quelques panneaux et ici peut-être deux, peut-être trois. Je ne suis pas sûr que nous verrons et ajouterons tous les personnages et tomberons dedans. Et pas n'importe quel personnage. Et pour le caractère et la chute des statistiques de joueur sur les joueurs qui ont des statistiques de joueur. Donc la première chose qu'on va faire, et je l'ai déjà fait. J' ai créé un objet de jeu qui s'appelle Boutons. J' ai ajouté tous les boutons en dessous, alors assurez-vous de le faire. La prochaine chose que nous allons faire est de créer un, un autre panneau sur le menu. Et ça va représenter l'arrière-plan de l'info du personnage. Alors, on va vous voir. Je vais chercher le panneau. Comme toujours, nous appellerons cela le personnage NFO. Nfo. Et nous allons changer l'arrière-plan pour utiliser l'élément que nous avons. Voilà, tu y vas. Nous allons augmenter l'Alpha. Il est donc complètement non transparent et nous allons le rendre très petit. Donc ici, ce sera votre choix. Si vous voulez avoir, disons trois, vous aurez besoin de le rendre un peu plus petit comme vous pouvez le voir, mais aussi assurez-vous de le rendre un peu plus grand pour que nous puissions tout mettre ici. Supprimer, oups, ce n'était pas prévu. Supprimons donc ceux-ci, récupérez le personnage et suivez-les à nouveau. Voyons si trois vont comme ça. D' accord ? Peut-être besoin de le rendre un peu plus petit. Ok, alors laissez-moi encore les supprimer. Je vais juste utiliser celui-là. Et on va l'installer ici, le rendre juste un peu plus petit. Ok, alors qu'est-ce que ça a fait ? La prochaine chose que nous allons faire est que nous allons aller de l'avant et essayer de représenter toutes les informations du joueur ici. Alors que voulons-nous représenter ? Nous voulons représenter le HP, le mana, le niveau actuel, l'expérience dont nous avons besoin pour passer au niveau suivant. Et je pense que c'est tout ce qu'il nous faut. Si nous avons besoin de quelque chose d'autre, ajoutera plus tard. Alors commençons. Ou nous avons aussi besoin de cette fierté du personnage ici avec le nom. Alors commençons par ça. On va y aller. Renommons ceci en caractère NFO. Donc, c'est juste le caractère NFO. Et nous allons ajouter une image ici, donc nous allons cliquer avec le bouton droit de la souris, aller vers vous. Je vais à l'image. Voilà, tu y vas. Et allons chercher l'image de notre personnage. Donc, on va juste utiliser un de ces. Voyons l'image, alors que l'image, et nous allons la faire glisser ici. Nous allons cliquer sur préserver le ratio d'aspect, et je vais le définir sur le natif, puis le rendre plus petit. Donc, comme vous pouvez le voir, lorsque nous conservons l'aspect ou la boucle, mettons-le sur natif. Maintenant, définissez l'aspect de conservation, et maintenant nous devrions être en mesure de le rendre un peu plus petit. Donc, comme vous pouvez le voir, il préserve la taille et nous allons juste ajuster, rendre aussi grand. Je suppose. Donc je ne vais pas essayer de rendre ça parfait. Ça va être ton boulot. Peut-être que je le ferai plus tard parce que je ne veux pas que la vidéo traîne trop longtemps. La prochaine chose, c'est qu'on va ajouter le nom. Donc, nous allons cliquer avec le bouton droit ici, aller vers vous. J' ajoute un texte Nash Pro. Et allons de l'avant et utilisons la couleur médiévale. La police médiévale. Donc le médiéval, on appellera ça le nom de la voiture. Et nous allons juste écrire ici le nom du joueur. Et nous allons l'ajouter sous le sprite de joueur juste ici. Assurez-vous qu'il est assez petit pour s'adapter et qu'il est complètement noir. Oui, on y va. Et on va le rendre audacieux. Et zoomer. Voyons à quoi ça ressemble et c'est sous le joueur. Ok, super. Maintenant, qu'est-ce qu'on a besoin de faire d'autre ? Nous devons ajouter le HP. Dupliquons ceci et déplacons le personnage ici. Donc, ce sera le personnage HP, et ce sera l'image du personnage. Et voyons ce que nous avons ici. Donc, le personnage HP que nous allons faire. Alors et qu'est-ce qu'on a d'autre ? Voyons voir, Nous allons rendre ce plus petit, assurez-vous que ceux-ci alignés. Ok, donc ici, on va taper deux points HP. Et je pense que ce n'est pas la meilleure police à utiliser pour cela. Si vous voulez changer la police, je recommande que si vous trouvez que cette police
n'est pas assez bonne ou n'a pas l'air assez nette à distance. Et qu'avons-nous d'autre ? Eh bien, nous avons besoin du mono, donc nous allons dupliquer ça. On aura le mana et ici, donc le mano du personnage. Et on va écrire ici mono. Et nous allons juste ajouter quelque chose pour vous assurer que tout va, ajoutera 100 sur 100. Donc maintenant, nous pouvons voir qu'il doit être représenté un peu plus grand. Et le HP doit également changer. Donc on va faire 100 par 100. Et vous pouvez voir que la police actuelle n'a
pas de caractères spéciaux pour les nombres. Donc, si vous voulez en ajouter un autre, je recommande que si vous voulez un nombre plus cool regardant, mais je pense que ceux-ci sont assez bons pour l'instant. Donc nous devons aussi avoir l'XP actuel, donc nous allons dupliquer le personnage Manon aussi. On y va. Nous allons le déplacer apparaître. Et nous allons nommer ça le personnage, le thème actuel. Et nous allons écrire ici XP actuel. Et rendons ça plus grand. On y va. Nous allons augmenter la taille, nous assurer qu'ils sont tous adaptés. On va l'installer en haut à droite, l'homme au milieu. Ok, ça ne bouge pas. Nous devons déplacer l'objet entier. Et on y va. Donc maintenant, nous avons le HP, le mana, et le courant changera cela en un Nope, je voulais dire sur l'XP actuel. Ok, on y va. Et enfin, nous voulons voir l'expérience dont nous avons besoin pour le prochain niveau. Donc nous allons faire quelque chose de spécial à ce sujet. D' abord, nous allons dupliquer ça. On l'appellera l'XP au niveau suivant. Oh, allez caractère. Xp au niveau suivant, et XP au niveau suivant. Et au lieu de le représenter d'une manière numérique normale, nous allons le représenter à l'aide d'un curseur. Donc, avant de le faire, permettez-moi de le rendre un peu plus petit et de réduire les espaces entre les lettres juste pour le rendre plus trouvable. Il suffit de le changer autour de ça. Et peut-être qu'ils ont un peu de distance entre les mots. Ok, donc c'est assez bien maintenant qu'il est temps d'ajouter un curseur. Donc, nous allons faire un clic droit sur le personnage NFO, allez à votre oeil. Et vous pouvez voir ici que nous avons la possibilité d'ajouter un curseur, recueillir sur cela. Donc maintenant, nous avons un curseur juste ici pour représenter l'XP. Et maintenant, comment allons-nous changer ça ? Permettez-moi de cliquer sur le personnage au niveau suivant, descendre un peu, et de prendre le curseur, mettre sur le même niveau, et de le rendre un peu plus grand. Alors, voilà. Mais ce curseur est très ennuyeux. Nous voulons le rendre plus excitant. Alors ouvrons le curseur et nous allons supprimer le curseur de poignée ici. Alors supprimons ça. L' image d'arrière-plan va changer et le remplissage aussi. Mais allons-y et ajoutons notre propre interface utilisateur. Donc je vous ai fourni ça. C' est une très belle interface utilisateur. Ils sont les mêmes que celui-ci du même dossier. Nous allons donc ajouter le remplissage bleu à représenter ou vous pouvez ajouter l'orange. Je pense que je vais ajouter l'orange et l'arrière-plan. Nous allons donc dans les sprites, les éléments de l'interface utilisateur, et faisons glisser l'arrière-plan du curseur pour l'orange et le jaune. Et nous allons juste faire glisser le bleu et le rouge les utilisera plus tard. Donc maintenant, nous avons ces. Revenons dans notre curseur, dans l'arrière-plan. Ajoutons l'image d'arrière-plan à l'arrière-plan du curseur. Et dans le film, vous pouvez voir que nous avons aussi un sprite d'interface utilisateur. Ajoutons le remplissage orange. Donc maintenant, vous pouvez voir si nous cliquons sur le curseur, vous remarquerez si nous faisons défiler vers le bas dans l'Inspecteur, nous avons la valeur. Si nous augmentons la valeur, nous y allons. Nous pouvons voir que nous pouvons déplacer cette ligne orange pour arriver à la fin. Mais nous avons encore quelques changements à faire. Alors, cliquez sur l'arrière-plan. Si vous regardez dans la transformation directe, c'est la façon dont Il est représenté. Il est tendu des deux côtés. On ne veut pas ça. Nous voulons maintenir Alt enfoncé et appuyer sur celui dans le coin inférieur droit, et vous pouvez voir qu'il s'étirera de tous les côtés. Ensuite, nous allons à la zone de remplissage dans le film et allons étirer tous les côtés. Voilà, tu y vas. Maintenant, nous pouvons obtenir le curseur. Et si nous augmentons la taille, vous pouvez voir qu'il remplit toute la zone. Si nous allons à la valeur du curseur va maintenant de 0 à la pleine longueur. Mais il y a un léger problème ici. Vous pouvez voir que c'est un peu hors des limites. Pour résoudre ce problème, nous allons dans la zone de remplissage et simplement la déplacer ici et ajusté à notre préférence pour vous assurer que vous ajustez les deux comme vous le souhaitez. Alors que la fin et cliquez sur la zone de remplissage et ici aussi, et là vous allez. Donc pour étirer cela pour tout remplir. Et vous pouvez également étirer cela pour remplir toute l'image sprite. Ok, alors rendons ça un peu plus gros. Et voilà. Maintenant, nous avons nos informations de personnages, mais il y a juste une chose que nous voulons ajouter et c'est quelque chose qui est disponible dans tous les jeux où nous avons des curseurs qui représentent combien nous devons encore aller. Et c'est un nombre précis sur ce curseur. Donc, je vais vous lancer un défi et c'est d'ajouter du texte. Ajoutez donc un texte pour représenter avec précision l'XP sur le curseur pour éviter toute confusion. Et vous devrez dupliquer le personnage et tomber pour deux autres personnages et notre jeu. Alors mettez la vidéo en pause dès maintenant sous forme de texte XP et dupliquez le personnage sur la photo. avoir deux de plus. Oh, ok, bienvenue. On a besoin d'un numéro. On a le curseur. Ça s'appelle ça, le curseur d'exposition. Et allons au personnage et peut-être dupliquer, ou peut-être qu'on devrait faire ça un peu plus grand. Je ne suis pas sûr qu'on ait besoin de travailler sur le petit. Et nous dirons que c'est 100 000 000. Et nous allons le mettre juste ici sur le numéro au fur et à mesure. Donc ça ne me permet pas, peut-être qu'il en a besoin plus de 100. Il suffit de mettre un autre 0 supplémentaire ici. Et voyons comment on peut ajuster ça. On y va. C' est donc un nombre très agréable, propre qui nous permet de savoir combien nous avons vraiment aimé en dehors du curseur. Donc je vais augmenter la taille des deux côtés. Et enfin, la dernière chose que nous devons faire est que nous devons
dupliquer ce personnage NFO et le définir ici, dupliqué à nouveau, le définir ici. Et si vous voulez en avoir quatre, eh bien, vous devrez faire de l'espace ou plus tard vous apprendrez une technique où nous pouvons changer la disposition de tout. Peut-être ajouter une sorte de bouton qui nous permet d'aller à la page suivante. C' est une possibilité si vous voulez avoir plus de trois caractères. Mais comme vous pouvez le voir, si nous revenons en arrière, si nous cliquons sur maximiser sur le jeu, exécuter notre jeu, et là vous allez. Ça a l'air vraiment, vraiment sympa, surtout quand on voit des personnages différents. Nous avons donc le HP, la manne, l'XP actuel, l'expérience au niveau supérieur. Et c'est un curseur dynamique que vous verrez comment nous pouvons contrôler plus tard. Dans la vidéo suivante, nous allons activer et désactiver le menu en fonction de l'entrée du lecteur. Parce que pour l'instant, comme vous pouvez le voir, c'est toujours dans notre visage et nous ne voulons pas cela. Je te vois dans la prochaine vidéo.
47. Gestionnaire de menu: Bienvenue, mes collègues développeurs de jeux. Comme vous pouvez le voir, nous n'avons plus le menu. Eh bien, où est-ce qu'il est allé ? Allons le chercher avec Jimmy. n'y a pas de menu, mais si on appuie sur une certaine touche, oui, on y va. Nous avons le menu, mais si nous passons la même clé, elle disparaît, apparaît, disparaît. Et nous pouvons le faire toute la journée. Alors ne perdons plus de temps et commençons. Oh, affaire. Donc, actuellement, notre menu semble assez bon. Bien sûr, nous ajouterons plus tard, mais pour l'instant, nous avons besoin d'un moyen de fermer ce menu et d'ouvrir. Donc, nous allons le faire et notre gestionnaire de menu évidemment. Donc, double-cliquez sur le gestionnaire de menu et ouvrez et Visual Studio, la première chose dont nous avons besoin est évidemment une référence au menu. Donc nous allons dupliquer cette ligne. Et nous allons créer une variable d'objet de jeu. Et ce sera le manuel simplement menu. Ensuite, nous avons besoin d'un moyen de nous assurer que nous allumons et éteignons le menu en utilisant une sorte de clé. Et ça doit être la même clé. Nous n'avons donc pas besoin d'utiliser, par
exemple, la touche M pour ouvrir le menu. Et puis le, par exemple, je ne sais pas, crête pour fermer le menu, ce n'est pas très utile. Nous avons besoin d'une clé pour le faire, et je vais vous lancer un défi. Et votre défi sera de vérifier les entrées, activer et désactiver le menu en utilisant la touche M ou n'importe quelle touche de votre choix. Parce que bien, menu commence par, et donc mg est le meilleur à utiliser dans la mise à jour. Donc je pense que nous avons supprimé la mise à jour. Vous ne pouvez utiliser qu'une seule clé. Comme je l'ai dit. Je vais vous donner un petit indice sur la façon dont vous pouvez utiliser une seule clé si vous savez déjà ou si vous ne savez pas et que vous voulez vous défier, arrêtez dès maintenant, passez au défi. Si ce n'est pas le cas, vérifiez si le menu est actif dans la hiérarchie. Vous devrez donc créer une condition. S' il est actif dans la hiérarchie, le désactivera. S' il n'est pas actif, nous l'activerons et vous savez déjà comment définir quelque chose d'actif. C' est un autre indice. Alors arrêtez la vidéo dès maintenant et allez faire le défi. O K ton retour de bienvenue. Donc une heure de codage ici en début, nous allons créer la mise à jour. Et vous pouvez voir qu'il itère immédiatement pour nous. Nous n'avons pas besoin de taper vide privé, suffit de taper la mise à jour et de cliquer sur l'onglet. Donc, si le point de menu est actif ou actif et hiérarchie, alors nous allons définir le point de menu actif sur false else. Et je viens de remarquer que je n'ai même pas tapé l'utilisation de la clé. Donc je vais le faire dès maintenant après avoir fini. Et si ce n'est pas actif dans la hiérarchie que le point de menu défini actif, il va y avoir vrai. Et nous allons envelopper tout cela dans une condition que l'entrée FV obtenir keydown. Et sur un code clé qui est le m, je vais déplacer tous ces éléments en maintenant Alt enfoncé et en utilisant l'onglet d'en-tête des flèches. Et voilà. Donc maintenant et mise à jour, il continue de vérifier si nous avions la touche M, nous allons vérifier si le menu est actif dans la hiérarchie. Nous allons le mettre à faux. Si ce n'est pas le cas, nous le mettrons à vrai. Essayons ça. Donc, je vais tourner le menu. Je vais diriger le jeu. Je vais appuyer sur la touche M et rien ne semble se passer. Pourquoi c'est ça ? Parce que si nous double-cliquez ici, le menu et la hiérarchie active afin que vous puissiez voir n'a pas été affecté. Donc, nous avons oublié de faire l'étape la plus cruciale. Et que dans Canvas, nous devons lui donner le menu Objet. Nous sauverons cela. Nous allons arrêter de maximiser sur Play. Nous allons lancer le jeu. Et quand on a touché la touche M, on y va. Vous pouvez voir que nous avons notre menu. Si on frappe à nouveau la touche M, on y va, ça disparaît, on va et on s'en va. J' espère que ça vous plaira. J' espère que vous engagez vos changements. Je vais tout mettre en scène et je vais les engager. Et si vous appréciez le cours, vous m'aimerez en tant qu'instructeur. S' il vous plaît laissez un commentaire. Ça m'aide beaucoup. Donc avec cela dit, je te verrai dans la prochaine vidéo.
48. Mouvement de stop joueur (encore): Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons empêcher notre joueur de bouger quand il ouvre le menu. Donc, quand nous avons ouvert le menu et nous avons toujours été en mesure de déplacer notre joueur. Alors maintenant, quand nous bougeons dans notre monde, si nous ouvrons le menu, vous verrez que nous ne pouvons plus bouger. Et j'ai fait quelque chose de très bizarre et tu le dois. Donc, je suis capable de contrôler le curseur en utilisant le râteau comme la souris, donc nous allons traiter cela plus tard. Mais pour l'instant, ne perdons plus de temps et commençons. Oh, ok, donc actuellement on a un menu qu'on peut allumer et éteindre. Donc, si nous appuyons sur le MK, vous verrez allumé et éteint. Très bien. Mais le problème est que, au fur et à mesure que
nous avançons, nous pouvons activer la clé et continuer à avancer. Et ce n'est pas quelque chose que nous voulons vraiment. Nous voulons empêcher le joueur de bouger quand il ouvre le menu. Maintenant, certains jeux ont l'option, pas l'option. Eh bien, chaque fois que vous ouvrez le menu dans ces jeux, vous pouvez toujours vous déplacer comme, par
exemple, Dark Souls. Mais nous allons créer quelque chose de différent. On veut que le joueur s'arrête. Donc, nous avons déjà fait quelque chose de similaire à ça. Si nous allons dans le Alors que c'est le contrôleur de dialogue. Ici, vous pouvez voir ici que lorsque nous ouvrons ou quand nous parlons, quand nous commençons la conversation, vous pouvez voir que l'instance de point de joueur, l'Activer est égal à false. Et d'ici là, non, nous le mettons à un autre endroit ici. Donc, nous le mettons à vrai quand nous activons le dialogue, puis revenons à faux quand nous arrêtons de parler. C' est bien. Maintenant, nous devons l'ajouter à un endroit différent, qui est le gestionnaire de menu. Mais il y a un petit problème. Celles-ci pourraient se contredire. Si nous activons le mouvement des joueurs à partir de nombreux endroits, nous pouvons rencontrer des problèmes où, disons que nous arrêtons de bouger ou disons que nous ouvrons le dialogue et que nous ouvrons vous et vous. Maintenant, on peut commencer à marcher. Nous pouvons même tester cela et notre jeu quand nous l'ajoutons au gestionnaire de menu. Donc, nous voulons éviter cela. Nous voulons un endroit centralisé où nous avons arrêté le mouvement des joueurs et quel meilleur endroit que l'utilisation du gestionnaire de jeu. Donc ici, nous allons créer deux variables, un bool public. Et ils vont être le menu du jeu ouvert et la boîte de dialogue ouverte. Et maintenant une mise à jour, nous allons vérifier ces deux-là. Donc, si le menu de jeu Vi ouvert ou la boîte de dialogue ouverte, alors nous allons accéder à l'instance de point de joueur point le mouvement d'activation et le définir sur true. Sinon. Si aucun de ces deux n'est ouvert, alors nous allons définir la troisième instance de désactivation du mouvement sur false ou si l'un d'eux ferme un grand. Maintenant, nous avons un endroit central où nous pouvons arrêter le mouvement, mais nous ne les avons toujours pas assignés. Et ça va faire partie de votre défi. Donc, votre défi est de mettre le booléen au bon endroit. Donc, nous devons empêcher le joueur de se déplacer à deux endroits et nos scripts, donc deux scripts, nous devons arrêter le joueur de bouger. Nous devons ajuster l'un d'eux. Et nous devons les définir en utilisant l'instance de la classe. Et bien sûr, la classe à laquelle je fais allusion est le Game Manager. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Oh, ok, bienvenue. Donc, la première chose ici, quand on appuie sur l'Encke va accéder au gestionnaire de jeu. Instance, pensait que le menu du jeu ouvert et qu'il va être égal à vrai, va dupliquer cette ligne. Nous allons le déplacer vers le bas et nous le mettrons à, ou non, celui-ci devrait être réglé sur false et celui-ci est vrai. Le menu est ouvert comme égal à false. Cela signifie que ce n'est plus vrai et que nous devons activer le mouvement est réglé sur false. D' accord ? Nous allons tester cela dans notre jeu, assurer que la logique fonctionne et quoi d'autre ? C' est vrai, d'accord ? Et la prochaine chose, nous devons le changer dans le contrôleur de dialogue. Donc, au lieu de l'instance de point de joueur définie sur false, nous allons aller dans le gestionnaire de jeu. Point d'instance de point. La boîte de dialogue s'ouvre est égale à false car ici nous avons fini de parler. Donc, les phrases actuelles sont plus grandes que les phrases de dialogue disponibles ou la longueur d'entre elles. La boîte de dialogue est donc fermée. Et ici, lorsque la boîte de dialogue s'ouvre, il s'agit de l'instance de point du gestionnaire de jeu, la boîte de dialogue ouverte définie sur true. Alors allons de l'avant et testons ça. Laisse-moi te montrer une fois de plus. Alors peut-être que tu n'as pas attrapé ça. J' ai déménagé très vite. Voilà, tu y vas. Maintenant, allons dans notre jeu. Faisons jouer et on peut se promener quand on touche la touche M. Oui, tu y vas. On ne peut pas se promener. Vous pouvez le voir de l'herbe, de derrière. Ou nous pouvons double-cliquer sur le lecteur. Et voilà. C' est notre joueur. On a essayé de se déplacer. Oui. Et c'est l'une des caractéristiques d'avoir une, une toile
si énorme. Nous pouvons regarder la toile sur notre menu de jeu, mais encore voir dans la scène correctement ce qui se passe. Ok, alors maintenant on éteint la toile ou le menu. On peut retourner à se promener parfaitement. Allons-y et parlons à notre petit guérisseur ici. Donc on avait la clé. On peut marcher ? Non, on ne peut pas quand on aura fini de parler, oui, on pourra marcher à nouveau. J' espère que ça vous plaira. J' espère que vous sauvegardez vos dépôts et je vous verrai dans la prochaine vidéo.
49. Configurer des statistiques: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons mettre en place toutes les statistiques. Donc, quand nous lançons notre jeu en premier, quand nous avions la touche M, vous remarquerez que nous n'avons que deux panneaux de personnages si nous enlevons maintenant le guérisseur, nous lançons notre jeu. Vous remarquerez que lorsque nous toucherons la touche M, nous n'en avons qu'un seul joueur ou un personnage et notre monde qui a une statistique de joueur sur lui. Alors ne perdons plus de temps. Et nous devons déplacer les statistiques de mise à jour et à l'autre. C' est quelque chose que je vais faire une énorme erreur. Alors ne perdons plus de temps et commençons. Oh, d'accord. Donc, actuellement, laissez-moi activer le menu. Actuellement, nous avons tout mis en place. Donc, nous avons le HP, la quantité de l'XP actuel et ainsi de suite. Tout est mis en place en termes d'éléments d'interface utilisateur. Maintenant, ce dont nous avons besoin, c'est que nous avons besoin de convertir ces éléments d'interface utilisateur et en caractère
réel en utilisant les statistiques de joueur que nous avons sur chacun de nos joueurs. Donc, nous allons le faire dans le gestionnaire de menu. Si nous allons dans le canevas, double-cliquez sur Menu Manager. Et nous avons ce groupe ici. Tout d'abord, nous avons besoin d'une référence aux statistiques des joueurs. Donc, créez un champ sérialisé ici, ce qui va être un, oh, vous savez quoi ? Nous n'avons même pas besoin d'en faire un champ sérialisé. On peut en faire un domaine privé. Et on peut le déplacer ici maintenant et enlever ça. Alors maintenant, nous allons créer un tableau de statistiques de joueur privé, qui va être appelé les statistiques de joueur simplement. La prochaine chose, parce que nous accédons aux éléments de l'interface utilisateur, devra vous assurer que nous avons utilisé l'interface utilisateur du moteur Unity. Et maintenant, nous voulons des références aux différents éléments que nous avons. Donc nous devons les mettre à l'intérieur d'un support, donc un champ sérialisé. Tout d'abord, il va être un texte et un moyen et il va contenir le texte du nom va contenir le texte HP. Et c'est h p texte. Il va avoir le texte de mana,
le texte de niveau, le texte d'XP. Et je pense que c'est tout ce que nous ajouterons à cela si nous trouvons que nous devons le faire et peut-être que je devrais déplacer cela vers le haut ou vers le bas. Non, je vais juste garder ça gardera tous les éléments qui sont ensemble sans aucun espace entre eux. Donc la prochaine chose dont nous avons besoin est un champ sérialisé pour ces curseurs. Donc, un curseur, il va être, bien
sûr un tableau parce que nous avons plusieurs curseurs. Donc XB, curseur est le nom de notre variable, aura besoin d'un tableau de champ sérialisé pour les images. Champ sérialisé dans chaque tableau et le caractère, oops, l'image de caractère. Et de quoi d'autre avons-nous besoin ? Oh, nous devons garder une trace du nombre de panneaux. Donc, actuellement, nous avons trois panneaux statiques, mais disons que nous n'avons qu'un seul joueur avec des statistiques de joueur dans le jeu, ou nous avons deux joueurs. Donc on ne veut pas en avoir un troisième. Cela fera juste tout avec tendresse. Donc, ce que nous ferons, c'est que nous ferons aussi référence à cela. Nous allons donc créer un tableau d'objets de jeu. Et ça va être les panneaux de personnages. Donc panneau de caractères, sauvegardez ça. Maintenant, nous allons tout mettre dans Unity. Donc, si nous allons à la gestion du menu, voir que nous avons tout ici. Nous allons verrouiller ceci et ensuite nous irons au personnage et faux les ouvrira tous. Alors on va ouvrir les trois. Et nous le faisons parce que nous voulons les glisser et les déposer tous. Donc, au lieu d'ajouter chacun, nous allons comme ça. Et au lieu de cela, nous allons, par exemple, le nom du
caractère, le nom du caractère. Et nous les traînerons tous ici. Et ça ne nous permet pas parce que je peux le faire glisser ici ? Non, je ne peux pas y, y, o. donc ce n'est pas une taxe. C' est le MP Pro. Sauvegardez ça. Maintenant, essayons encore ça. Nous choisissons ces trois éléments et nous ne pouvons pas utiliser le MPI Pro parce que nous n'avons pas ajouté les sondes TM utilisant. Alors maintenant, peut-on continuer ? Encore une fois ? Ça me dit qu'il y a une erreur. Espace de noms JMP Pro. J'ai ajouté, nous utilisons le TMP Pro. Quel est le problème ? Voyons voir dans le contrôleur de dialogue, oui, nous allons à JMP Pro, le MPI pro. Je pense que ça va se résoudre en un peu. Text Mesh PRO techs mesh GUI, enregistrez cela. Ok, donc maintenant enfin, nous allons choisir le nom du caractère, le nom du
caractère, le nom du caractère, et le faire glisser sur le texte du nom. Donc, comme vous pouvez le voir, nous y voilà. Le premier est référencé au premier, au second et au troisième. Et cela rendra tout plus facile. Ensuite, nous avons le HB. Donc, HB caractère, HB, caractère HP caractère HB, faites-le glisser dans le texte HB. Alors, voilà. BHP. La prochaine chose est le mano a mano, un mano, mec. Direct et texte. Voilà, tu y vas. Assurez-vous donc que le premier fait référence au premier. Nous avons le texte de niveau. Donc XB actuel, Jacqueline ici, le personnage au curseur de niveau suivant. Donc c'est ordinal, le curseur XP. Faites glisser le curseur dans le curseur XP. L' image du personnage, qui est quelque chose que nous devrons changer. Donc, les images de caractères ou pas changer. Ce que nous devons faire, c'est que nous devons réellement les ajouter statistiques de joueurs
enviés parce que nous ne l'avons pas déjà fait. Les infos du personnage et le panneau de caractères. Et enfin, nous avons le texte XP, XP au niveau suivant. Je pense que c'est ça. Donc le personnage SP2, niveau suivant, je crois que c'est ça. Si on retourne sur notre scène, oui, on y va. Donc tout est maintenant mis en place. Une chose que nous devons faire est d'entrer dans les statistiques des joueurs. Nous devons monter dans le NFO et hériter. Nous allons créer un champ sérialisé, qui va être une image. Et nous n'utilisons pas d'éléments d'interface utilisateur. Donc ça va être une image et ça va être l'image du personnage. Sauvegardez ça à Unity. Où avons-nous des personnages ? Alors fermons la toile une seconde. Va ici. Et maintenant on peut arrêter les verrous ou appuyer sur le journal pour voir à nouveau ce qui se passe ici. Nous avons besoin de l'image, alors que l'image, nous pouvons faire glisser le moteur de rendu sprite. Ça marchera ? Non, nous allons devoir ouvrir, trouver l'image, et faire glisser cette image ici. Et ça ne le prend pas parce que ça doit être un sprite. Donc, comme vous pouvez le voir, je fais aussi beaucoup d'erreurs. Il faut être aussi brillant et on va traîner les guérisseurs Brighton ici. Alors, voilà. Sauvegardez ce back-end. Ou notre joueur aussi. Alors Jimmy, alors que donne-moi ton sprite. Vas-y, sauve ça. Maintenant, je pense que ça marchera. Peut-être que ce ne sera pas juste parce que nous avons besoin de changer l'endroit où il est dans le gestionnaire de menu. Ça devrait être un sprite. On verra ce qui se passe dans un peu. Maintenant, la prochaine chose dont nous avons besoin est que nous avons besoin d'une méthode pour mettre à jour le statut. Donc, nous allons le créer. Donc, avant de fondre l'image, et ici, nous allons créer un vide public, mettre à jour les statistiques. Et que ferons-nous ici ? La première chose, c'est qu'on a besoin des statistiques des joueurs. Donc, nous allons écrire des statistiques de joueur est égal à l'instance de
point de gestionnaire de jeu où les statistiques de joueur peut-on y accéder ? Non, parce que c'est un champ sérialisé, alors que le gestionnaire de jeu, c'est un champ sérialisé. Faisons-le de façon plus professionnelle. Nous allons donc créer un tableau de statistiques de joueur public ou public, et nous l'appellerons les statistiques de joueur get. Et nous allons simplement retourner les statistiques des joueurs. Donc nous y allons et nous devons en faire un tableau parce que son type de retour est un tableau de statistiques de joueurs, pas seulement une statistique de joueur . Le joueur, les statistiques du joueur. Alors, voilà. Maintenant, vous auriez pu éviter cette étape de création d'une méthode. Vous auriez pu simplement changer ceci en public et l'utiliser ensuite. Mais ce n'est pas la façon la plus professionnelle de le faire. Nous ne voulons pas avoir accès aux
statistiques des joueurs parce que nous ne voulons pas pouvoir les modifier. Nous voulons seulement pouvoir les obtenir. Ce n'est pas un problème lorsque vous créez le jeu, mais pour certaines raisons quelque part, vous essayez ou peut-être vous avez juste manipulé les statistiques du joueur un peu. Tu auras beaucoup de problèmes. Donc, en utilisant des méthodes comme celles-ci, vraiment éviter ces types de problèmes. Nous ne voulons pas manipuler les statistiques des joueurs. On veut juste les avoir. Ok, donc avec ça hors du chemin, que devrions-nous faire d'autre ? Si nous allons dans notre gestionnaire de menu devra mettre à jour l'état chaque fois que nous ouvrons le menu. Donc, après avoir ouvert le menu ou avant réellement, mettons à jour les statistiques. Donc mettre à jour les statistiques. Ok, donc finalement ce que nous voulons faire, c'est que nous voulons
aller de l'avant et éteindre tout panneau de caractères qui n'est pas utilisé. Et pour ce faire, je vais vous lancer un défi. Votre défi est donc d'activer les panneaux de personnages. Créez donc une boucle qui passe par les statistiques du joueur et activez le panneau Caractère pour les joueurs disponibles. Donc, la première chose est que vous devez désactiver les panneaux de caractères dans Unity, puis utiliser la boucle pour les rallumer. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Donc on va éteindre tout ça. On va sauver ça ici. On va créer une boucle. Donc, pour int I est égal à 0, pour I moins que VT stats joueur longueur point. Et pour augmenter de 1 à chaque fois. Tout d'abord, imprimons combien on a. Combien d'IA n'est pas nos yeux, les yeux et ici, ok, c'était une mauvaise blague. Nous allons accéder au panneau des personnages à la position I. Et nous allons activer. Vrai. Sauvegardez ça. Maintenant, revenons ici, voyons si ça marche. Laisse-moi éteindre le menu. Touchez le jeu. Maintenant, on touche la touche M et on n'a rien. Pourquoi c'est ça ? Aucun d'entre eux n'a été activé. Alors, oh, on y va. Donc, vous pouvez voir que deux d'entre eux ont été activés et cela a pris un certain temps. Pourquoi c'est ça ? Sauver ? Est-ce que nous nous assurons que tout fonctionne correctement ? Montons le MPC pour l'instant et voyons ce qui se passe lorsque nous lançons le jeu. On avait la clé M. Voilà, tu y vas. Donc nous n'avons qu'un seul d'entre eux actif parce que nous avons enlevé le guérisseur. Nous devons retourner le guérisseur. Nous devons exécuter le jeu pour que le gestionnaire de jeu puisse réellement trouver. Donc on a un M. vous
y allez. Nous devons, vous pouvez voir que nous avons un léger problème de réparer ces, en appuyant sur les deux fois, mais tout semble bien fonctionner. Mais nous n'avons toujours pas fini parce que nous devons remplir toutes les informations que nous avons mises en place. On le fera dans la prochaine vidéo.
50. Mise à jour des statistiques: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, notre menu fera quelque chose d'utile. Donc, si nous regardons notre guérisseur, disons que l'EXP actuel devrait être de 50, la maison actuelle devrait être de 60. Et non, parce que le maximum est 30, c'est réglé à 20. Et le mana actuel sera trois. Nous allons courir notre jeu. Nous allons appuyer sur la touche M et vous remarquerez que nous avons tout mis en place ici correctement. On a même ces curseurs. Vous pouvez voir que c'est exactement au milieu parce qu'il a, ou elle a, le guérisseur a Sara 50 points sur 100, donc c'est exactement au milieu. Alors ne perdons plus de temps et commençons. Actuellement, nous ne réglons que les panneaux sur actifs. L' étape suivante est d'aller de l'avant et d'utiliser l'endroit où est-il sur les statistiques des joueurs. Ainsi, par exemple, définir le niveau des joueurs, l'EXP actuel et ainsi de suite et ainsi de suite. Maintenant, certaines d'entre elles devront être publiques pour pouvoir y accéder. Alors commençons. La première chose que nous voulons est le nom du joueur. Donc, le texte du nom à la position I. Et nous faisons tout cela à l'intérieur de la boucle for. Nous passons donc en revue toutes les statistiques des joueurs qui sont disponibles. Nous devons nous assurer qu'il est point txt et qu'il sera égal aux statistiques
du joueur à la position I, que le nom du joueur. Donc, comme vous pouvez le voir, nous devons changer beaucoup de ces choses. Maintenant. Nous l'avons fait de manière plus sophistiquée avant. Mais je ne pense pas que cela vaut la peine de créer une méthode pour chacun d'entre eux. Ainsi, nous pouvons tout simplement aller de l'avant et en
rendre public les choses dont nous avons besoin. Donc ça va être le nom du joueur de point. Voilà, sauve ça. Ensuite, nous allons obtenir le texte HP à la position I, la taxe, le joueur. Maintenant, ici, nous allons faire quelque chose de différent. Parce que si on y retourne, on lance le menu. Nous éteignons, allumons l'un des personnages. Vous remarquez que HP n'est pas simplement le numéro. C' est aussi la concaténation avec le mot HB. Donc, si je double-clique sur la toile, si je clique ici, vous remarquerez que le caractère NFO est le point HP et le numéro. Ce que nous devons faire, c'est que nous devons en tenir compte. Donc nous allons écrire, tout d'
abord, ouvrir ces deux citations. Citations, ok, Donc HP, et puis nous allons ajouter les deux points, puis nous ajoutons un plus. Et nous l'avons déjà fait dans une de nos empreintes. Cela signifie que nous concaténons un entier avec le HB. Alors nous allons ajouter un autre plus. Nous allons ajouter la barre oblique avant et un autre plus, et ce sont les statistiques des joueurs. Je pensais que Max HP, et nous devons y aller et là. Alors que le HP max, le HP max est public et le HP actuel est également public. Garde ça ici. HB actuel, Max HP, sauvegardez cela. D' accord. Ensuite, nous avons le mono. Nous devons donc revenir ici et les rendre publics. Et cliquez sur Sauvegarder ça ici. Et le texte comme la manière actuelle et le maximum. Alors, à quel point est-ce ennuyeux à faire ? Mais il est nécessaire de sorte que le niveau de texte point txt. Oh, et aussi nous devons changer les ficelles ici. Donc mana, AHP. Maintenant, le niveau. Alors qu'est-ce qu'on écrit ici ? Le, oh, nous n'avons même pas créé de niveau, donc c'est le niveau actuel que ce niveau de taxe devrait être changé, je pense que oui. Allez dans le Canvas, le gestionnaire de menu, le texte de niveau, c'est le ,
ok, donc c'est le courant, donc nous devons changer. Je ne pense pas que les textes nivelés représentent vraiment le mot correct, donc je vais changer cela pour le texte XP actuel et l'appliquer. Donc, l'EXP actuel est le joueur à la place de l'EXP actuel, et nous n'avons pas cela. Vous pouvez également ajouter une taxe au niveau. Donc le niveau auquel notre joueur est, rendez ce public, sauvegardez ça ici. EXP actuel. Et on ne pense à rien de tout ça. Sauve ça. Et qu'avons-nous d'autre ? Eh bien, nous en avons beaucoup plus, mais pour l'instant, gardons ça va ici. Voyons le caractère et le terme d'automne du menu. Et avant que j'oublie de manger, on avait les statistiques de mise à jour ici, mais je l'ai mis ici en pensant que c'est là qu'on ouvre. En fait, sachez que n ici est où nous ouvrons réellement les menus. Tout cela est là que nous allons appeler les statistiques de mise à jour backend notre jeu, exécuter le code et maintenant nous voyons que lorsque nous touchons la touche M, nous avons un lien extérieur. Quel est le problème ? Donc, nous regardons le texte XP actuel. Qu'est-ce qui se passe ? Bon, bienvenue. Donc, le problème est que nous avons changé le nom de la variable sans la mettre ici. Donc, de retour dans le verrouillage du gestionnaire de menu, c'est ouvrir le caractère NFO. Obtenons le caractère alors que le caractère XP courant. Et traînons-les ici. Alors, voilà. Sauve ça. Maintenant, nous ne devrions pas avoir de problèmes. Nous courons le jeu, avait le député. Oui, on y va. Nous avons donc les HP de plus de 100 moins 0 sur 30, et l'expérience actuelle est de 36. Donc, si on veut aller vérifier sur le joueur, déverrouillons ça. Nous pouvons voir que l'expérience actuelle Trente-six, grand. Le prochain HP est 100, le courant h soit 0. Si nous le faisons 20, et nous éteignons le menu, nous le rallumons. On y va. Nous avons donc 20 HP. Donc, cela semble ou semble fonctionner. Et maintenant, nous devons finir le reste et va être votre défi. Votre défi est de compléter la taxe sur l'expérience. Mettez donc à jour le curseur. Et tout d'abord, avant de mettre à jour le curseur, vous devez mettre à jour la valeur maximale sur le curseur. Qu' est-ce que je veux dire par valeur maximale ? Si nous regardons en arrière ici, si nous cliquons sur le curseur, vous pouvez voir que nous avons une valeur et ici nous avons le minimum et le maximum. Donc, si nous disons de faire la valeur maximale 50, vous remarquerez que nous allons de un à 50. Vous devez vous assurer de mettre à jour la valeur sur les curseurs. Donc, avec cela dit, laissez-moi vous ramener au défi. Mettez la vidéo en pause dès maintenant et allez faire le défi. Oh, ok, bienvenue. Donc la première chose que nous devons faire est d'aller dans le curseur XP. Ok, Donc, curseur XP sur la position i dot valeur max, il va être égal au joueur commence à la position je point XP au niveau suivant, et nous ne l'avons pas. Donc, le niveau suivant x B2 est public. Sauvegardez ça, et voyons. Donc pour le niveau suivant. Et ici, nous devons faire quelque chose de très important. Nous devons amener l'expert au niveau supérieur à une certaine position. Donc, ce que nous allons faire, c'est que nous allons obtenir cette position en regardant les statistiques des joueurs à la position I, ce niveau de joueur. Nous avons donc besoin du niveau et du niveau du joueur doit être public. Donc je sais que beaucoup d'entre vous ont peut-être trébuché ici. C' était la partie difficile du défi. J' espère que vous avez bien compris. Alors pourquoi on fait ça ? Vous demandez peut-être, alors que se passe-t-il ici ? Si nous passons à l'XP pour le niveau suivant, vous remarquerez qu'il s'agit d'un tableau et nous voulons obtenir la certaine position. Nous avons donc besoin du niveau du joueur. Et en utilisant le niveau du joueur, nous voulons accéder à l'expérience pour arriver au suivant pour le définir. C' est pourquoi ici, dans le gestionnaire de menu, nous utilisons le niveau de joueur à la position I et obtenons le niveau que son annonce et en utilisant cet entier et ordonné de regarder à travers l'XP pour le niveau suivant. J' espère que ce n'était pas trop dur comme un défi. Et maintenant, nous allons accéder à la valeur, les joueurs qui pointent I. Et nous allons utiliser l'exp actuel, sauvegardez ça. Et enfin, nous avons besoin de l'expérience taxée. Donc, l'XP imposé à la position i point texte, bien sûr, est égal aux statistiques du joueur à la position I, la chaîne XB point deux. C' était donc l'un des deuxièmes défis. Je sais que ce défi a été très difficile. Ce que nous faisons ici, si nous n'ajoutons pas de point à la chaîne, vous remarquerez que nous aurons une flèche. Donc, cette flèche nous dit que nous ne pouvons pas convertir implicitement un entier en une chaîne. Donc, pour le convertir en une chaîne, nous allons écrire àString. Ensuite, nous allons ajouter la concaténation avec la barre oblique avant. Ensuite, nous accèderons aux statistiques des joueurs à la position i, point XP au niveau suivant à la position que nous avons déjà créée ici. Alors, quel est le prochain niveau ? Mettez-le ici. Et voilà. Cela devrait couvrir presque tout si nous n'avons pas commis d'erreurs. Donc maintenant, si nous, ajoutons le guérisseur de PNJ à nouveau. Alors maintenant, quand nous lançons notre jeu, nous avions la clé M. On y va. Nous avons l'expérience au niveau supérieur parce que nous avons, peut-être que nous aurions dû les écrire en blanc. Permettez-moi de maximiser le jeu pour que nous puissions les voir plus clairement. Alors quand on avait le MK, tu y vas. Donc, pour arriver au premier niveau, nous avons besoin de 100. On va en faire une couleur différente. On en a 36. Ainsi, vous pouvez voir que le curseur change automatiquement et nous n'avons pas l'image pour Sarah. Pourquoi c'est ça ? Parce que nous aurions dû en faire une image, mais un sprite. Et je suis sûr que c'est le problème. Et même pas que nous ne l'avons même pas assigné. Donc ici, nous allons obtenir l'image du personnage à la position que je veux. Donc image de caractère à la position je point le sprite. Alors pourquoi on fait ça ? Parce que si nous regardons en arrière sur l'un de nos, disons l'image de personnage ici, vous remarquerez que nous avons l'image et la nécessité de remplacer le sprite dessus. Donc, l'image de caractère dot sprite est égale à la et nous devons nous assurer que le, où est-il ? Le sprite sur la stat du joueur est public. Donc, il va aux joueurs qui à la position i point caractère MHC2. On va sauver ça. Nous retournerons dans Unity et espérons que l'image fonctionnera. Donc, quand nous avions la clé M, très but. Donc, même si Sarah n'a pas l'air aussi belle qu'elle le devrait, tout semble bien fonctionner. Tout fonctionne correctement. J' espère que vous avez apprécié cette très longue vidéo. Nous sommes à environ 20 minutes. Un peu d'édition aidera, espérons-le, mais nous avons tout fait. Et la prochaine vidéo, nous allons créer un moyen de naviguer dans le menu. Alors je te verrai dans la prochaine.
51. Utiliser les boutons: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons mettre nos boutons à utiliser. Donc si vous vous souvenez, nos boutons n'ont rien fait. Mais maintenant, quand nous appuyons sur le bouton Articles, nous obtenons un panneau différent. Quand on atteint les statistiques, on obtient un autre panneau différent. Et quand on quitte le jeu, voit ça avec, avec le jeu. Malheureusement, parce que nous sommes toujours dans l'éditeur Unity, le rapide ne fait rien. Il sera plus tard lorsque nous construisons notre jeu, mais pour l'instant, il fonctionne en imprimant quelque chose sur la console. Alors ne perdons plus de temps et commençons. Oh, ok, donc actuellement, si nous lançons notre jeu, vous pouvez voir que si notre jeu se déroule un jour à l'heure actuelle, si nous touchons la touche M, nous avons le menu. Tout est mis en place à peu près correctement. Peut-être qu'on doit réparer le sprite sur le petit hilar juste ici, mais les boutons ne fonctionnent pas. Pourquoi c'est ça ? Parce qu'on ne leur a rien donné pour travailler. Donc, nous avons besoin d'un moyen de, chaque fois que nous cliquons sur le bouton d'état ou le bouton d'éléments, nous voulons ouvrir dans d'autres nombreux. On va ouvrir le Canvas, ouvrir le menu pour tout voir. Et nous allons aller de l'avant et mettre tout le caractère et pour sous un seul objet vide, ou ce sera le caractère NFO. Et nous allons faire glisser les trois et vers le personnage et pour l'informatique. Et la prochaine chose que nous allons faire est de créer un nouveau panel. Alors allez à votre panneau des yeux et nous allons le rendre un peu plus petit pour qu'il s'intègre juste sous les boutons. Et nous allons lui donner le contexte que nous utilisons. Alors allez aux éléments, donnez-lui le fond que nous utilisons toujours et tournez, oups, où est-il ? Donc, nous allumons tout complètement. On y va. On peut même le rendre plus grand. Alors faisons-le juste, oups, non, on veut le rendre un peu plus grand. Alors, voilà. Nous avons donc plus d'espace pour travailler. Et ce panneau va être le panneau des articles. Ainsi, les éléments ou les éléments ou le panneau des éléments dépend de vous. Ce que vous voulez nommer. Il a juste besoin de représenter ce que les éléments sont correctement. Ok, super. Donc maintenant, nous avons besoin d'un moyen d'allumer et d'éteindre ce panneau lorsque nous collectons les boutons. Maintenant, il y a plusieurs façons de créer une méthode dans le gestionnaire de menu pour gérer cela. Ou nous pouvons aller sur le bouton Articles. Donc, si nous ouvrons les boutons, nous allons au bouton Item. Si nous faisons défiler vers le bas, vous pouvez voir sur le composant de jeu inférieur ou le composant de bouton, nous avons un onclick. Ce onclick, il fait ce qu'il dit. Chaque fois que vous cliquez
dessus, il fait quelque chose et nous pouvons ajouter ici une fonction à faire. Donc, vous pouvez voir actuellement nous pouvons ajouter un objet et c'est là que nous serons. Oups, désolé. Donc, si nous revenons au bouton Articles ici, nous pouvons faire glisser le panneau des éléments ici si cela nous le permet. Donc, le panneau des éléments, et vous pouvez voir qu'il n'y a actuellement aucune fonction. Si nous cliquons dessus, nous avons beaucoup d'options, et l'une d'entre elles est l'objet du jeu. Ainsi, nous pouvons accéder à l'objet du jeu et faire beaucoup de choses avec lui. Ainsi, par exemple, le nom de la chaîne et ainsi de suite. Mais ce qui nous intéresse, c'est le livre actif. Donc, si vous cliquez ici, vous voyez que nous obtenons cette petite case à cocher. Et cette petite case à cocher représente si nous voulons définir active sur true ou si nous voulons définir l'actif sur false. Donc, si nous définissons l'actif sur true, cela signifie que ce panneau sera réglé sur bien actif. Donc maintenant, si je viens d'éteindre le panneau des éléments, si nous lançons le jeu et éteignons le menu, rallumez-le. Donc, si je clique sur les éléments, très aller. C' est cool ? Si je clique à nouveau, rien ne se passe parce qu'il n'a rien d'autre à faire, il allume simplement le panneau des éléments. C' est ainsi que nous allons ouvrir et fermer différents menus. Donc, avec cette connaissance, il est temps pour vous de créer le panel d'états et le défi de devoir. Votre défi est de compléter le bouton stat. Vous devrez donc activer les statistiques et tout le reste. Et je ne parle pas seulement du personnage NFO. Je parle des statistiques beaucoup. Qu' est-ce que je veux dire par là ? Comme vous pouvez le voir, nous avons un bouton stat qui est
différent des informations de caractère normales que nous avons créées. Donc, avec cette connaissance, laisse-moi revenir ici. Mettez la vidéo en pause dès maintenant, créez le panneau de statistiques. Il n'a pas besoin d'avoir quoi que ce soit dedans, tout comme les articles. Vous pouvez dupliquer le panneau des éléments et vous devrez définir le bouton d'état. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bon, bienvenue. Allons donc au panneau des éléments. Nous allons le dupliquer et nous le changerons en panneau d'état. Nous verrons ce que le panneau d'état fait plus tard. Donc on va aller dans les statistiques. Nous allons activer le panneau d'état. Nous allons le faire glisser ici, définir l'objet de jeu sur actif, et nous le définirons sur true. Mais pas seulement cela, le défi dit aussi et tout le reste hors. Donc on va retourner ici. Nous allons créer un autre objet onclick sous le panneau de statistiques. Nous allons faire glisser le panneau des éléments. Et ici, nous allons aller à l'objet de
jeu, mettre actif, et nous allons le définir sur false. Donc maintenant, lorsque nous cliquons sur le bouton d'état ou sur le bouton stat, nous allons mettre actif. Les statistiques doivent être les statistiques, pas le statut. Donc les statistiques. Donc, lorsque nous activons le panneau des statistiques, nous désactivons le panneau des éléments et nous ferons la même chose ici pour les éléments. Alors, comment va-t-on connaître la différence ? On ne l'est pas en ce moment. Plus tard, voyez qu'il y a une différence. Si vous le souhaitez, vous pouvez ajouter peut-être un petit quelque chose qui différencie les éléments des statistiques. Allons-y et faisons-le. En fait, c'est une bonne idée que je viens de commencer. Rendons juste un peu plus petit. Alors maintenant, nous gardons ça. Nous allons désactiver le panneau de statistiques. Nous allons diriger notre jeu. Laisse-moi juste sortir, rallume ça. Allez aux articles. Voilà, tu y vas. C' est le panneau des objets, le plus grand. Maintenant, nous devrions en avoir un plus petit quand nous avions les statistiques. Voilà, tu y vas. Nous en avons un plus petit. On a toujours les personnages ici. Vous pouvez également les désactiver. Donc le caractère NFO ne devrait apparaître que lorsque nous entrons. On verra comment on pourra le comprendre plus tard. Nous avons aussi la dernière chose qui est le bouton Quit. Et pour cela, parce que nous voulons arrêter et sortir de notre jeu, nous allons créer une méthode pour cela. Donc, on va dans le gestionnaire de menu. Nous allons créer une méthode ici et ça va être un vide public, arrêter de jeu. Et ici, nous allons écrire point d'application. Donc, ce que cela fait, il nous sortira de l'application. Mais parce que nous n'avons pas encore construit notre jeu, nous l'utilisons toujours dans l'éditeur Unity. Ça ne fera rien. Donc, ce que nous allons faire est que nous allons utiliser le journal de points de débogage. Et nous allons juste imprimer un message ici qui dit : « Nous avons quitté le jeu. Sauve ça, retourne dans Unity. Et voyons comment on peut faire ça. Nous allons aller dans le bouton Quit, faites défiler vers le bas à l'objet onclick. On va, où est-il ? Où est-ce que nous allons faire glisser et le canevas parce que nous utilisons une méthode qui est sur le gestionnaire de menu. Alors que le gestionnaire de menu, c'est sur la toile, voilà. Le gestionnaire de menus se trouve sur le canevas. Donc, nous faisons glisser et via Canvas sur l'objet qui est demandé ici, la non-fonction cliquera dessus et vous remarquerez que nous devrions avoir un gestionnaire de menu. Et ici, nous pouvons accéder à toutes les méthodes qui sont là. Et l'un d'eux est le jeu d'abandon. L' image de fondu est également l'un d'entre eux. Donc, chaque fois que vous voulez appeler une certaine méthode à partir du onClick, assurez-vous qu'elle est publique. Nous allons donc sauver cela. Nous allons désactiver le menu. Laisse-moi éteindre le menu. On va faire notre jeu. Nous avons eu la touche M, va cliquer sur un quitter. Et voilà. Vous pouvez voir le message imprimé sur la console avec quitter le jeu. Donc, avec cela fait, j'espère que vous apprécierez ça. Dans la prochaine vidéo, nous allons créer notre tableau de statistiques, en ajoutant tout ce dont nous avons besoin pour finir là. Alors je te verrai dans la prochaine.
52. Configuration de statu UI: Bienvenue à mes collègues développeurs de jeux pour cette très, très longue vidéo. C' est long parce qu'on a beaucoup d'entre vous que je dois installer. Donc maintenant, si nous avions la touche M, nous cliquons sur les statistiques. Voilà, tu y vas. Vous pouvez voir que nous avons créé un menu Statistiques. Nous avons le nom de l'arme équipée dextérité défense, armure, défense d'armure, et ainsi de suite. Ils ont aussi ces noms ici, et ils ne sont pas seulement à montrer. Si nous tournons du guérisseur MPC, nous
y allons, Nous l'éteignons. On sort, on y retourne et on atteint les statistiques. Ok, ça ne marche pas. Ça peut éteindre le guérisseur juste ici. C' est tellement gênant. J' ai eu le mauvais jeu. S' il vous plaît travailler. Ok, donc voilà. Nous n'avons qu'un seul nom parce que nous n' avons qu'un seul personnage qui a des statistiques de joueur sur eux. Donc, ne perdons plus de temps, et commençons par mettre en place ces statistiques beaucoup 0. Donc, dans cette vidéo, nous allons présenter nos statistiques. Donc, nous allons activer le panneau de statistiques et nous allons essayer de le réinitialiser à sa taille précédente. Et nous allons cliquer sur le Tiki, ce qui nous permettra d'aller à l'outil de rec apparaître et nous allons juste le faire si grand. Alors on y va. C' est notre tableau de statistiques que nous allons remplir. Donc la première chose que nous allons faire ou laissez-moi vous dire la vision de ce que nous allons faire et vous pouvez ajuster votre propre vision de la façon dont vous voulez, les statistiques à regarder. Nous allons ajouter peut-être trois boutons ici ou
quatre boutons en fonction du nombre de personnages ou de joueurs que vous voulez avoir. Et puis nous allons ajouter une image ici ou ici ou n'importe où, peut-être que je pense, à gauche pour représenter le joueur. Et puis nous allons ajouter toutes ces statistiques ici. Et vous vous demandez peut-être pourquoi est-ce différent de l'information du personnage. Caractère NFO est juste pour comme combien affiche ou a la santé. Mais cela représentera combien le joueur a la défense, dextérité et quelles armes il sera équipé chose plus tard lorsque nous créons effectivement des armes à équiper. C' est donc le travail de la plage de statistiques et non le caractère. Le caractère n'est qu'un coup d'œil rapide. Ce sera un aperçu en profondeur de ce que le joueur fait réellement. Alors commençons. abord, faisons un clic droit ici et nous allons créer nos boutons. Donc on va aller dans vos yeux et on va créer un bouton. D'accord ? J' ai pensé un instant que je n'ai pas cliqué dessus. Nous allons lui donner l'image de fond à laquelle nous sommes habitués. Et on va l'installer ici pour le rendre un peu plus grand. Voilà, tu y vas. Je pense que c'est suffisant. Et nous allons supprimer ce texte. Nous allons ajouter notre propre texte, Nash Pro, et nous allons lui donner le médiéval. Où est-ce qu'il est allé ? Donc on va lui donner l'irrégulier médiéval. Bien sûr, bien, ça s'appelle, ça va s'appeler le nom du joueur. Alors voilà, le nom du joueur. Ce sera aussi le nom du texte. On n'a pas à faire ça, mais on va le changer. Va le rendre audacieux, va le rendre noir. Et comme toujours. Donc rien de différent en ce moment. Et voyons ce qui se passe ici. Réglons le texte à la bonne taille. Et voilà. Peut-être que nous allons rendre la police un peu plus petite. Ok, donc voilà. C' est le nom du joueur. Je pense que ce bouton est suffisant. On l'appellera le bouton Calques. Et nous allons aller de l'avant et dupliquer ça deux fois. Alors dupliquez les cygnes, faites-le glisser un peu vers le bas. Dupliquer cette autre fois, déposé un peu vers le bas. Alors, voilà. Maintenant, nous avons ces trois joueurs, et j'espère juste que la distance est correcte connaisseurs. Alors, voilà. Ensuite, nous allons ajouter une image. Donc, nous allons cliquer avec le bouton droit ici. Et avant de continuer, faisons ça sous un seul objet de jeu. Nous avons une très belle hiérarchie. Donc, comme vous pouvez le voir immédiatement, cela devient beaucoup déroutant. Donc, je vous recommande toujours de créer des boutons, portées, du panneau, des boutons dans le panneau de statistiques et ainsi de suite. Donc, vous avez une très bonne organisation. Ok, donc la prochaine chose est l'interface utilisateur, l'image, et ce sera l'image du joueur, l'image du joueur. Et donnons-lui juste l'image par défaut de notre joueur. Où sont-ils dans les personnages ? Donne-lui celui-là. Alors, voilà. Nous allons mettre à l'aspect de conservation natif SIFS rendra un peu plus petit. Et je ne sais pas où vous voulez mettre ça peut être ici et ensuite tout mettre sur la droite. Cela dépendra vraiment, cela dépend de votre prise de temps. Je fais tout ce qui est lié à ton oeil. J' essaie de passer par là parce que ce n'est pas, pas comme si tu n'apprenais rien en dupliquant des boutons. Donc j'aime les écrever un peu plus vite. Prenez donc le temps de créer votre propre mise en page. Donc, l'image du joueur, nous allons faire un clic droit et nous allons créer deux ensembles de, disons des choses. Nous allons avoir les étiquettes à gauche et les valeurs à droite. Et nous devons avoir en fait, tu sais quoi, juste aller sur les boutons,
aller à l' un de ces boutons, dupliquer le nom du joueur, et nous le mettrons à l'extérieur. Alors, voilà. Maintenant, nous pouvons utiliser celui-ci. C' est beaucoup plus rapide. Et tout d'abord, ça va être le nom,
donc le nom du joueur, et nous allons juste le rendre un peu plus petit. Voilà, tu y vas. Alors nom. On va redupliquer ça. Cela va être que HP va dupliquer cela à nouveau, et nous allons définir tous ces éléments avant de commencer à dupliquer ceci, créons un objet de jeu vide, les étiquettes, et nous allons mettre tous ces éléments sous les étiquettes. Et nous allons les faire face à droite comme ça. Et mettons-les au milieu pour qu'ils soient tous ajustés à droite. Nous allons nommer ça le, le HB. Encore une fois, nous allons le faire.
53. Affichage de l'information d'appartenance à Statut: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, vous remarquerez que j'ai fait beaucoup d'erreurs, mais nous n'avons rien obtenu. Donc, si nous allons aux statistiques, vous pouvez voir que le nom est Jimmy HBS, 0 à 1 sur 100, dextérité 1030. Mais que se passe-t-il quand on clique sur Sarah ? Voilà, tu y vas. Vous pouvez voir que toutes les statistiques changent et nous pouvons aller et venir à travers eux. Alors ne me perdons pas plus de temps et commençons. Oh, reviens. Donc, ce que nous allons faire maintenant, c'est que nous allons mettre en place notre panel de statut. Donc on va tout mettre en place, y compris les boutons. La première chose que nous devons faire est de définir les noms corrects sur les boutons. Et il y aura ton défi. Donc, votre défi est de définir les noms, si triste les noms des joueurs sur les boutons. À l'intérieur de la boucle, accédez au composant fiscal sur les boutons et utilisez le composant Obtenir dans les enfants pour accéder à ces textes. Vous ne faites donc qu'un peu de recherche sur le fonctionnement du composant Get et des enfants. Cela nous permettra d'économiser beaucoup de, disons, champs
sérialisés que nous devrons ajouter autrement. Donc, les composants ResearchKit et les enfants et l'utiliser pour ajouter le composant sur le gay. Alors je te verrai dans un peu. Oh, ok, bienvenue. J' espère que tu as essayé de le faire. Alors, comment ça marche ? Nous allons aller de l'avant et utiliser les boutons de statistiques sur la position I. Une fois que nous l'avons réglé sur actif, nous allons obtenir le composant et les enfants et je ne vais pas ouvrir les chiens. J' espère que vous avez essayé. Mais comme vous pouvez le voir, il renvoie le composant de type, type, l'objet de jeu des enfants. Donc nous accédons aux boutons juste ici, et ils ont des enfants qui sont le nom du joueur ou ces textes. Nous allons donc y accéder. Donc, nous allons avoir des enfants ou des composants chez les enfants. Et comme vous pouvez le voir, il va nous demander à quel type nous voulons accéder. Il va être de type TM par ligne, pas de maillage de texte, maillage pro GUI. Et nous allons accéder à l'élément de texte sur eux. Et il va être égal aux statistiques du joueur à la position i point nom du calque. Nous allons donc sauver cela. Nous allons retourner dans Unity et attendre que cela se compile. Désactivez ces onglets. Laissons le jeu et voyons, le MPI
a ouvert les statistiques et voilà, Jimmy. Donc, nous allons devoir ajuster le nom juste un peu sur ces panneaux. Si on regarde ici, où est le bouton ? Alors ouvrons ça. On va les mettre au milieu. Et je pense que ça suffit. Sauve ça. Allons sur le guérisseur. Essayez ceci encore une fois. Assurez-vous que cela fonctionne. Et nous allons tourner cette AP Stats. On y va. Alors Jimmy et Sarah. Donc j'espère que vous avez compris comment obtenir composant et les enfants fonctionne. Donc, la prochaine chose que nous allons faire est que nous aurons besoin toutes les variables pour représenter les étiquettes et les valeurs. allons donc ouvrir notre gestionnaire de menus et nous allons avoir besoin de beaucoup de champs sérialisés. Donc, tout d'abord, allons de l'avant et créons un champ sérialisé pour le texte ou le texte pros ou le texte. J' oublie toujours que nous utilisons du texte Mesh sonde texte Mesh, pero, You Gui. Donc c'est le nom de la statistique, la statistique, HP, stat mano. Et tu sais quoi ? Je vais vous lancer un défi et nous allons voir qui peut compléter toutes les choses dont nous avons besoin en premier. Donc, le mana, les ponts, la défense des statistiques. Et puis nous en aurons besoin d'un de plus. Et ça va être une image. Et la statistique des personnages. On y va. La prochaine chose que nous allons faire est créer une méthode pour réellement mettre à jour les statistiques. Donc ici, sous le menu Stat, nous allons entrer dans le vide public et créer une mise à jour du menu Stats. Et parce que nous avons différent, C'est ce qu'ils appellent,
les informations de caractère, nous allons lui donner un argument. Et cet argument va être un entier et il va représenter le nombre sélectionné par le joueur. Cette méthode sera appelée chaque fois que nous cliquerons sur les boutons des joueurs. Donc tu as vu qu'on avait Jimmy et Sarah. Et chaque fois que nous cliquerons sur Jimmy ou Sarah, nous transmettrons une variable ici. Et en fonction de cette variable, il mettra à jour tous les états et toutes les valeurs et les étiquettes. Donc, tout d'abord, nous avons le nom, donc le nom de stat va ou point txt va en
fait être égal à la stat du joueur à la position, le numéro .net sélectionné par le
joueur ou le nom du joueur par point. Et parce que nous allons l'utiliser à chaque fois, nous allons créer une variable qui s'appellera la stat de joueur de pipe. Elle sera appelée le joueur sélectionné et elle sera égale aux statistiques de joueur à la position numéro sélectionné de couche. Et maintenant, nous pouvons immédiatement l'utiliser ici et enregistrer un peu de code, donc joueur sélectionné. Ok, super. Maintenant, nous allons utiliser le stat HB. Il est sélectionné par le joueur, le HP actuel HB, et nous allons le concaténer avec un HP maximum. Donc, plus le joueur sélectionné Max HP. Et je pense que nous devons nous assurer que c'est une chaîne de deux pour éviter les erreurs. Ensuite, nous avons le mono. Donc, la manne Stats, la manne ne créera pas le Mano. Non. Oui, on a commencé Mano. Alors pourquoi ne se présente-t-il pas ? De cette façon ? Voilà, tu y vas. Donc Madonna actuelle et la manière maximale. Ok, super. Ensuite, nous avons la dextérité. Donc, nous allons créer, va le mettre sur une ligne séparée. Alors comment on l'appelait les ponts de statistiques ? Je crois que les ponts, on y va. On va enlever ça et on va mettre celui-ci à la dextérité. Alors avons-nous accès à la dextérité sur les statistiques des joueurs ? Je ne pense pas. On y va. Donc, la dextérité devrait être publique et la différence sera également utilisée. Alors rendons les choses publiques. Garde ça ici. Dextérité, point toString, dupliquez cette défense statistique, défense toString. Et enfin, nous avons besoin de l'image du personnage. Donc, je ne sais pas pourquoi j'ai dupliqué ça. On n'en a pas besoin. Donc, l'image de personnage sprite. Donc, cela ne me permet pas d'y accéder parce que cela devrait aussi être l'image statique du caractère. Donc caractère et image stat, point sprite. On y va. Et il va être égal au joueur point sélectionné par le joueur sprite. Qu' est-ce qu'on a ? Qu'est-ce qui s'appelle ici ? Vérifions l'image des caractères. Ok, donc image de personnage. On y va. Et gardons ça. Et dans le menu Stats, nous ne l'appellerons qu'une seule fois. C' est ce qu'on appelle la mise à jour du menu Stats. Donc, mise à jour du menu Statistiques. Et allons-y avec le 0, qui devrait être le Jimmy, je crois. Donc nous allons sauver tout ça. Faisons en sorte que nous ayons sauvé. Ok, donc tout devrait être en place. Nous retournerons à Unity. Nous allons sauver ça. Nous allons diriger notre jeu. Et maintenant, si nous cliquons sur le statut, voilà. Nous n'avons fait référence à rien. Donc, nous n'avons pas référencé le nom des statistiques. On n'a rien référencé. Combien de fois Michael devrait-il faire cette erreur jusqu'à ce qu'il l'ait enfin ? Je pense que cela prendra un peu plus de temps. Donc le nom du joueur, PHP, V1, dextérité, défense et l'image du personnage. Alors que l'image du personnage, ok, donc c'est, je pense que c'est là. Donc, l'image du personnage et tout le reste comme l'arme équipée et ainsi de suite, ne
sera pas utiliser pour l'instant. Maintenant, nous exécutons nos statistiques de jeu. Voilà, tu y vas. Et rien ne semble fonctionner PAR cause O. Au lieu de lui donner les valeurs, je lui ai donné les étiquettes. très intelligent. Encore une fois, tournons la serrure. Comme vous pouvez le voir, Michael fait tant d'erreurs avant qu'il ne l'ait finalement. Et je vais garder cette fin la vidéo parce qu'il est
important de savoir que personne n'est parfait. Retournons en arrière. allons exécuter le code alors s'il vous plaît Cette fois nous frappons les stats, nous avons le nom Jimmy HP, 0 sur 100 moins 0. C' est parce que nous ne l'avons pas changé sur le joueur, et ainsi de suite et ainsi de suite. Dextérité, Stan, défense un 30. Tout fonctionne. Maintenant. Nous devons le changer dans OnClick. Donc maintenant ceux-ci, si nous allons aux boutons qui sont ici, vous verrez que nous avons trois boutons. Le premier bouton sur l'onclick ne fait rien. Nous allons y ajouter une fonction dans le Canvas. Nous allons aller dans le Menu Manager, nous allons à la mise à jour du menu Stats. Donc, comme vous pouvez le voir, parce que nous avons ajouté un paramètre, il nous demande un entier. Le premier sera 0. Le second va également avoir le gestionnaire de menu Canvas un. Et le troisième aura également la mise à jour de
l'état du gestionnaire de menu Canvas avec un entier de deux sous 1 ou 0, 1. Pour sauver ça. Espérons que cela fonctionne et je n'ai pas fait d'autres erreurs ou statistiques. Jimmy, Sarah, on y va. C' est cool ? Donc, comme vous pouvez le voir, nous avons l'image qui change. Évidemment, nous devons rendre Sarah un peu plus petite en utilisant ces gouttières, mais tout fonctionne pour que vous puissiez voir la dextérité, la force, la demande et le HP, même le nom changé en fonction du bouton sur lequel nous cliquons. Alors, c'est dur ? J' espère que vous apprécierez si vous appréciez le cours jusqu'à présent, même si j'ai fait beaucoup d'erreurs, j'espère que vous m'aimerez en tant qu'instructeur. Et si vous le
faites, prenez le temps de me laisser un avis, ça m'aide beaucoup. Je te vois dans la prochaine vidéo.
54. Section 8 : Créer des objets: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons créer un gestionnaire d'objets qui est ajouté à chaque élément de notre jeu. Et comme vous pouvez le voir, nous avons déjà créé un mana, un océan de
santé, deux ensembles d'armures et deux ensembles d'haches. Et vous remarquerez que l'un d'eux est de l'or. L' un d'eux est juste de l'argent. Alors ne perdons plus de temps et commençons. 0 cas. Nous avons donc besoin de créer des éléments. Tout d'abord, ce dont nous avons besoin, c'est que nous avons besoin d'un script pour gérer ces éléments ou pour déterminer
quels types d'éléments ils sont, quel nom ils ont, quelle valeur
et pièce ils ont, etc. Alors allons de l'avant et commençons à créer. Donc, nous allons dans le script, va créer un dossier ici que nous allons appeler la gestion des éléments. Je suppose que gérer signifiait. Et nous allons ouvrir, et ici nous allons créer un script C-Sharp et nous appellerons ça le gestionnaire d'objets. Appuyez sur Entrée. Attendez que le script se compile. Et allons de l'avant et ouvrons le script. Alors de quoi avons-nous besoin ici ? Tout d'abord, ce gestionnaire d'éléments sera disponible pour de nombreux types d'articles. Donc, tout d'abord, nous avons les objets réguliers comme, disons des pièces de monnaie, des potions et ainsi de suite. Nous avons des armes et des armures. Alors, comment allons-nous déterminer lequel est lequel ? Nous allons créer quelque chose qu'on appelle un recenseur, différent de celui que nous utilisons pour les adolescents du charbon. C' est un numérateur de types. Laissez-moi vous montrer ce que c'est. Nous créons un public dans et le type d'article. Nous venons donc de créer un nouveau type de variable. Et cela peut être appliqué à, ou cela peut avoir trois, disons tuyaux. Si vous voulez un type avec trois tuyaux qu'il peut avoir. Et donc peut-être que le type n'est pas le meilleur mot. Mais on peut avoir un objet ou une arme, ou une armure. Donc maintenant chaque élément nécessaire pour choisir quel type il est. Nous allons ensuite créer une variable publique qui va être de type, type d'élément. Donc, comme vous pouvez le voir, parce que nous avons créé une énumération maintenant que
nous créons, nous pouvons créer une variable de type, type d'
élément, et il va être appelé type d'élément. Donc maintenant chaque élément, pour chaque article, nous pouvons définir quel type d'article il est. La prochaine chose que nous allons faire est que nous allons créer un nom d'élément de chaîne. Et vous remarquerez que toutes ces informations sont publiques parce que nous voulons accélérer le processus d'obtention de ces informations. Nous allons créer une autre chaîne. Ça va être la description de l'article. Jusqu' à présent, nous savons ce que nous pouvons réellement créer cela sur la même ligne. Donc, le nom de
l'article, la description de l'article, et ce n'est pas nécessaire, mais c'est juste mieux. Et continuons. Et ici, nous allons créer un entier public et ce sera la valeur et la pièce. Donc, la valeur et les pièces de monnaie. Qu' est-ce qu'on a d'autre ? On doit mettre le sprite. Donc c'est un sprite public. Et ça va être l'image de l'objet. Qu' est-ce qu'on a d'autre ? Nous avons besoin de l'effet que cela fait. Donc si nous avons, disons, par exemple, une partie, si nous avons un article, nous voulons le dire, quel est l'effet ? Va-t-il nous donner 100 HP, 200 ou 700 HP ? Donc, c'est un nombre entier public d'effet. Et nous allons également créer une énumération pour le type d'effet. Donc nous allons avoir une énumération publique et ce sera le type d'effet. Et nous allons avoir deux types. Ça va affecter soit le PV, soit l'homme. Qu' est-ce qu'on a d'autre ? Nous avons besoin, nous allons avoir besoin de créer le tuyau d'impact public. Et ça va être appelé type d'effet juste pour la simplicité des choses. Et enfin, nous avons besoin de quelque chose pour la dextérité et la défense des armes et de l'armure. Donc les ponts publics et d'armes 3080 et la défense publique et armure. Donc la défense de l'armure. Ok, donc maintenant je pense que chaque aspect d'un article mis en place. Maintenant, nous allons devoir aller de l'avant et en créer. Maintenant, si on retourne ici. Nous allons entrer dans les ressources que je vous ai fournies. Et voici une liste d'éléments que nous allons utiliser. Donc vous pouvez voir que nous avons différents boucliers, différents axes, le front, les épées, et ainsi de suite. Nous avons des coeurs, nous avons des portions bleues, nous avons des portions rouges pour la, où sommes-nous allés ? Donc, potions Lu, potions vertes et ainsi de suite, pièces de monnaie, pierres précieuses, tout cela peut être utilisé dans notre jeu. Donc, je vais aller dans les sprites ici,
cliquez avec le bouton droit de la souris et créer un dossier. Ou tu sais quoi ? Je n'ai pas besoin de créer un dossier. Nous pouvons simplement faire glisser ce dossier et ici, mais assurez-vous que nous avons un dossier séparé pour les sprites d'élément. On appellera ça les objets sprites. Et on y va. Donc double-cliquez ici, vous voyez que nous avons tous les sprites. Allons de l'avant et ajoutons quelques éléments. Donc nous allons ajouter, disons une armure. On ne peut pas voir cette armure parce qu'elle est derrière la fenêtre. Encore une fois, s'il vous plaît, armure, où est-il ? Où est-il ? Voilà pour une raison quelconque, il n'apparaissait pas. On va le mettre en arrière-plan. On va le mettre à un. Et si ce n'est pas très visible, nous pouvons augmenter l'échelle à deux par deux, disons. Alors, voilà. Nous avons l'article sur le sol quelque part. On peut peut-être y ajouter une sorte de fond pour qu'il soit mieux sur le terrain. Mais pour l'instant, je pense que ça a l'air
assez bien quand on marche si on joue le jeu. Oui, on y va. On peut voir l'objet et on peut marcher dessus. Mais ne vous inquiétez pas, nous n'aurons pas la capacité de marcher dessus. Maintenant, nous avons l'armure. On peut même le rendre plus grand si on veut. Je pense que c'est exagéré. Donc 2.52.5. Oui, on y va. Ajoutons un peu de rotation à cela. Alors, oups, 2,5. Ajoutons un peu de rotation. On y va. Il y a donc une armure sur le sol. Nous allons ajouter un composant, le gestionnaire d'éléments. Et comme vous pouvez le voir maintenant, c'est le type d'article que nous pouvons choisir. Si c'est un objet, une arme ou une armure. Évidemment, c'est un animal. Maintenant, nous avons besoin d'un nom, donc nous allons l'appeler l'armure d'argent. Nous avons besoin d'une description. Cela va défendre contre les monstres. Nous allons avoir besoin d'une valeur pour cela. Alors disons-le, ça vaut 15 ans. Nous avons besoin de l'objet sprite, donc nous pouvons faire glisser celui-ci. Pouvons-nous, peut-on traîner celui-là ? Oui, on y va. Donc, l'image de l'élément est maintenant disponible. Combien cela affecte-t-il ? Nous ne voulons pas vraiment utiliser cela et nous pouvons même le déplacer un peu vers le bas. Donc je pense que si on bouge ça, c'est mieux. Donc parce que ce n'est pas une sorte d'article qu'on peut boire. Donc on ne va pas l'utiliser. On n'utilisera pas la quantité de faits. Nous allons ajouter une défense d'armure que vous pouvez commencer à créer et sorte de condition qui nous permet d'utiliser ces spécifications au lieu des autres. Mais je ne pense pas que ça en vaut la peine pour l'instant. Bien sûr, quand plus tard, vous créez votre propre jeu. Bien sûr, nous ne devrions pas avoir tous ces éléments disponibles. Alors, quelle est la défense de l'armure ? Disons que c'est six. Ce ne sont qu'une sorte de nombres arbitraires bizarres. Maintenant, nous allons ajouter les lois. Donc nous allons ajouter des actes ici. Ou tu sais quoi ? Pourquoi ne pas dupliquer l'armure et on la déplace vers le haut et on changera le sprite en un x. C'est une hache, disons une arme. Ça s'appelle le X argent ça va tuer des démons et des monstres parce que nous sommes un démon. Un démon est-il un monstre ? Je ne sais même pas quelle est la valeur. Je pense que l'axe est moins cher que l'armure. Les articles sont sprite, est la hache et la différence 0. Ou vous pouvez même avoir une sorte de défense pour l'arme. Mais comme vous le verrez plus tard lorsque nous construisons notre système de combat, nous ne tiendrons pas compte de la différence lors de l'attaque. Si nous avons la hache et la dextérité des armes, disons que c'est neuf. Ok, sauve ça. Super. Maintenant, il est temps de relever un défi. Et votre défi va créer le reste des objets. Donc, créez le reste des éléments. Quel genre d'éléments je recommande que vous ajoutez une autre armure et un autre x. quelque chose qui est différent peut être l'axe de l'or. C' est une bonne idée ou vous pouvez ajouter une sorte de bouclier. On a des boucliers. Donc deux types de sortes, deux types d'armure, deux types de mouvement. Donc on n'a pas ajouté de potions. Vous aurez besoin d'ajouter une potion. Et je vais juste mettre des sortes ici. Il est accessible, il peut être tout ce que vous voulez, et vous pouvez ajouter n'importe quel autre élément que vous voulez. Vous pouvez ajouter d'autres attributs à vos éléments. Donc, si vous pensez qu'il y a plus de choses aux articles que juste les choses que j'ai mentionnées. Par exemple, vous pouvez ajouter un effet de saignement. Donc, si cela, Disons arme ainsi dimensions, vous pouvez ajouter l'effet de saignement après tout, après la certaine quantité de dommages et ainsi de suite. Donc, avec cela dit, arrêtez la vidéo dès maintenant et allez ajouter le reste des éléments. Ok, bienvenue de retour. Donc nous allons nommer ça les numéros d'argent et l'armure sera appelée l'armure d'argent. Et allons de l'avant et ajoutons un x
doré.Donc ce sera une hache d'or. On va trouver une hache dorée. C' est une hache d'or ? Oui, il y en a. C' est un X doré. Fermons. Déplaçons un peu la hache d'or. Et je pense que c'est juste un peu trop gros. Je ne sais pas. Peut-être qu'on les rendra un peu plus petits. Donc le x doré que nous sommes, assurez-vous que c'est une arme. Ça s'appelle la hache d'or. Et sa description tuera des monstres plus vite. Plus vite. valeur de la pièce de monnaie bien sûr, va être double, peut-être même 25. Le sprite sera le x2 et les actes. Et ici X à la quantité d'effet que nous n'avons pas besoin de la dextérité des armes sera 18. Et on y va. Donc c'est la hache d'or. Allons chercher une armure dorée si nous en avons. Donc je ne pense pas qu'on ait d'armure en or. Je pense que tout ce qu'on a c'est oh oui, on y va. On a une armure dorée. Donc armure d'argent. Armure en or. Copiez cela, collez-le ici va défendre contre les monstres. Beurre. La valeur sera de 35, où nous allons changer les sprites ici et la différence sera de 19. Sauvegardez ça. Alors bougeons ça. Et ici je pense que je vais les rendre un peu plus petits. Je veux dire, regarde comme ils sont grands par rapport à notre gym, le juste ici. Et enfin, nous devons créer les deux parties. Donc je vais reproduire l'armure dorée. Je mettrai les portions ici. Ce sera l'océan HB et il sera de type article. Il va avoir le nom. Alors pourquoi n'a-t-il pas changé la potion HP ? Merci. Hb potion, cela vous donnera h être la valeur en pièce de monnaie. Je suis Nano 7. Et voyons où c'est. Où sont nos portions ? On y va. Sprite, sprite et quantité d'effet. Donc, cela va affecter le HP, la quantité d'effet. Disons que cela nous donne 50 HB et supprime juste ce 0 ou quelque chose comme ça. Ça n'a pas d'importance. Et changeons juste un peu la rotation. Dupliquer. Donc, tout va bien dans presque dupliquer ça ? Et passons à droite. Ce sera l'océan monopole. Supprimez tout cela. C'est un objet. Y mano potion, nommez-le, cela vous donnera une valeur sur la pièce de monnaie. Je pense qu'il devrait être 11 ans. Et trouvons la partie bleue qui est ici,
mettez-la ici. Et la quantité d'effet, je pense que 15 est assez bon. Le type d'effet que la manne, qui sauve tout cela. Donc, comme vous pouvez le voir maintenant, nous avons beaucoup d'éléments et si nous exécutons notre jeu, Voyons à quoi cela ressemble. Oui, on y va. Donc, il y a une potion, on la prend. Il y a une autre portion. On monte, yo, il y a une sorte d'armure et ici beaucoup d'armures et de haches qu'on peut utiliser. Et je vais cliquer avec le bouton droit de la souris pour créer un objet de jeu vide, appeler les éléments frapper Entrée, réinitialiser sa position, et nous allons prendre chaque élément et le déposer sous éléments changera également l'échelle à 1.8 par 1.8. Voyons voir. Oui. Voilà, tu y vas. Je pense que ces parties sont maintenant beaucoup plus logiques. Ils sont plus petits et ils semblent être quelque chose qui irait sur le dessus de notre œdème de gym et des choses qu'il peut tenir dans sa main. Je veux dire, écoutez, à quel point ça serait cool ? Ce x est encore grand mais pas de soucis à ce sujet. Alors j'espère que vous apprécierez et je vous verrai dans la prochaine vidéo où nous créerons notre menu d'articles.
55. Window des objets: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, comme vous pouvez le voir, nous avons créé une fenêtre d'objets incroyables. Donc, vous verrez juste ici que nous avons pour juste ici vous verrez que nous avons le nom de l'article. On devrait changer ça ici. Il va changer automatiquement. Nous avons deux boutons afin que nous puissions soit utiliser un article, soit le défausser. Et nous avons également ajouté un petit carré ici et arrangé quelques objets. Et je viens de remarquer que le bouton articles, nous devrions avoir l'image de l'article juste ici afin que le montant semble mieux. Alors ne perdons plus de temps et commençons. Ok, alors maintenant il est temps de créer un menu des éléments. Donc, ce que nous allons faire, donc nous avons déjà une sorte de menu d'éléments, ouvrez le menu et voici allumons cela. Et si nous allons dans le panneau Articles, allumez ceci. Voilà, tu y vas. Donc maintenant, nous avons ou nous avons déjà un panneau d'éléments que nous pouvons utiliser. Oh, d'accord. Alors maintenant, rendons juste un peu plus grand de tous les côtés. Ce que nous allons faire, c'est que nous allons dupliquer le panneau des articles. Nous allons l'ajouter sous le panneau des éléments déjà existants, et nous appellerons ceci la description de l'élément, cette option de courbe. OK, appuyez sur Entrée et on va le rendre plus petit. C' est donc là que nous allons définir les informations de nos articles. Alors, où aura-t-il un nom et la description de l'article que nous avons créé ? Donc, nous allons aller dans l'un de ces boutons, le bouton Articles, Disons que nous allons dupliquer le texte et nous allons le faire glisser dans la description de l'élément. Et on va le déplacer vers le bas. Et ici, nous allons écrire que c'est le nom de l'article. Et évidemment, nous voulons le mettre à droite et peut-être samedi en haut. Alors ajustons ça. Et encore une fois, ce sera une longue vidéo. Je sens même si nous n'avons pas commencé, mais parce que chaque fois que vous travaillez avec l'interface utilisateur, ce sera une longue vidéo. Donc les articles nom, et peut-être rendre cela un peu plus petit. Alors, voilà. C' est en quelque sorte le nom des articles, je pense. Ok, donc le nom de l'élément, et nous allons changer ce texte pour le texte du nom de l'élément. Et nous allons le dupliquer. Et non, nous n'avons pas
dupliqué, dupliqué maintenant et nous allons ajouter un ici. Cela va être l'objet, cette corruption ou appelons-le simplement le, le script ou
le bureau et le bureau. Donc parce que nous n'avons pas beaucoup d'espace ici, nous allons juste avoir à voir avec ce que nous avons. On peut même le rendre un peu plus petit. Nous allons donc rendre le panneau de la description de l'article juste un peu plus petit, donc nous avons plus d'espace à ajouter. Les éléments vont le déplacer vers le bas. Et voilà. Donc, et cela va être le texte de la description de l'article. Oh, ok, alors gardons ça. Maintenant, nous allons avoir besoin de deux boutons. Alors que pouvons-nous faire avec un article une fois que nous l'avons choisi ici, nous devons soit l'utiliser, soit le jeter. Nous allons donc ajouter deux boutons ici, cliquez avec le bouton droit de la souris et la description de l'élément, ou il n'a pas besoin d'être dans la description de l'élément. Allons de l'avant et créé en dehors de celui-ci, mais toujours dans le panneau des éléments. Donc un bouton que nous allons faire glisser ici. On va appeler ça le bouton Utiliser et regarder une sorte d'arrière-plan, devrions-nous le donner ? Eh bien, c'est le contexte que nous utilisions. Donc, les éléments de l'interface utilisateur, Donnons que ce jeu d'arrière-plan conserve natif. Disons qu'on ne devrait pas conserver le rapport d'aspect. Nous devrions ajouter notre propre rapport d'aspect. Cela va être dupliqué. Un bouton Ignorer. Donc défaussez le bouton, et si vous êtes déjà ennuyé, je recommande la vraie pause de la vidéo en ce moment et juste aller de l'avant et continuer sur. Parce que ce sont des choses très basiques. Donc ce que je vais faire, je vais juste supprimer le texte sur les boutons. Cliquez avec le bouton droit, Ajouter une sonde de maillage texte Et nous allons nommer cette utilisation. Et le texte va rester le même ou cliquez avec le bouton droit ici à nouveau sur le texte Mesh pro. Scarred aurait dû le faire avant. Nous allons définir la police,
définir la couleur complètement noire, la rendre audacieuse. Et ajustons les positions ici pour que nous puissions régler cette cicatrisation. On va s'assurer que c'est au milieu. Et on y va, peut-être le rendre un peu plus petit. Donc on y va, la défection. Je pense qu'on peut même agrandir ce bouton. Alors laissez-moi simplement supprimer le bouton US et travailler sur un seul. Sera ensuite dupliqué. Donc on va le rendre un peu plus grand. Voilà, un peu plus large. Donc maintenant, nous pouvons faire notre texte en forme et juste un peu plus et augmenter. Oh, gentil, ça a l'air beaucoup mieux. Donc dupliquez le bouton de défection. Et on va le déplacer juste à côté du bouton ici. Où est le texte ? Et nous allons mettre ça à l'utiliser. Ok, donc maintenant que la partie facile est faite, commençons par les brûlures d'estomac et avant que j'oublie, nous devons
aussi aller à la description de l'article. Dupliquez cela aussi, car nous voulons ajouter le nom de l'élément ici. Donc nous allons faire ce chemin, beaucoup plus longtemps. Donc ça devrait être juste par ici. Et nous allons dupliquer ça et le mettre ici. Il s'agit de la valeur du nom de l'élément et de la valeur de l'élément. Et nous allons essayer peut-être de le mettre en place dans le texte, peu importe ce qu'il est. Donc la taille automatique parce que peut-être la description va être trop longue pour tenir ici donc nous ne voulons pas qu'elle aille partout. Ok, alors maintenant que la partie facile est faite, c'est l'heure de la partie difficile. Et nous allons créer la boîte d'articles ici. Donc, pour ce faire, nous allons entrer dans la description de l'élément fermé et le panneau de l'élément clic droit, nous allons créer un objet de jeu vide. Ce sont les éléments que nous allons rendre aussi grand que l'espace disponible que nous avons ici. Alors, voilà. Et maintenant, nous allons ajouter le clic droit ici, créer ou ajouter l'interface utilisateur un bouton. Nous allons lui donner le contexte de ce genre de panel. Donc, comme nous l'avons fait, et nous allons ajouter le texte ici. Rendons-le un peu plus petit. En bas, on va à 0. Cela devrait être un texte Mesh Pro, donc pas de soucis au sujet de cette sonde Mesh texte. Et ce sera le montant, le montant. C' est vrai parce que plus tard, nous aurons des objets que nous pouvons stocker ou empiler plusieurs fois. Donc, nous pouvons avoir, disons cinq portions de santé sur la même position. Allons-y et posons-le ici. La taille fera que la police tapera 99. Nous allons y arriver. Je ne suis pas sûr de ce qui peut être complètement noir, peut-être complètement blanc. Je ne sais pas ce que ça devrait être. On verra plus tard. Et je suppose que c'est assez bon. Peut-être que le bouton doit être plus carré. Donc, le, voyons. On va l'installer ici. Ça devrait être carré. Voyons donc si c'est un libre faire la largeur 160. Et pourtant, je pense que 120 par 120 est un bon nombre. Ok, donc nous allons déplacer le texte un peu vers la droite ou non devrait utiliser le t. Assurez-vous toujours d'utiliser l'outil rec lorsque vous travaillez avec des éléments de l'interface utilisateur. Donc par l'outil de rack, je suis dans cette boîte juste là, ou en appuyant sur V T. Et enfin, nous devons ajouter une image ici. Donc nous faisons un clic droit. Nous allons à l'interface utilisateur, nous ajoutons une image. Et cette image sera la représentation de certains types d'éléments. Donc, ce sera l'élément, l'image des éléments. Et nous allons juste ajouter un type d'image par défaut. Alors utilisons la hache dorée. Voilà, tu y vas. Donc appelé un jeu de hache taille native o. comment tirer qui préservent le rapport d'aspect ? Et nous allons l'ancrer sur tous les côtés et ici, donc voilà. Comme vous pouvez le voir, nous avons l'article ici. Donc maintenant, la dernière étape est que nous allons ajouter aux éléments
un composant qui est appelé la mise en page, la mise en page de la grille. Nous avons déjà couvert cette disposition de grille. Donc on doit le faire 120 par 120 parce que c'est ce qu'on a dit ici. La taille du bouton doit être de 120 par 120. Vous pouvez le voir ici. Et peut-être juste ajouter un peu d'espacement ou quelque chose comme ça. Donc on va régler ça à 0. Et maintenant, si nous appuyons sur le bouton, bouton
articles, nous allons le dupliquer, dupliquer, dupliquer. Et voyons combien de boutons nous pouvons ajouter. Je vais donc vous lancer un défi ici, et votre défi est de découvrir le nouveau composant. Donc nous avons déjà couvert ce composant, je sais, mais il est temps pour vous de le découvrir. Prenez le temps d'explorer le nouveau composant de grille et de l'utiliser pour organiser les éléments de manière appropriée. Trouvez donc la taille que vous voulez pour vos articles et assurez-vous de changer l'espacement, changer la taille des cellules, jouer, voir comment vous pouvez organiser vos éléments dans le menu des éléments. Alors arrêtez la vidéo tout de suite et allez mec, chaque défi. Oh, ok, bienvenue. Nous allons donc passer aux articles 120 par 120. C' est mes chiffres. Vous n'avez pas à suivre mes chiffres. Donc je vais ajouter un peu d'espace ici et un peu d'espace comme ça. Alors, combien d'articles voulez-vous avoir ? Et je pense que je veux les rendre plus grands. Donc je pense qu'un bon nombre, 150 comme vous pouvez le voir, j'expérimente. Je ne suis pas sûr de ce que je vais utiliser. Je vais juste avec le flux, voir ce qui se passe. Donc, c'est assez d'articles ou nous devrions le rendre encore plus grand. Essayons 200 par 200. Non, c'est trop grand. Donc 170 par 170. C' est comme ça que vous faites des jeux, mesdames et messieurs. Alors, voilà. 170 est un bon nombre. Et ils s'adaptent parfaitement bien ensemble. Donc on va encore dupliquer. Et tu verras, oui, on y va. Ce sont nos éléments maintenant ils sont des valeurs par défaut. Nous allons les changer plus tard, mais maintenant que nous avons la mise en page correcte, nous pouvons tous les supprimer. Et la façon dont vous pouvez choisir le premier et le dernier, cliquez sur l'un d'eux. Maintenez Maj enfoncé, cliquez sur le dernier, appuyez sur, Supprimer. On y va. Donc maintenant nos articles beaucoup de bon verrouillage. Dans la vidéo suivante, nous stockerons nos articles dans l'inventaire afin que nous puissions ensuite les ajouter ici dans le menu des articles. Cela dit, j'espère que ça vous plaira. Oh, et avant que j'oublie, j'espère que vous n'avez pas commis vos changements parce que nous ne voulons pas que tout le PNG soit engagé. Donc, je vais cliquer avec le bouton droit de la souris et ignorer tout sous les actifs, les éléments, ou même sous les sprites d'actifs. Ignorer tout, ok, maintenant nous allons sélectionner tous les éléments et
les éléments avec le gestionnaire des artisans et créé un des éléments et beaucoup. Ok, formidable engagement tout ça. J' espère que ça vous plaira et je vous verrai dans la prochaine vidéo.
56. Listes en C#: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons créer un inventaire en utilisant des listes et C-Sharp. Donc, quand on fait notre jeu, rien de spécial. Vous venez de voir ici, hey, nouvel inventaire a été créé parce que nous avons un script d'inventaire sur le gestionnaire de jeu, ce sera important pour le défi. Alors rappelez-vous, l'inventaire va dans le gestionnaire de jeu. J' ai donné le défi. Pas de soucis. Ne perdons plus de temps. Et commençons. Oh, affaire. Donc il liste et C-Sharp. Pourquoi utilisons-nous des listes et C-Sharp ? Parce que nous voulons créer un inventaire. Et l'inventaire a une liste d'articles. Et pourquoi utilisons-nous une liste et pas un tableau ? Je vais vous expliquer un peu. Mais tout d'abord, allons de l'avant et créons un nouveau script ici. Donc, si nous allons aux scripts,
cliquez avec le bouton droit de la souris ou allez aux éléments avec le bouton droit de la souris et créez un inventaire. Donc, dans l'inventaire, on y va. Et ouvrons le script. Et cela continue de se produire. Ouvrez les scripts. Et la première chose que nous allons faire est de créer une liste privée privée. Et chaque liste aura un type. Il va être de type gestionnaire d'éléments et ce sera une liste d'éléments. Alors pourquoi utilisons-nous une liste d'éléments et quelle est la différence entre une liste et un tableau. Donc les tableaux ont un site déjà défini. Donc, quand nous créons un éventail de joueurs, statistiques et de gestionnaires de jeux, etc., nous savons déjà combien il y en aura. Nous pouvons ajouter à cela. Mais chaque fois qu'on veut en retirer un,
ça va être très difficile. Nous devons jeter l'endroit vide que nous laissons. Donc, par exemple, disons que nous créons un tableau de trois endroits et l'un d'eux est supprimé, alors il sera très difficile de remplacer cet espace vide. Pourquoi les listes sont très dynamiques et beaucoup plus faciles à parcourir. Et nous avons besoin de quelque chose où nous pouvons retirer un article et placer un article très rapidement. Nous ne voulons pas être enlisés en supprimant ces espaces vides et en les remplissant de quelque chose et en réorganisant tout et ainsi de suite. Les listes sont donc beaucoup plus flexibles que les tableaux. Donc, chaque fois que nous
créons une liste, nous devons l'instancier. Alors et commencez, chaque fois que nous commençons notre inventaire, nous allons aller à la liste des articles. Et nous allons dire que c'est égal à une nouvelle liste de type gestionnaire d'élément. Et nous devrons ajouter ces deux crochets et fermer avec un point-virgule. Maintenant, ce que nous voulons faire, c'est nous voulons nous assurer qu'une nouvelle liste est créée. Il est donc temps de relever un petit défi, et ce sera d'envoyer un message sur
la console chaque fois qu' une nouvelle liste d'éléments est créée, chaque fois que nous commençons une liste. Alors, vous l'avez compris, commencez la liste. Et vous devrez utiliser le journal de points de débogage et la norme d'impression. Alors arrêtez la vidéo dès maintenant et allez faire ce petit défi. Ok, bienvenue. Donc déboguer, nous savons déjà comment faire cela. C' est un défi assez facile. Donc, debug backlog et le foin, un nouvel inventaire a été créé. Sauvegardez ça dans notre jeu. Éteignons le menu pour l'instant. Exécutons, oh, avant d'exécuter le code, nous n'avons pas ajouté le script. Ça faisait partie du défi que je voulais que tu testes. J' espère que vous l'avez fait, j'espère que vous avez trouvé cette erreur. Nous devons ajouter l'inventaire quelque part. Où devrions-nous l'ajouter ? Eh bien, je pense que le meilleur endroit où un inventaire est dans le gestionnaire de jeu. Pourquoi ? Parce que lorsque nous passons d'un script à l'autre, nous voulons conserver notre inventaire. Nous ne voulons pas, je veux dire, du script, je voulais dire de scène en scène, nous voulons garder notre inventaire et Game Manager est l'un des rares objets de jeu qui ne sont pas détruits quand nous passons d'une scène à l'autre. Donc je pense, encore une fois, Manager est un endroit parfait pour stocker dans l'inventaire. Vous pouvez également créer un script séparé ou un objet de jeu distinct pour l'inventaire, ou vous pouvez l'ajouter au lecteur. Mais je ne pense pas que le joueur soit le meilleur endroit parce que
disons qu' à un moment donné nous voulons tuer notre joueur et détruire l'objet. Nous voulons garder une trace de l'inventaire et quelque chose de plus permanent. Nous ne détruirons jamais le gestionnaire de jeu. Maintenant que le gestionnaire de jeu a l'inventaire, nous allons lancer le jeu. Et voilà. Dès que nous commençons le jeu,
un nouvel inventaire a été créé. Ok, super. Donc maintenant, l'une des choses les plus essentielles pour utiliser un analyste est de pouvoir y ajouter des choses. Et l'inventaire est très important d'avoir un moyen d'y ajouter. Donc, si nous ramassons les articles, nous devons les ajouter à l'inventaire. Revenons en arrière et notre script d'inventaire. Et ici, nous allons créer un vide public, ajouter des éléments. Et nous allons lui donner un argument. Et cet argument ou paramètre va être de type éléments, gestionnaire, élément. Sauvegardez ça. Maintenant, ici, nous allons appeler la liste des articles et nous allons ajouter l'élément. Fermez ça. Alors maintenant que se passe-t-il ? C' est une méthode spéciale de listes. Donc, nous appelons les articles, nous appelons la méthode ajouter des articles de l'inventaire. Nous lui donnons l'article que nous voulons ajouter. Et puis nous accédons à la liste des articles que nous avons et y ajoutons un élément. Et la façon dont nous accédons à la liste ou à l'inventaire est que nous allons créer un inventaire statique public en position. On y va et on commence. Nous allons mettre l'instance à cela. On y va, sauve ça. Dans la vidéo suivante, nous allons commencer à visualiser comment ces articles vont ressembler dans nos articles, les hommes. J' espère que ça vous plaira. J' espère que vous engagez votre travail et je vous verrai dans la prochaine vidéo.
57. Choisir des objets: Bienvenue à mes collègues développeurs de jeux dans cette vidéo POUR, et encore une fois, je vais juste vous montrer, je n'ai pas besoin de vous dire ce qui se passe. Nous nous rapprochons donc de la monopolisation. On y va. Il fait l'autodestruction et nous avons des manipulations a été ajouté à l'inventaire. Quel est l'âge de cette partie HP ? L' armure d'argent et d'orange doré et les actes d'or. Ainsi, comme vous pouvez le voir, nous avons un inventaire qui fonctionne réellement avec les articles que nous avons créés. Alors ne perdons plus de temps et commençons. Oh, donc il est temps de commencer à ramasser nos articles. La première chose que nous devons faire pour ramasser un article comme un moyen d'interagir avec lui. Alors, qu'allons-nous faire pendant que nous allons ajouter un collisionneur ? Donc on va vérifier tout ça. Nous allons ajouter un composant et ce sera un collisionneur. Vous pouvez choisir s'il s'agit d'un collisionneur, d'un collisionneur en boîte ou d'un collisionneur en cercle. Je vais choisir un cercle. Alors, où est-ce que ça est allé ? Un collisionneur en cercle. On y va. Donc chacun de ces éléments a maintenant un collisionneur de cercle. Vous pouvez ajuster chacun d'entre eux. Par exemple, vous pouvez voir que celui-ci est juste un peu trop gros pour le HP, pour la potion. Pour l'armure d'or. Non, c'est assez grand pour le x, pour le x d'argent et pour l'armure d'argent. Bon, maintenant qu'on a un collisionneur sur chacun d'eux, on va en faire un déclencheur. Et nous allons aller et créer une méthode où nous pouvons déclencher quelque chose chaque fois que nous entrons dans le voisinage savent déjà ce que signifie déclencheur. Donc, nous allons créer un entrepreneur, entrez sur chaque élément. Donc, dans le gestionnaire d'articles, c'est le gestionnaire de nos articles. Donc, nous allons créer une entrée sur Trigger vers D. Et la première chose que nous devons nous assurer est que nous devons, tout d'
abord, que c'est le joueur qui est bien en collision avec l'objet. Donc, nous ne voulons rien d'autre pour ramasser cet article. Donc, si le tag Collision.com est le joueur, alors ici nous allons aller de l'avant et faire quelques choses. Donc, la première chose est que nous allons imprimer le nom des articles. Donc, cet élément est et nous allons le concaténer avec lequel de ceux-ci et le nom de l'élément. Donc nom de l'article, fermez cela, sauvegardez cela et notre unité, exécutons le code et voyons si cela fonctionne. Alors, lancez notre jeu. Et maintenant, si nous passons à la partie manne, voilà. Cet article est la répartition de la demande. Cette manne est la partie HP. Armure d'argent, armure d'argent et d'or et la hache d'or. Alors, c'est cool ? Nous savons déjà quel article nous ramassons. Mais comme vous le savez, quand nous ramassons un objet dans un jeu, ces objets disparaissent. Il ne continue pas à nous regarder. Donc nous aurons besoin d'un moyen de le détruire. Donc, pour le détruire, je vais vous lancer un défi. Et votre défi consiste à s'autodétruire ou à s'autodétruire. Donc, créez une méthode et un gestionnaire d'éléments dans le script d'élément, cela aurait dû être un script d'élément qui se détruit lui-même. Alors utilisez-le quand un objet est ramassé par le joueur. Et je vais vous donner un petit indice. Si vous savez déjà comment détruire un objet de jeu, arrêtez la vidéo dès maintenant et allez relever le défi. Ne pas utiliser détruire. Oui, c'est tout sur un objet de jeu. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bon, bienvenue. Donc ici, nous allons créer un vide public, même si je ne pense pas que nous l'utiliserons ailleurs. Mais gardons-le comme public, s'
appellera détruire. Et ici, nous allons détruire l'objet du jeu. Sauve ça. Et maintenant, après avoir récupéré l'article, nous allons au Sud détruit. Voilà, tu y vas. Sauve ça. De retour dans notre jeu ici. Voyons si ça marche. Donc maintenant, nous devrions voir, par exemple, potion de
manne, et ensuite que les monopoles devraient disparaître. Alors on le ramasse. On y va. L'avortement de l'homme a disparu. La santé et tout ce que nous pouvons ramasser et tout cela disparaît. Tellement génial que nous sommes sur la voie de la création d'un système d'inventaire et d'un système d'articles incroyables. Mais il y a encore une petite chose que nous devons faire et c'est tout d'abord, nous pouvons supprimer cela, commenter ceci. Et dans l'inventaire sera également commenter cela. Nous n'avions plus besoin d'autre chose. Maintenant, nous devons réellement ajouter cet article à notre inventaire. Donc, ce que nous allons faire est que nous allons tout enregistrer ici, va dans l'élément ajouter. Nous allons juste imprimer l'indice ici, quelque chose juste pour garder une trace de tout et s'assurer que rien ne va mal. Donc, l'article je suis et de faire autre chose, nom de l'article
point de l'article plus le a été ajouté à l'inventaire. Sauve ça. Et ce que nous pouvons aussi faire comme nous avons la longueur d'un tableau. Nous pouvons également vérifier le nombre de listes d'articles. Donc nous comptons nous donne la taille du test. Et ce qu'il faut faire ici avant que nous détruisions les cellules. Nous allons accéder à l'inventaire. Nous allons accéder à l'instance et nous allons ajouter un élément à des éléments. Et l'article que nous allons lui donner est le suivant. Alors sauvegardez ça, et voyons si ça marche. Donc, de retour à Unity, nous allons exécuter notre jeu et nous allons
vérifier si nous ajoutons des objets afin de récupérer le mana. Voilà, mec, l'avortement a été ajouté à l'inventaire. Ensuite, nous avons la partie HP a été ajouté à l'inventaire et vous pouvez voir que le nombre est deux. L' armure, le, qu'est-ce que c'est ? Les actes d'argent, l'armure d'or et les actes d'or. Donc, comme vous pouvez le voir, nous avons créé un moyen d'ajouter des choses à
la liste, la croissance, et c'est tout. Dans la vidéo suivante, nous allons réellement afficher les articles ramassés dans notre inventaire. Alors je te verrai alors. N' oubliez pas de valider vos modifications.
58. Mise à jour des objets dans l'inventaire: Bienvenue, mes collègues développeurs de jeux. Nous ne faisons rien de fantaisie dans cette vidéo, nous mettons simplement en place les bases que nous allons utiliser pour la prochaine vidéo où nous allons afficher tous les articles que nous ramassons. Donc, nous allons juste avoir une référence à quelques choses. Nous allons parler brièvement de l'instanciation, et nous allons également créer une méthode qui renvoie des listes. Alors ne perdons plus de temps et commençons. Ok, donc il est temps d'afficher les objets que nous ramassons. Comment allons-nous faire ça ? Tout d'abord, laissez-moi allumer le menu pour que nous puissions voir clairement ce qui se passe. Donc, ce que nous voulons faire, c'est chaque fois que nous ramassons un article, nous voulons créer une nouvelle fente d'objet ici. Et nous ne voulons pas avoir tous les emplacements d'articles disponibles ici, puis les activer et désactiver. Nous voulons les instancier quand nous en avons besoin. Nous avons donc une approche un peu différente qu'avant, surtout quand nous créons du caractère et 4, où nous avons déjà tout ici. Nous voulons créer quelque chose de différent. Nous voulons réellement instancier chaque élément au fur et à mesure qu'il est ramassé. Alors, comment allons-nous faire ça et qu'est-ce qui est même instanciant ? Eh bien, nous n'irons pas dans l'instanciation dans cette vidéo, mais laissez-moi vous donner un petit aperçu. La façon dont nous instancions quelque chose est que nous en avons un préfabriqué quelque part stocké dans nos actifs. Et chaque fois que nous voulons créer quelque chose qui ressemble à ce préfabriqué, peut-être avec de petites différences, nous pouvons l'instancier. Donc, d'abord, comme nous le savons, nous avons besoin de la référence préfabriqué. On a besoin du parent. Pourquoi parent ? Parce que nous voulons instancier les éléments à l'intérieur des éléments. Appelons ça le panneau d'affichage des éléments. Donc, ce panneau de jeu, donc nous avons besoin d'une référence à ce panneau d'affichage de l'élément. Ainsi, nous pouvons créer des objets, des boutons, qui seront nos préfabriqués à l'intérieur d'ici. Et parce que nous avons déjà créé une mise en page de grille, ils seront disposés très soigneusement et notre menu. J' espère que ce n'est pas trop déroutant. Je voulais juste jeter les bases des deux prochaines vidéos pour qu'on ne soit pas confus. Commençons. Tout d'abord, nous allons créer un préfabriqué. Donc NR préfabs ici. Allons de l'avant et faites glisser le bouton des éléments. Donc, ce sera ce que nous allons utiliser pour instancier et nous allons également obtenir une référence à elle. Allons-y et ouvrons nos scripts et le gestionnaire de menus, où est-il ? Donc, dans Menu Manager et n'ont pas remarqué combien de scripts nous avons déjà, notre gain prend vraiment forme. Donc, que ce soit un petit rappel, obtenons une référence au conteneur de fente d'élément. Nous allons donc créer un champ sérialisé. Il va être de type objet de jeu. C' est le conteneur de nos articles. Donc article, fente, conteneur. Ce sera le, celui-ci l'élément d'affichage. Alors, où est-il ? Donc, ce sera le panneau d'affichage des éléments. Et puis nous allons créer un deuxième champ sérialisé qui va être de type transformation. Et ce sera le parent de conteneur de fente d'élément. Ok, donc ce que je peux dire que le conteneur de fente d'éléments sera le préfabriqué que nous venons de créer et le parent sera les panneaux d'affichage de l'élément. Donc juste pour éviter toute confusion, comme je me suis confus en
ce moment, ce sera là que nous avons dit que le parent, ce sera le conteneur que nous allons instancier, verra tout cela dans juste un peu nu avec moi. Ensuite, nous devrons créer une méthode pour afficher nos articles chaque fois que nous les ramassons dans le Gestionnaire de menus. Donc ici, nous allons faire défiler vers le bas et après la mise à jour du menu Stats va créer un vide privé. Mettre à jour les articles, l'inventaire. Et pour l'instant, nous allons simplement le laisser vide car avant de le faire, nous avons besoin d'un moyen d'obtenir une référence de nos articles. Si nous regardons dans l'inventaire, vous remarquerez que la liste des articles est privée, nous avons
donc besoin d'une méthode dans l'inventaire pour pouvoir les obtenir. Donc, la façon dont nous faisons cela est en vous lançant un défi et votre défi est de créer une méthode de liste de types. Donc, créez une méthode qui nous permet d'accéder à la liste des éléments. La méthode doit être de type qui renvoie une liste, un type particulier de liste, et devrait retourner la liste des éléments que nous avons. Alors arrêtez la vidéo dès maintenant et allez de l'avant et créez une méthode qui nous donne la liste des éléments. Ok, bienvenue de retour. Comment as-tu eu tout ça ? Et je ne suis pas sûr que nous utiliserons la mise à jour pour l'instant. Donc, je vais juste le supprimer si nous en avons besoin, va le créer plus tard. Donc, ce sera un public parce que nous allons y accéder à partir des scripts de front. Il va être de la liste de types. Vous le savez déjà, mais quel type devrait-il être ? Il devrait être de type items manager parce que nous obtenons ces éléments liste et il va être appelé la liste get items. Il ne prend aucun argument,
et tout ce qu'il fait, c'est qu'il retourne la liste des éléments. On y va. Alors que se passe-t-il maintenant lorsque nous faisons appel à l'instance de l'inventaire ? Nous accédons à la méthode obtenir la liste des éléments et il nous renvoie cette liste d'articles. Alors, dans notre gestionnaire de menus, où est-il ? Nous allons l'utiliser ici pour nous assurer que nous en avons tous. Et la prochaine vidéo, nous ajouterons les fentes du code au fur et à mesure que nous poursuivons notre jeu. Et peut-être avant de faire ça, allons-y et la toile qui fait défiler vers le bas. Voyons voir. On y va. Le conteneur de l'emplacement de l'élément. Il devrait s'agir du bouton Items. Et nous transformons sera l'affichage des éléments. Et vous vous demandez peut-être, pourquoi est-ce de type transform, parce que si nous cliquons sur l'affichage Articles, vous remarquerez qu'il n'a rien d'autre que le transport. On pourrait même devoir le changer pour Rect, Transform. Il s'agit d'un type différent de transformation qui est utilisé uniquement pour les éléments ou les objets de jeu dans l'interface utilisateur. Donc, avec cela fait, j'espère que vous apprécierez ça. Vous n'aurez pas besoin de valider vos modifications pour l'instant dans la prochaine vidéo. Alors, je te verrai.
59. Affichage des objets choisis: Bienvenue, mes collègues développeurs de jeux. C' est une vidéo très excitante parce que lorsque nous ramassons des articles, si nous allons maintenant à notre menu, nous allons à des éléments statistiques. Voilà, tu y vas. Vous pouvez voir que nous avons tous nos articles affichés avec les bons sprites et combien nous avons ramassé ? Non, pas représenté par un nombre, mais vous pouvez voir que nous avons trois bouteilles de promotion de la santé et ainsi de suite. C' est donc une vidéo très excitante. Ça met vraiment tout ce qu'on a travaillé ensemble. Un code un peu compliqué peut être, mais nous allons tout apprendre étape par étape et vous comprendrez chacune de ces étapes. Alors ne perdons plus de temps et commençons. D' accord. Il est temps d'arriver à la partie difficile. Ce n'est pas trop dur, mais c'est un peu nouveau. Alors, qu'est-ce qu'on veut faire ? Et notre codage ici, nous pouvons voir que nous voulons mettre à jour les articles en stock. Donc, ce que nous allons faire est que nous allons passer en revue chacun des éléments de la liste des articles. Et nous pourrions utiliser la boucle for, mais il existe un moyen beaucoup mieux et efficace d'accéder à chaque élément et à une certaine liste. Et c'est la boucle foreach. Parlons donc de la boucle for-each, un très central à. Donc, il vous permet de passer par chaque chose dans une collection de choses du même type et un tableau ou une liste, peu importe. Donc, c'est la structure que nous écrivons pour chaque que nous définissons le type, nous créons un nom en sorte de choses. Donc, ce sera, ils devraient bien sûr être du même type. Donc, ce sera la liste à laquelle nous allions accéder. Ainsi, par exemple, dans notre cas, ce sera la liste des articles. Ce sera n'importe quelle variable que vous voulez nommer afin que nous puissions le nommer des éléments. Et il sera de type gestionnaire d'élément parce que nous accédons à l'élément. Donc, lorsque nous accédons à chacun des éléments de cette liste, nous pouvons obtenir la chose ou l'élément. Nous pouvons utiliser une méthode dessus, ou nous pouvons l'envoyer à une autre méthode ou exécuter toute autre chose que nous voulons avec elle. Alors allons de l'avant et implémentons une boucle foreach. Donc, nous allons écrire pour chacun, nous allons ouvrir ces petits crochets et il va être de type gestionnaire d'élément. Il va être nommé élément. Et nous allons regarder dans l'inventaire. Par exemple, point get list. Donc, obtenez la liste des articles. Donc, c'est la méthode que nous avons créée plus tôt et ici, donc là vous allez, Obtenir la liste des éléments. Alors, qu'est-ce qu'on va faire ici ? Eh bien, ce que nous voulons est d'instancier les emplacements d'élément que nous avons mis en place ici. Nous devons donc créer de nouveaux boutons, créneaux
horaires pour l'article chaque fois que nous avons un nouvel article dans l'inventaire. Et si nous entrons ici, je vous montrerai ce que signifie instancier. Donc, comme vous pouvez le voir, il y a beaucoup de déclaration de cela dans les chiens de l'unité. Et l'un d'eux, et celui que nous allons utiliser est celui qui nous permet de fixer certains parents pour ça. Donc, il deviendra un enfant d'un autre objet ou il sera sous lui. Et pourquoi avons-nous besoin de ça ? Nous avons déjà couvert cela dans la vidéo précédente. Nous voulons que les éléments créés soient les enfants de
ce panneau d' affichage des éléments afin qu'ils soient correctement disposés en utilisant la disposition de la grille. Donc cela établi, allons de l'avant et utiliser celui-ci, celui qui utilise le parent, et nous avons déjà mis en place le parent ici. Où est-il ? Donc, voilà, les éléments sous conteneur parent. Alors, comment allons-nous faire ça ? Eh bien, ce sera tout d'abord, de type Rect Transform. Donc Rect Transform, nous avons déjà dit pourquoi il s'agit d'une transformation directe, mais nous allons y revenir pour que vous puissiez voir ici que c'est Rect Transform. Donc, ici aussi, nous instancions une transformation tordue, pas seulement n'importe quelle transformation. Donc, de retour ici, Rect Transform va être la fente d'élément et il va être égal à instancier conteneur d'emplacement d'élément. Et c'est le préfabriqué que nous avons mis en place. Maintenant, nous devons lui donner un parent qui va être le parent de conteneur de fente d'élément. Et si nous nous arrêtons ici, vous remarquerez que nous avons une erreur parce que nous voulons instancier un objet de jeu dans un Rect, Transform. Et c'est pourquoi nous allons accéder au composant. Donc, nous allons obtenir le composant du transport emballé de cet objet. J' espère que cela a du sens. Qu' est-ce qu'on fait ici ? Tout d'abord, nous instancions le conteneur de fente d'élément. Et définir le parent comme parent de conteneur d'emplacement d'élément. Nous avons déjà configuré ces deux variables dans la vidéo précédente. Et puis nous accédons au composant de la Transformation Rect afin que nous puissions l'utiliser plus tard, peut-être si nous en avons besoin. J' espère que c'est clair. Sauvons tout ça. Retournons dans Unity, et allons de l'avant et éteignons le menu. Avec la course, notre jeu va ramasser quelques objets. Donc 1, 2, 3, 4, 5. Travaillez avant le menu. On va à Stat, on va aux objets. Et nous n'avons rien à afficher car
combien de fois dois-je faire cette erreur avant de l'obtenir enfin, nous terminons les boutons doivent réellement appeler cette méthode d'éléments de mise à jour. Donc, un élément en ajoutera un ici. Canvas, quelle fonction voulez-vous appeler ? Je vais mettre à jour dans le gestionnaire de menu, où est la mise à jour ? On l'a rendu privé ou affaire ? Alors rendons les choses publiques. Dis ça ici. Et maintenant, nous pouvons gestionnaire d'argent supplémentaire et mettre à jour les articles dans l'inventaire, sauver cela, exécuter notre jeu. Et maintenant, quand on ramasse quelques articles, on y va. Alors maintenant, nous avons touché la touche M. statistiques vont aux objets, et là vous allez. Donc, nous pouvons voir dans notre console que nous avons cinq éléments. Et ici, vous pouvez voir qu'on en a six. C' est parce que nous avons déjà un des boutons établis. Alors, comment allons-nous éviter ça ? Et surtout si vous avez essayé cela par vous-même, vous remarquerez que quelque chose de très bizarre arrive quand nous ajoutons tous ça. Nous frappons les éléments clés M, les éléments, les éléments, et vous voyez que chaque fois que vous augmentez. Pourquoi c'est ça ? Parce que si nous revenons dans le code, vous remarquerez que nous passons par chaque élément et ensuite nous instancions le conteneur de fente encore et encore et encore et l'ajoutons au parent de conteneur de fente. Alors, comment allons-nous éviter ça ? Eh bien, je ne sais pas comment on peut faire ça. J' ai fait beaucoup de recherches, donc je pense que ce sera votre travail à faire. Donc vous allez détruire les machines à sous avant qu'on les instancie. Vous allez donc utiliser vos connaissances nouvellement acquises pour supprimer ou détruire les emplacements d'éléments avant de les mettre à jour. Et vous devrez passer par chaque emplacement d'élément dans le conteneur d'emplacement d'élément et détruire. Donc, avec cette information, pause la vidéo dès maintenant, passe par tous les emplacements d'articles et le parent de slot et les détruire avant de mettre à jour l'inventaire. Alors que non, pause la vidéo dès maintenant et aller au défi. Oh, ok, bienvenue. J' espère que ce n'était pas trop dur. Alors qu'allons-nous faire avant de tout mettre à jour ici ou avant d'instancier ? Peut-être que vous l'avez fait dans une méthode distincte. Ce n'est pas mal. Mais nous pouvons le faire selon la même méthode. Nous allons passer par chaque emplacement d'élément de transformation et le parent de conteneur d'emplacement d'élément. Et ce que nous allons faire est simplement détruire l'objet du jeu de fente d'objet. Et nous accédons à l'objet du jeu parce qu'il s'agit d'une transformation. Donc, parce que le conteneur de fente d'élément parent contient des types de transformation, nous allons détruire l'objet de jeu fente élément. Alors, comment ça fonctionnera ? On retournera ici. On va diriger notre jeu. Nous allons ramasser quelques articles. Et maintenant, vous verrez que nous avons cinq articles. Si nous allons statistiques articles là, vous allez 12345. Et c'est parce que nous détruisons toujours les précédents disponibles. Donc, les éléments de statistiques back-end, vous remarquerez que nous n'avons plus l'erreur, mais il y a un léger problème. Et c'est que les images sont toujours les mêmes, donc nous avons l'image par défaut. Donc, pour corriger cela, nous allons revenir dans notre code et où nous instancions notre emplacement d'élément, nous allons créer une variable qui sera de type image. Ce sera l'image de l'élément. Et il va être égal à l'emplacement de point de l'article trouver. Et nous allons chercher l'image à l'intérieur de la fente d'articles. Maintenant, qu'est-ce qu'on trouve ? Laisse-moi te montrer. Trouve. Il est là. Il trouve un objet de jeu par son nom et vous l'utilisez toujours sur un objet de jeu. Ainsi, vous pouvez voir ce point d'objet de jeu trouver. Donc, ce que nous voulons faire, alors assurez-vous de prendre cela et d'ouvrir les documents afin que vous puissiez le voir clairement. Ce que nous voulons faire est d'aller sur le bouton Items juste ici et accéder à l'image des articles. Donc, nous allons copier cela parce que c'est une référence de chaîne et il regarde par son nom. On va le coller ici. Et nous allons obtenir le composant dessus, qui est de type image. Donc, je vous recommande d'utiliser ce point trouver très parcimonie car il peut causer beaucoup d'erreurs, surtout si vous changez parfois le nom. Donc, si nous changeons l'image des éléments de nom sous la fente de l'élément, cela va causer beaucoup d'erreurs. J' espère que vous avez compris ce qu'on fait ici. Nous accédons à l'emplacement d'élément que nous avons créé. C' est pourquoi nous nous sommes assurés que c'est une variable, afin que nous puissions l'utiliser plus tard. Nous trouvons l'image qui est nommé éléments image. Nous obtenons l'image du composant. Et maintenant, nous allons définir l'image de point de l'article sprite à égal à l'article parce que nous passons par chaque article, rappelez-vous, et notre image d'articles de stock. Donc nous allons sauver ça, revenir en arrière et notre jeu, nous allons exécuter le code. Et si nous ramassons quelques objets, ils devraient avoir l'image correcte affichée. Donc des images statiques, on y va. C' est cool ? Nous avons donc créé un inventaire très beau, mais il y a un léger problème si en ce moment je ramasse une deuxième bouteille de santé. Donc articles, potion HP. Laissez-moi dupliquer ça. Donc on va l'ajouter ici. Nous avons ajouté et ici nous allons exécuter le code. Alors maintenant, je ramasse 1231 des potions de santé et quelques autres articles. Si je vais statistiques, vous pouvez voir que nous avons trois potions de santé. Maintenant, ce n'est pas une erreur. Tout fonctionne bien. Mais si vous avez joué à des jeux RPG, vous remarquerez que les potions et autres types de gemmes sont parfois empilables. Donc, nous avons ce nombre ici devrait représenter le nombre de portions que nous avons. Peut-être des épées et des haches et un bouclier d'armure et ainsi de suite. Ils n'ont pas besoin d'être empilables, mais les potions doivent être empilables. Nous allons donc aborder ce problème dans la prochaine vidéo et nous assurer de
mettre en scène toutes vos modifications et la chaîne source. J' espère que ça vous plaira. J' espère que vous apprécierez le cours. J' espère que tu m'as aimé comme instructeur. Si vous le faites, encore une fois, je vais vous le rappeler, faites un plug-in ici. Laissez-moi un commentaire sur ce qui m'a beaucoup aidé. Merci.
60. Objets super: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons empiler des éléments les uns sur les autres. Même si Jimmy le démon peut mettre des haches dans sa poche, il a de grandes poches pour ajouter des bosons tous ensemble. Alors maintenant, quand nous lancerons notre jeu, vous verrez que si nous prenons un des axes et des boucliers, je veux dire Armen, nous pouvons aussi ramasser plusieurs de ces potions. Donc, vous remarquerez que nous avons ramassé trois potions de mana et pour la partie HP. Donc quand on a eu, euh, des
statistiques, tu y vas. Vous remarquez que nous avons un acte de chacun et une armure de chacun. Mais quand on regarde les potions, on en a 43. Ils sont empilés les uns sur les autres et non dans des emplacements différents. Donc, ne perdons plus de temps, et commençons à empiler des articles. Donc certains articles devraient être empilables, d'autres ne devraient pas. Donc pièces de monnaie, océans, et ainsi de suite. Tout devrait être empilable. Les plaques d'armure, les casques, les épées, etc. ne devraient pas être empilables. Alors mettons en œuvre cela dans notre gestionnaire d'articles. Nous allons entrer dans le gestionnaire d'articles. Et ici, nous allons ajouter deux nouvelles variables. Le premier va être un bool public et est empilable. Donc, si celui-ci est vrai, nous allons l'ajouter un peu différemment dans l'inventaire. Et une autre variable qui
va ajouter va être un entier et ce sera le montant. Donc, disons que vous jetez une partie de la santé, vous pouvez définir le montant à deux ou trois, ou cinq ou 10. Ok, donc avec cela fait maintenant, nous devons
créer une méthode spéciale dans l'inventaire pour les ajouter. Nous allons donc nous assurer que nous pouvons vérifier un montant chaque fois que nous ajoutons un article. Et actuellement, nous allons supprimer l'impression ou peut-être, vous savez quoi, nous allons simplement l'enlever ou gardons comme un commentaire. Donc, nous allons le commenter. Tu sais ce que c'était pour l'enlever, on va enlever celui-là et celui-là. Et maintenant, nous allons vérifier et les éléments. Donc, tout d'abord, si l'élément que nous recherchons est empilable, alors ce que nous allons faire est de parcourir chaque élément. Le gestionnaire nommera cet élément. Et puis la liste des objets Tory et V. Ensuite, nous allons vérifier si l'article dans le nom de point de la liste
de stock est égal à l'article que nous essayons d'ajouter le nom de l'article point. Donc, fondamentalement, ce que nous faisons ici est de vérifier si nous avons déjà cet article dans l'inventaire, nous allons aller aux articles dans l'inventaire, allons accéder au montant. Et nous allons l'augmenter du montant de l'article que nous essayons d'ajouter. Alors que se passe-t-il ici ? Nous vérifions tout d'abord s'il est empilable. Ensuite, nous allons examiner nos articles dans la liste des articles. Et nous allons vérifier si l'un de ces articles est égal au même que l'article que nous venons de ramasser. Et si c'est le cas, alors nous allons augmenter la quantité de l'article dans l'inventaire de la quantité de l'article qui nous est donné. Disons que nous avons déjà deux potions de santé. Nous ramassons deux autres potions de santé. Il va augmenter de deux, donc nous en aurons un total de quatre. Et enfin, si ce n'est pas empilable, cela va simplement ajouter l'élément et la liste. Voilà, tu y vas. Oh, d'accord. Correct. Mais que ferons-nous si l'article est empilable mais n'a pas encore été ajouté ? C' est donc la première fois qu'il est ajouté à l'inventaire. Nous allons créer un booléen ici qui gardera une trace de cela. Donc, un élément booléen déjà en stock, et il sera égal à false juste par défaut. Et s'il est disponible à l'intérieur de l'inventaire, nous allons le définir sur true. Donc, l'article déjà en stock est égal à vrai. Donc c'est établi. Mais si ce n'est pas le cas, alors nous allons créer une condition ici qui
sera le cas si l'article n'est pas déjà dans l'inventaire. Donc vous remarquerez que j'ai ce point d'exclamation. Donc, si l'article en stock est faux, cela signifie
qu'il n'a pas été trouvé dans l'inventaire et la pente juste ici. Ensuite, ce que nous allons faire est simplement d'aller à la liste des articles et d'ajouter cet élément. Comme nous le faisons normalement. On y va. Donc, ce qui se passe ici, comme vous le savez, ici et cette boucle pour chaque, nous regardons tous les articles et vérifions si nous
avons cet article dans l'inventaire. Et si nous le trouvons, nous l'augmentons du montant que nous recevons. Et nous définissons les articles déjà en stock sur true. Donc, cette condition n'accède pas, ou ceci, cette condition ici est fausse. Ou toute la condition ici avec le point d'exclamation est fausse. Nous n'ajoutons donc pas l'élément à la liste. Nous l'augmentons simplement du montant. Si nous ne le trouvons pas, alors l'article en stock reste faux, alors toute cette condition avec le point d'exclamation est vraie. Cela signifie que nous devons ajouter l'élément. Alors sauvegardons tout ça. Retournons dans notre jeu. Et maintenant, quand on ramasse toutes les potions de santé, on ne devrait pas en voir trois. Nous ne devrions voir qu'un d'entre eux. Alors maintenant, nous les ramassons. Nous allons aux éléments statistiques. Maintenant, revenons en arrière et faisons l'unité. Et nous devrions voir que sur l'armure d'argent que nous avons est empilable et le montant. Nous allons donc passer à la partie HP, assurez-vous qu'il est empilable. Nous devons ajouter à tous ces éléments que le montant est un. Nous aurions dû le mettre par défaut chaque fois que nous créons un objet, vous devez vous assurer qu'au moins il y en a un et la partie HP comme un et ainsi de suite. Ainsi, la partie HP, toute la partie HP et toutes les parties en général sont empilables. Donc nous allons sauver ça. Et plus tard, nous serons pré-fabuleux dans tous nos articles. Donc ce ne sera pas un si gros tracas. Donc on va le faire,
c' est une bonne idée de les préformer maintenant. Mais continuons. Laissons le jeu. On va le faire dans un peu. Donc, nous exécutons le jeu, nous ramassons quelques objets. Nous vérifions les articles. Et comme vous pouvez le voir, même si nous avons ramassé trois potions, nous n'en avons qu'une seule. Maintenant, la prochaine étape évidente est de représenter qu'il y a trois potions et pas seulement une. Nous aurons besoin d'accéder au texte juste ici. Et ça va faire partie de votre défi. Votre défi consiste à mettre à jour le texte du montant. Donc, d'abord obtenir les éléments sont montés texte, vous devrez y accéder. Ensuite, vérifiez si nous avons plus d'un article. Si nous le faisons, vous devrez l'afficher autrement. Nous n'avons pas vraiment besoin de l'afficher. Donc, par exemple, si nous avons un automne, nous ne voulons pas y mettre que nous avons une commande. Il suffit de voir l'image. Nous avons donc besoin de cette condition pour vérifier qu'il y a plus d'un de ces éléments. Et je vais vous donner un petit indice. Vous devez vous assurer de convertir le montant en deux cordes, parce que quand je créais le jeu, j'ai eu cette erreur et il m'a fallu beaucoup de temps pour comprendre, donc je pensais qu'un Hinton ici aiderait. Et cela dit, arrêtez la vidéo dès maintenant et passez au défi. Salut, bienvenue. Donc, une partie du défi était de trouver où avons-nous réellement besoin de faire tout cela ? Et nous devrons le faire, bien sûr, ici quand nous mettrons à jour l'inventaire de l'article. Donc, nous allons créer une variable ici de type texte. Ce sera le montant des articles Suivant, et il sera égal à la fente de l'objet. Et nous allons trouver ici la quantité de texte. Donc, si nous revenons en arrière, nous trouvons le texte de la quantité, nous le copions parce que c'est une référence de chaîne que nous avons collée ici. Nous allons avoir accès à la taxe sur les composantes, et allons de l'avant et accéder à ce texte. Et avant de continuer, je me souviens que j'ai fait quelques changements ici au texte beaucoup Pro, donc ce n'est plus le médiéval. Et je viens de changer pour les Sans de Libération alors que le F s'est fait audacieux et a ajouté quelques choses ici. Oh, pas de choses supplémentaires. Juste changé un peu et augmenter la taille de la police juste pour que vous sachiez, si elle est différente de votre police, en fait, vous deviez prendre le temps et tout configurer quand il s'agit de vous. Si avec ça fait, revenons en arrière. Sauvegardez ça. Maintenant, nous allons vérifier si le montant du point de l'article est supérieur à un. Ensuite, nous allons définir le montant de l'article, texte point de texte pour être égal à la quantité point de l'article. Dot ToString. Et vous remarquerez que je n'ai pas ajouté de crochets. Et je vais te dire pourquoi dans un peu. Et si l'élément n'est pas supérieur à un, alors nous allons simplement le définir à 0 afin que l'élément, montant texte, le texte sera égal à une chaîne vide. Alors, où sont les crochets ? Tu nous as menti qu'on n'a jamais à les utiliser ? Eh bien, non, parce que nous utilisons simplement une seule ligne dans le conditionnel, nous essayons d'implémenter une seule ligne de code. Nous n'avons pas besoin d'ajouter les crochets. Maintenant, ces crochets squiggly, maintenant, si ça vous détend plus à les ajouter, alors allez-y. C' est juste pour économiser un peu d'espace et une astuce astuce que je voulais vous apprendre. Donc nous allons sauver tout ça. On va retourner à Unity. Nous allons dupliquer la potion de manne, dupliquer ça. Et un autre ici, dupliquez ça, j'en ajoute un autre ici, sauvegardez ça pour lancer le jeu. Et maintenant, quand on ramasse les potions, ramasse les portions, sauvegarde les objets. On appuie sur la touche M, va aux éléments et on a une flèche. Et cette flèche nous dit que lorsque nous essayons de
mettre à jour le montant point des éléments àString, ne pas obtenir de référence. Donc l'objet n'est pas défini comme une instance de regard. Donc, évidemment, évidemment, vous devez aller à la Canvas. Et où est le montant de l'impôt ? La taxe. Et c'est parce que nous devons nous assurer que c'est un texte Mesh sonde parce que nous voyons, parce que je me souviens que nous avons copié ceci ou nous l'avons changé en texte Mesh Pro. Ce n'est plus un texte normal sur un bouton. Donc, au lieu de texte ici, assurez-vous qu'il s'agit de texte Mesh pro GUI. Et j'espère que pendant le défi, vous n'êtes pas tombé dans la même erreur. Si vous l'avez fait, pas de soucis, vous pouvez voir que cela arrive au meilleur d'entre nous. Si vous ne l'avez pas fait, je vous félicite. Tu as franchi l'étape suivante, jeune sauterelle. Donc, nous gardons ça. On y retourne et on y va, on va faire ça. Et je crois qu'il n'y a plus d'erreurs. Donc vous pouvez voir que nous avons pris deux portions de santé et trois portions de mana. On va les objets de statistiques. On y va. Nous avons donc un x. Nous n'avons pas besoin des chiffres parce que nous avons un de chacun et ils ne sont pas empilables. Les éléments empilables que vous pouvez voir qui ont un numéro en bas à côté d'eux. Alors, c'est cool ? Notre inventaire prend vraiment forme. Et enfin, un petit pas. Nous allons créer un dossier ici pour les éléments. Et nous allons mettre tous les objets, pas ceux avec un et deux à côté d'eux sur les objets originaux. Et pourquoi je ne peux pas tous les ajouter en même temps ? Pour les ajouter un par un sur x, hache
dorée et ainsi de suite et ainsi de suite. Donc, nous allons utiliser ces pré-fabs et commander d'ajouter des articles. Ainsi, par exemple, partie HP. J' ai besoin d'être sur la scène. Partie HP. Voilà, tu y vas. Nous avons ajouté une autre potion HP et nous pouvons
tout changer sur cette partie HP à partir d'ici, à partir du préfabriqué. J' espère que ça vous plaira. J' espère que tu commets tes changements et je te verrai dans la prochaine vidéo.
61. Sélectionner des objets: Bienvenue, mes collègues développeurs de jeux dans cette vidéo, quand nous lançons le code, quand nous ramassons quelques objets. Lorsque nous accédons aux éléments, si nous cliquons sur l'un d'eux, remarqué quoi ? Remarquez ce qui se passe ici. Voilà, tu y vas. Donc, maintenant, nous savons que c'est une partie HP. Qu' est-ce que ça fait ? Ça, on va te donner HB. Cela vous donnera du mana. Ça tuera des monstres. Cela tuera des monstres plus vite car c'est une hache dorée. C' était un acte d'argent. Alors ne perdons plus de temps et commençons. Donc, actuellement, si nous ramassons quelques articles, vous remarquerez que lorsque nous allons sur les éléments, si nous cliquons dessus, rien ne se passe. Nous avons toujours le nom de l'article, description de
l'article ou vide, et nous ne pouvons pas utiliser quoi que ce soit. Donc, fondamentalement, c'est une liste d'éléments sans valeur. On va changer ça. Donc, d'abord, nous allons dans le gestionnaire de menu et op ici, nous
allons créer un nom d'élément de texte public. Nous allons créer un ajouter également à la description de l'article. Et nous allons également créer et ici une instance ou nous avons déjà une instance. Donc c'est bien. Sauvegardez ça. Maintenant, nous allons revenir en arrière et l'unité, attendre que cela se compile. Et nous allons créer un script qui supporte l'un de ces boutons. Nous avons donc le bouton Items. Nous voulons créer un script pour gérer ce qui se passe là-bas. On pourrait utiliser l'onclick. Nous allons utiliser l'onclick, mais nous voulons créer un script. Donc, nous allons entrer dans les scripts, va aller dans les éléments. Pensez-vous que la gestion des articles est un bon endroit pour créer cela ? Oui, bien sûr. Pourquoi pas si bien, créez un script ici, nous appelons le bouton élément. Appuyez sur Entrée, attendez que cela se compile et nous allons dans le bouton Prefabs items ou prefabs item, et nous allons verrouiller, aller aux scripts et ajouter le bouton items. Et voilà, vous y allez. Donc, le bouton Items, enregistrez cela. Ouvrez le bouton Articles. Et qu'est-ce qu'on va faire ici ? Eh bien, nous allons créer une méthode qui appuie ou casse. Donc, nous sommes ici dans les éléments, le script. Nous avons seulement besoin d'une seule variable pour l'instant, et ce sera un gestionnaire d'éléments publics et l'élément sur le bouton. Donc, cela représentera ce que nous avons sur le fond. Donc maintenant, l'étape suivante consiste à créer une méthode qui est appelée à chaque fois que nous appuyons le bouton pour définir les piles d'
éléments ou le nom des éléments et le gestionnaire de menu et la description de l'élément. Et ça va faire partie de votre défi. Votre défi est de créer une méthode à appuyer. Donc, un bouton Items, créer une pression de méthode, utiliser pour accéder au gestionnaire de mémoire et définir le nom de l'élément et la description en fonction de l'élément sur le bouton. Alors arrêtez la vidéo dès maintenant et allez faire le défi, 0, k. Donc supprimons le début et la mise à jour pour l'instant. Je ne pense pas qu'on en aura besoin. On le fera plus tard. Si nous en avons besoin, créez-les. Nous allons créer une méthode de progression du vide public. Et ici, nous allons accéder à l'instance de point du gestionnaire de menu, nom de l'élément
point, le texte de point. Et cela va être égal à l'élément sur le bouton, le nom de l'élément. Et nous allons également définir exactement la même chose pour la description. Donc, au lieu du nom de l'article, de la description l'article
et de la description de l'article, nous allons enregistrer cela. Et maintenant, allons dans le gestionnaire de menu. Défilons vers le bas. Où doit-on mettre en place la majuscule ou ici où nous mettons à jour. Une fois que nous avons terminé la mise à jour, nous allons aller à la fente de l'article. On va prendre le composant. Et ce composant est le bouton élément. Nous allons accéder ici, l'élément sur le bouton. Et ce sera égal à l'article que nous venons d'ajouter. Donc, je pense qu'un meilleur moyen aurait si nous définissons ceci sur privé et ensuite créé une méthode pour accéder à ce bouton d'élément pour le définir. Ça aurait probablement été mieux. Mais pour l'instant, nous allons simplement l'utiliser en public. Pas de soucis à ce sujet. Où en étions nous et le gestionnaire de menus ? On y va. Emplacement d'élément obtenir composant. Nous accédons au bouton d'élément de script, qui est un composant sur la fente d'élément. Nous accédons à l'article sur le bouton et nous l'avons défini pour être l'article qui vient d'être ajouté dans l'inventaire, la liste. Donc maintenant, si nous lançons notre jeu, si nous allons dans notre Canvas, ouvrez notre Canvas, ouvrez notre menu. Et au fait, Unity s'est écrasée sur moi. Donc, nous allons, où est le menu,
le panneau des éléments, la description de l'élément. Donc on va verrouiller la toile. De quoi avons-nous besoin ? Nous avons besoin du nom de l'article, de la description de l'article. Voyons voir. Est-ce la description de l'article ? Il y a ça moins d'un an, donc le nom de l'article, le texte, et cetera. Combien de fois ferais-je cette erreur de texte ? Mesh pero Gui ? Donc tu es probablement frustré que je continue à faire ça, Michael, tu dois te le mettre dans la tête. Nous utilisons du texte Mesh Pro. Sauvegardez ça. Maintenant, je sais que j'ai deux problèmes pour travailler. Tout d'abord, assurez-vous de toujours définir le texte Mesh large, pas le texte, et de toujours définir les éléments dans l'inspecteur. Jusqu' à présent, j'ai résolu ce problème, corrigé l'un d'entre eux au moins. Donc, nous gardons ça. Nous menons notre jeu. Oh, d'accord, donc avant de continuer, j'ai juste remarqué que nous avons la valeur. Nous aurions dû définir la valeur. Alors, qu'est-ce que c'est effacé ? Je préfère la description. Nous avons donc besoin des valeurs et non du texte normal. Donc, nous avons dit la valeur, la valeur de description. On sauve ça. Nous menons notre jeu. Nous ramassons quelques potions. Et encore une fois, il y a une autre chose que nous devons faire. Si nous allons dans le Prefabs et le bouton Items, nous retirons le verrou pour que nous puissions le voir clairement. Nous avons besoin de l'onclick pour être un script de bouton V éléments. Et dans le bouton Articles, nous appelons la presse. Alors, sauvegardez ça. Et maintenant tout est mis en place. On peut ramasser quelques objets, les
ramasser. On va frapper les objets. Si nous cliquons sur l'un des éléments, là vous allez. C' est un oeuf doré. Cela tuera des monstres plus vite. Laisse-moi agrandir pour que ce soit plus clair. Cela tuera des monstres plus vite. Ça tuera des monstres. Cela va mieux défendre contre les monstres. Cela vous donnera HB, C'est une potion HP, et c'est un océan monopole. Cela vous donnera de l'argent. Alors maintenant, ces boutons font des choses. Et la vidéo suivante, nous verrons comment nous pouvons utiliser le bouton de défausse afin de jeter les éléments. Je te vois dans la prochaine vidéo.
62. Objets jetés: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons ramasser les objets. Et quand on appuie sur la touche M, on va aux objets. Si nous choisissons l'un d'eux et jetés. Vous y allez, vous remarquerez qu'il disparaît. Nous avons fait un peu de peaufinage sur la façon dont les objets sont détruits. Et là, vous allez avec détruire tous les objets. Donc ne perdons plus de temps que je dis détruire. Je veux dire jeter tous les éléments et commençons. Oh, d'accord. Donc, pour jeter un objet, nous devons garder une trace de l'acte de l'objet sur lequel nous venons de cliquer. Donc on va le faire. Nous allons dans notre gestionnaire de menus, et ici nous allons créer un gestionnaire d'objets publics. Et l'élément actif. On y va. Donc maintenant, nous devons aller dans le bouton articles. Et quand nous appuyons va aller dans le gestionnaire de menu, va accéder à l'instance, va définir l'acte de l'élément à être égal à l'élément sur le fond. Sauve ça. Maintenant, ce que nous voulons faire est de créer une méthode qui rejette l'acte de l'élément. Et je vais lancer un petit défi. Ce n'est pas ce que tu penses. Créez une méthode pour supprimer un élément et initialiser, imprimez le nom de l'élément que nous venons de jeter. Vous devrez vous assurer de l'appliquer au bouton de défection, ce qui est quelque chose que j'oublie sans cesse. Alors s'il vous plaît, faites ça pour mettre la vidéo en pause et aller au défi. Bon, bienvenue. Comment as-tu réussi avec ça ? Nous allons faire défiler vers le bas. Et ici, nous allons créer un vide public. Jeter l'article ou simplement jeter. Ça n'a pas d'importance. Donc ici va simplement imprimer l'élément actif,
le nom de l'élément point, le nom de l'élément. Sauve ça. On ira à Unity où on accèdera à l'endroit où c'est ? Le bouton de défausse ? Pourquoi avons-nous un bouton Ignorer un ? On vient de dupliquer et de le laisser là ? Donc, le menu allume ça. Voyons voir, Bouton Ignorer, Double-cliquez. Oh, ok, alors changeons ça de ce bouton de panier pour utiliser le bouton. Maintenant, dans ce bouton de panier, nous allons faire défiler vers le bas. Nous allons ajouter un bouton sur clic. Nous allons faire glisser la toile. Nous allons accéder au gestionnaire de menus. Nous allons jeter l'objet, sauver ça, exécuter le jeu. C' est désactivé sur stats ICT 0. Alors qui, qui n'a même pas ramassé d'objets. Donc, nous allons recommencer le jeu. Nous sortirons ramasser quelques objets. On y va. Appuyez sur Entrée et stats Articles. Cliquez sur l'un des éléments, jetez. Voilà, tu y vas. Nous rejetons les numéros d'argent jetaient l'armure d'argent, jetaient 10 potions, et jetaient les PV. Nous obtenons donc l'élément actif correctement. La prochaine chose est de commencer à le déplacer de notre liste. Donc, nous allons aller dans l'inventaire, va créer une méthode ici qui va être l'article ajouter. Nous allons créer la méthode vide public et nous allons supprimer l'art. Donc, supprimez l'élément et il va prendre un argument qui va être le gestionnaire d'élément, gestionnaire d'élément de
type et l'élément que nous allons supprimer. Et ici, nous ferons quelques choses. Nous pouvons simplement commencer à supprimer de la liste des articles. Nous devons d'abord nous assurer
qu'il est empilable. Si c'est le cas, nous voulons simplement supprimer l'un d'entre eux, pas tous les Ahmad ou pas tous les articles. Donc, si l'élément est empilable, alors nous allons, tout d'abord, créer une variable ici de type gestionnaire d'élément. Et ce sera l'article d'inventaire. Et ça va être égal à nul. Et tu verras pourquoi on fait ça dans un peu, ok, donc tout va bien. Nous allons parcourir tous les éléments. Et nous allons nous assurer de regarder à travers la liste des articles. Et nous allons vérifier si v article dans l'inventaire, que nous obtenons en ce moment. Le nom de l'article point que nous avons déjà couvert est égal à l'élément deux signes égaux parce que nous comparons à l'élément, le nom de l'article. Alors ce que nous allons faire est l'article en stock, le montant que l'IntelliSense ne m'aide pas du tout. Et on en retirera un. Ou nous aurions pu simplement écrire ici moins moins. Donc, cela supprime A1. Ensuite, nous allons définir l'article en stock,
que nous avons créé ici pour être égal à l'article et au stock. Et pourquoi faisons-nous ça ? Eh bien, parce que nous voulons vérifier après avoir terminé la boucle pour chaque, si l'article en stock est différent de null,
et que l'article en stock est inférieur au montant en dollars, donc ce montant est inférieur ou égal à 0. Alors ce que nous ferons, c'est que nous allons supprimer l'article. Donc, la façon dont nous supprimons que nous accédons à la liste des articles avec haut et supprimer, et nous accédons à l'article de stock. Donc, ce que nous faisons ici, c'est que nous créons cette variable pour garder une trace de l'élément que nous supprimons. Si nous en
supprimons un, disons que le montant atteint 0, l'article en stock, alors nous vérifions s'il est différent de null et que le montant est inférieur ou égal à 0, alors nous supprimerons l'article. Sinon, nous allons simplement supprimer le montant et juste garder une trace de celui-ci pour plus tard. Et sinon, si ce n'est pas empilable, alors nous allons simplement supprimer l'article. Sinon, si ce n'est pas empilable, élément, point liste supprimez l'élément, enregistrez-le. Maintenant, nous retournerons à Unity. Ok, donc actuellement, quand on lance notre jeu, il y a un léger problème dont on n'a pas parlé. Donc, quand nous ramassons tous les éléments, nous touchons la touche M, nous allons aux éléments, nous cliquons sur l'un des éléments. Si nous regardons sur le bouton Articles ici, vous remarquerez que le bouton actif ou le bouton élément sur est manquant. Il en va de même si nous allons sur le Canvas et recherchons l'élément actif. Vous vous demandez peut-être pourquoi ça se passe ? N' écrirons-nous pas correctement le code ? Est-ce que quelque chose ne va pas avec l'ajout de stock ? Y a-t-il quelque chose qui ne va pas dans le Gestionnaire d'objets ? Oui. Si vous avez pensé au dernier, le problème est le gestionnaire d'éléments. Alors que se passe-t-il ici ? Chaque fois que nous ramassons un des articles, nous le détruisons. Vous pouvez le voir ici. Donc, quand nous détruisons l'objet avec détruire l'objet de jeu et il n'y a plus de référence à elle. Donc, au lieu de détruire, nous allons mettre l'actif à 24. Donc on va régler ça, le revers. Nous allons donc définir le point de l'objet jeu actif sur false. Sauve ça. Maintenant, de retour dans notre jeu, nous allons courir. Et maintenant, vous remarquerez que les objets au lieu d' être détruits vont simplement disparaître, mais ils vont toujours être ici disponible pour nous. Donc nous, on ramasse tout ça. On a appuyé sur la touche M, va sur les objets et vous remarquerez que maintenant, voilà. Nous avons la potion et le, tous les autres articles. Si nous cliquons sur la hache d'or et la toile, nous avons une référence à la hache d'or. Donc maintenant, quand nous jetons les objets, le dernier que nous rejetons, il disparaîtra si bien, tout le reste. Et vous remarquerez, voilà. Donc tout disparaît. Tout fonctionne correctement. Donc, avec cela fait, je vous verrai dans la prochaine vidéo où nous allons utiliser les éléments et pas seulement les jeter. Alors je te verrai alors.
63. Utiliser des objets: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons implémenté l'utilisation d'un bouton du bouton US en fait. Alors maintenant, quand nous allons aux articles, nous choisissons l'une des potions. Si nous regardons le joueur, nous utilisons la potion, mais attendez une seconde, le HP actuel est toujours le même. Si nous essayons à nouveau, whoops, le HP actuel toujours le même. Mais si nous choisissons le guérisseur, vous remarquerez que lorsque nous regardons le modèle actuel, qui est 3, si nous y ajoutons un peu de manière, voilà, vous pouvez voir que cela fonctionne mais pas sur le bon joueur. Nous allons corriger cela plus tard, mais pour l'instant il est temps d'implémenter le bouton d'utilisation et nos menus d'icônes. Alors ne perdons plus de temps et commençons. Ok, donc il est temps de commencer à utiliser nos articles. Et le premier élément que nous allons utiliser ou les éléments que nous allons utiliser sont
les portions que nous avons pour ajouter Mano et HB. Donc, pour cela, nous avons besoin de méthodes et de statistiques de joueur qui ajoutent mono et HP à notre joueur. Et ça va faire partie de votre défi. Votre défi est d'ajouter manière et HP. Donc, créez une instance du script de statistiques de joueur. Et il crée également deux méthodes. Un pour ajouter mono et que vous voulez ajouter HP. Les deux méthodes doivent avoir un argument ou un paramètre passé sur le montant à appliquer
le montant à la barre oblique HP actuelle mono, et assurez-vous que le HP et le mana actuels ne vont jamais
au-delà de la manière maximale HP parce que nous ne voulons pas que notre joueur. Disons que si le PV maximum est de 100, nous ne voulons pas que le joueur ait, disons, 110 ou 120 lorsque le PV est ajouté à sa santé. Donc, avec cela dit, arrêtez la vidéo dès maintenant et co-créez les méthodes. Ok, bienvenue. Donc, ici, allons de l'avant et créons une instance. Donc public, statique, instance, ops, statistiques de joueur, instance. Et commencez. Nous allons définir l'instance à ceci, sauvegardez cela. Maintenant, nous allons faire défiler vers le bas et ici nous allons aller de l'avant et créer deux méthodes, le vide public, ajouter HP. Et ici, nous allons prendre un paramètre entier qui va
être le montant HB à ajouter. Et allons de l'avant et commençons à taper ici. Alors, qu'est-ce qu'on va faire ? La première chose que nous ferons est d'obtenir le HP actuel. Ça va être plus égal. Nous allons donc y ajouter la quantité de HP à ajouter. Mais nous devons nous assurer que le HB actuel, donc HP actuel, si elle dépasse le HP max, alors nous allons définir le HP actuel pour être égal au HP max. C' est tout ce que nous devons faire et que nous ferons de même ici. Donc nous allons dupliquer celui-ci. Et ce sera le mana ajouté. Ce sera le montant de façon à ajouter le mano actuel. Un mano pour ajouter Mano actuel. S' il devient plus grand que le maximum de Mano, alors le moi juste de copier ceci, coller ici, copier, de le coller ici, de le sauvegarder. Donc maintenant, nous avons tout mis en place. Maintenant, nous allons créer une méthode pour utiliser ces éléments à partir du script du gestionnaire d'éléments. Donc, ici sous la mise à jour ou vous savez quoi, supprimez simplement le début et la mise à jour parce que je ne pense pas que nous aurons besoin d'eux bientôt. Et ici, nous allons créer un élément d'utilisation vide public. Et ici, la première chose que nous allons faire est que nous allons vérifier si le type d'élément est égal à l'article, tapez point item. Nous allons vérifier si son type d'effet est égal au type d'effet HP. Ce qu'on va faire, c'est faire appel aux statistiques des joueurs. Nous accèderons à l'instance, ajouterons HP et nous lui enverrons la quantité d'effet. Alors, voilà. La quantité d'effet else-si son type d'effet est égal à l'effet point mono, alors, oops, je voulais dire que celui-ci devrait être ici. Donc, si la condition n'est pas si c'est un article ou non, c'est sur le si cela affecte HP ou mono. Et je viens d'ajouter un else-if et pas seulement un autre parce que peut-être vous aimeriez ajouter d'autres océans qui augmentent la dextérité. Et ainsi de suite. Donc, il est préférable d'utiliser autre si dans ce contexte. Nous allons donc ajouter une statistique de joueur, l'autre instance, Madonna, et la quantité d'effet. Voilà, tu y vas. Sauve ça. Et enfin, ce que nous devons faire, c'est que nous devons appeler l'élément américain à partir du gestionnaire de menu. Donc, un libre aller à où est-il ? Où est le gestionnaire de menus ? On y va. Donc, dans le Gestionnaire de menus, nous avons l'élément de défausse. Maintenant, nous allons créer un élément d'utilisation vide public. Et ici, nous allons vérifier l'acte de l'article. On va utiliser l'article. On y va. Et enfin, il y a une autre chose que nous devons faire, c'est de jeter l'article. Nous allons donc faire appel à l'élément défaussé parce que dès que nous l'utilisons, nous voulons le rejeter. Donc, ce qu'il fait, il le supprimera du stock à l'aide l'instance de stock supprimer l'article, puis mettre à jour le stock. Donc nous allons sauver ça. On va aller dans notre jeu. Nous allons nous assurer que nous avons tout sauvé. Ok, alors de retour dans notre jeu, lancez notre jeu. Et regardons le joueur, va voir juste ici que nous avons, Je l'ai, Où est-il ? Donc, le HP actuel des joueurs est 0. Donc, nous allons ramasser quelques articles avaient, euh, aller aux articles, ramasser la promotion de la santé, nous allons l'utiliser et voir si le HP actuel augmente. Nous n'avons pas assigné le bouton pour faire quoi que ce soit. Ok, donc Canvas, menu, boutons, arrêter les éléments, utiliser le bouton, cliquer dessus,
ajouter un onclick sur le Canvas, aller dans le Gestionnaire de menus et utiliser l'élément enregistrer, exécuter le jeu. Maintenant, cela devrait fonctionner afin que nous ramassons les éléments, aller à amniote éléments, choisir la moitié partie C'est cliquer sur le joueur s'assure que la, il ya une sorte d'effet et comme vous pouvez le voir, il ya actuellement Rien. Donc, vous pourriez vous demander ce qui a mal tourné car notre code n'écrit pas comme quelque chose que nous avons essayé d'ajouter ici, ne fonctionnant pas pendant que tout fonctionne. Mais le problème est, c'est que lorsque nous ramassons les articles, nous touchons la touche M, allons aux articles à la potion HB et l'utilisons. Ce n'est pas le joueur qui est affecté. C' est le guérisseur et le PC parce qu'il a aussi une statistique de joueur dessus. Et si vous regardez de près ici, vous pouvez voir que le Mano actuel sur le guérisseur est trois. Si nous choisissons l'océan monopole et l'utilisons. Voilà, vous pouvez voir que nous avons ajouté un peu et encore et encore. Maintenant, nous sommes capables d'utiliser notre potion. Mais l'étape suivante est d'avoir réellement un moyen de choisir quel personnage obtient les avantages d'utiliser la partie que nous avons. Donc, dans la prochaine vidéo, nous choisirons le personnage approprié à utiliser. Les portions et les articles sont. Je te verrai alors.
64. Ajouter des personnages: Bienvenue à mes collègues développeurs de jeux. Alors rappelez-vous quand nous avions l'habitude de ramasser des objets et ne savons pas qui peut obtenir quoi maintenant quand nous cliquons sur l'un des éléments, nous avons essayé de l'utiliser, whoa, nous avons ce panneau juste ici qui s'ouvre et nous demande, qui voulez-vous utiliser C'est sur ? Que ce soit Jimmy ? C' est Sarah ? Mais on peut encore faire n'importe quoi. Nous le ferons dans les vidéos ultérieures, mais pour l'instant il est temps de créer un panneau pour le choix du personnage. Alors, je te verrai. Ok, alors comment allons-nous pouvoir choisir joueur recevra la potion sur
laquelle on veut l'utiliser, ou tout autre objet ? Nous allons créer un panneau qui s'ouvre chaque fois que nous cliquons sur les actualités. Et nous allons choisir entre les joueurs disponibles. Donc, nous allons revenir sur le menu à thème. Nous allons double-cliquer dessus pour l'ouvrir. Rendre cette fenêtre de jeu un peu plus petite parce que nous avons un peu d'édition ici à faire. Nous allons peut-être dire que le panneau d'affichage des éléments. Non, je pense que la description de l'article, Nous allons dupliquer ceci. Et ici, Supprimons tout, supprimez ça. Maintenant, nous avons la description de l'article, qui est un rond aussi grand que la description de l'article original. Ce sera le panneau de choix des caractères. Allons appuyer sur Entrée. Et ici, nous allons avoir quelques boutons. Alors allons dans les boutons ici,
obtenez le bouton items, obtenez le bouton items dupliquons et faites-le glisser vers le bas dans le choix du personnage. Et déplaçons ça ici. Nous allons donc avoir la possibilité de choisir entre trois joueurs. Je pense que c'est le montant que nous avions. Donc nous allons le rendre un peu plus petit, peut-être le rendre un peu plus grand pour le nom. Et ce sera le choix de la couche, le choix C, le choix du joueur. Ok, donc le choix du joueur. Et voyons si nous pouvons juste rendre la police un peu plus petite et la rendre plus grande sur les côtés. Alors, voilà. C' est assez bon. Je pense que c'est un bon endroit pour choisir le joueur. Faisons ce plus petit choix du destin, et mettons-le ici. Dupliquons ceci. Donc nous allons mettre, ce sera le premier à droite. Ce sera au milieu, et nous allons le dupliquer à nouveau, avoir le troisième ici. Et maintenant, voyons, c'est environ 400 par 134. Nous allons donc ajouter une grille. Nous allons donc ajouter une mise en page de grille. Nous allons mettre ces boutons en place. Nous allons donc les étendre sur le x, sur le y. Ajoutons un peu d'espacement. Et voyons voir. Peut-être qu'on ne frappe pas dans la nature parce qu'on n'a pas de distance. Donc oui, c'est à peu près juste. Et on peut le déplacer. Nous pouvons ajouter un peu de rembourrage de la gauche. Alors on y va. Retirez l'espacement sur la droite. Et c'est à peu près combien nous avions besoin. Peut-être qu'on va le déplacer vers le bas. Nous allons donc ajouter un peu de rembourrage par le haut. Cela faisait partie du défi lorsque vous en avez besoin pour l'explorer. Donc je parie que vous avez trouvé le sujet, le rembourrage. Le rembourrage. Et voyons, peut-être que ça devrait être plus petit sur le côté, et on y va. Maintenant, nous avons trois boutons de choix de joueur que nous pouvons utiliser. Donc, ce que nous ferons, c'est quand nous
toucherons la touche US, nous allons ouvrir ce panneau et choisir l'un des joueurs disponibles. Alors peut-être qu'on devrait changer le texte ici pour dire le nom du joueur. Et c'est pourquoi nous devons le rendre un peu plus petit ou pas, nous pouvons le dimensionner automatiquement. Non, la taille de l'auto semble trop petite. Donc, nous allons juste le définir pour être autour de 30 comme un bon nombre, appuyez sur Entrée o k. Donc avec cela fait, fermons ça. Sauvegardez tout ça. Ouvrons le gestionnaire de menus et il est temps de tout configurer. Donc, les deux premières variables dont nous avons besoin sont évidemment le panneau de choix des caractères et les noms des choix des caractères. Nous allons donc créer deux champs sérialisés. L' un d'eux sera un objet de jeu. Et ce sera le panneau de choix des personnages. Et un autre champ sérialisé, qui va être un tableau de textes. Et il va représenter les éléments, le caractère, le choix, les noms. Je sais que c'est un nom long pour une variable, mais nous devons nous assurer de comprendre avec quoi nous travaillons. Et puis en bas, on va, où en sommes-nous ? On devrait l'être, On va le faire ici à propos du bouton défausse ou savoir quoi, Mettons-le sous le bouton US pour qu'il reste proche. Donc ça va être un vide public. Et nous voulons ouvrir le choix du personnage. Nous allons donc appeler ce panneau de choix de personnage ouvert. Et qu'est-ce qu'on va faire ici ? Tout d'abord, le panneau Caractère doit être défini sur actif. Donc, le panneau de choix de caractères qui définit actif est vrai. Ensuite, nous devrons parcourir toutes les statistiques des joueurs. Donc, nous allons créer une boucle for, ou nous pouvons créer une pour chaque boucle, n'a pas vraiment d'importance, mais parfois c'est le cas. Et je vais vous montrer peut-être dans cette vidéo pourquoi ? Donc si je suis moins que les statistiques de joueur que nous avons cette longueur. Nous avons donc une référence à tous les joueurs disponibles. On y va. Donc, nous avons la référence ici, peut utiliser les statistiques de joueur immédiatement. Et moi plus, plus. Alors maintenant que nous allons passer en revue toutes les statistiques de joueur, nous allons créer une variable qui va être des statistiques de joueur de type. On l'appellera le joueur actif. Et ça va être égal au gestionnaire de jeu. Instance de porte. La stat du joueur à la position i. Maintenant que nous avons référence au joueur actif, nous allons accéder aux éléments, au choix du personnage, au nom. À la position i. Nous allons aller au texte et il sera
égal au nom du joueur de point actif. Et enfin, nous devons activer et désactiver le bouton
selon que ce joueur est actif dans la hiérarchie ou non. Donc ce que nous allons faire, c'est nous allons créer un booléen. Donc, bool couche active sont disponibles et va être
égal à l'objet de jeu joueur actif point actif et la hiérarchie. Et j'ai créé une variable séparée pour cela parce que la ligne suivante va être très longue. Nous allons donc accéder à la première de tous les éléments, le nom du choix du personnage. Maintenant, quel est ce nom de choix de personnage ? C' est le texte sur les boutons. Nous devons donc activer et désactiver les boutons ou les mettre actifs ou non actifs. Donc, ce que nous aurons besoin de faire est d'accéder à la transformation et d'obtenir le parent. Et puis à partir du parent accéder aux objets du jeu. Donc maintenant, nous sommes sur le bouton et nous allons le définir sur actif en
fonction de si l'acte de joueur comme disponible. Donc, comme je l'ai dit, Peut-être électron, quand nous assignons tout dans Unity, sera plus clair, cesera plus clair,
mais c'est le texte sur le bouton. Et c'est, je pense que devrait être texte Mesh Pro. Donc textez Mesh pro, je pense que c'est la première fois que je ne fais pas cette erreur. Donc, il s'agit d'un texte Mesh Pro. Nous devons d'abord accéder à la transformation avant de pouvoir accéder au parent. Accédez ensuite à l'objet du jeu et définissez-le sur actif selon que le joueur actif est disponible ou non. Donc maintenant, nous pouvons sauver tout ça. Et bien sûr, nous avons besoin d'un moyen de fermer ce solo, créer un vide public, de
fermer, fermer le panneau de choix de personnage. Et c'est très simple. Nous allons juste dans le panneau de choix de caractères, sélecteur de points, faux. Sauvegardez ça. Maintenant, de retour dans Unity, nous devons nous assurer que lorsque nous sortons du menu, nous fermons la fenêtre de choix des personnages. Alors allons dans le Canvas, assignons tout. Donc, si nous faisons défiler vers le bas, nous avons les noms de choix des personnages. Alors ouvrez tout ça. On va enfermer cet inspecteur, les
chaussures, les traîner ici. Nous allons faire glisser le panneau de choix des personnages et à sa bonne position. Nous sauverons tout cela. Nous fermerons ceci et nous allons désactiver le panneau de choix des personnages. Et nous devons aussi revenir ici et quand nous utilisons l'élément, donc quand nous l'utilisons, nous devons ouvrir le panneau de choix des personnages. Alors on y va. Nous ouvrons le panneau de choix des personnages. Et cela nous permettra de choisir l'un de ces personnages sur lesquels nous voulons utiliser les potions. Maintenant, ces éléments de défection doivent être déplacés. Nous allons donc ajouter un commentaire ici. Cela devrait être en mouvement et il devrait être activé après avoir choisi l'un des joueurs plus tard. Alors nous allons juste nous assurer que tout fonctionne. Donc, je vais éteindre le panneau Articles et éteindre. Gardions juste le panneau des articles. Rien ne nous dérange. Lancez le jeu. Collectez quelques éléments, ouvrez le menu, allez à Articles, et voyons, si nous cliquons sur l'une des parties que nous avions les États-Unis. Voilà, tu y vas. On a Jimmy, Sarah, et le nom qui ne devrait pas être disponible pour nous parce qu'on ne les a pas éteints ici. Alors laisse-moi revenir en arrière. Permettez-moi de choisir tous ces éléments et de les mettre à un actif. Parce que nous les allumons en fonction savoir s'il y a un joueur et qu'ils étaient déjà sur. Alors, nous allons choisir, ouvrir les éléments de menu, utiliser leur ego seulement gym et Sarah ou sont disponibles. Maintenant, cela ne fait rien, mais au moins nous savons que cela fonctionne et nous donne un choix. Donc, dans la prochaine vidéo, nous allons en fait choisir le personnage, utiliser l'élément sur ce personnage et remplir tout ce que nous devons faire. Alors je te verrai dans la prochaine.
65. Choisir un personnage: Bienvenue à mes collègues développeurs de jeux. Et dans cette vidéo, nous avons finalement pu
utiliser les éléments sur lesquels nous travaillons depuis si longtemps. Alors maintenant, quand nous allons aux objets, nous choisissons la potion de manne. Nous avons touché la clé américaine, nous avons la possibilité de choisir si nous voulons Jimmy ou Sarah. Si nous cliquons sur le lecteur en ce moment nous allons jeter un oeil au HP actuel. Nous avions les Etats-Unis, ou nous avons augmenté la manière, Allons augmenter la demande pour Sarah. Et Sarah, nous augmentons la demande pour Sarah. Donc, nous avons finalement fini de mettre en œuvre ceci. Donc, ne perdons plus de temps et finissons par utiliser des articles. Ok, donc maintenant on doit choisir un personnage. Comment allons-nous faire ça ? Allons dans le bouton Articles. Et ici, nous allons ajouter un paramètre. Donc, ce sera un caractère ORL à utiliser sur. Alors pourquoi ai-je ajouté un entier comme paramètre et non pas la statistique d'un joueur réel. Laissez-moi vous expliquer comment tout cela va fonctionner. Nous allons entrer dans le choix du joueur ici, et nous allons ajouter à chacun aussi. Nous devons également supprimer tous ces éléments sur les boutons. Donc, nous allons nous assurer que chacun de ces choix de joueur a un numéro spécifique à lui. Nous allons, chaque fois que nous appuyons sur le bouton, nous allons envoyer cet entier au gestionnaire de menu ici. Et puis en utilisant celui-ci, cet article, puis en utilisant ce pouvoir, nous allons le renvoyer à l'article américain sur le gestionnaire d'articles. Alors mettons en œuvre ceci si vous n'avez pas compris ce que je voulais dire,
je vous montrerai au fur et à mesure que nous traversons. Donc maintenant, dans la méthode d'utilisation de l'élément gestionnaire d'objets, nous allons aller de l'avant et créer une variable qui est de cinq stats de joueur. Il va être appelé le personnage sélectionné et il est égal à l'instance de point de gestionnaire de jeu, point get, ou les joueurs qui obtiennent statistique du
joueur à la position du personnage à utiliser. Donc maintenant ici au lieu de l'instance de point de joueur, nous allons obtenir le personnage sélectionné. Et aussi ici le personnage sélectionné. Sauvegardez tout ça. Ensuite, nous devons nous assurer de savoir quel caractère utiliser nous allons utiliser. Donc, de retour dans Menu Manager et ici, nous allons
passer un paramètre qui va être le caractère sélectionné. Et nous allons passer ici le personnage sélectionné et le professeur. Alors que se passe-t-il maintenant ? Laisse-moi te montrer. Si nous revenons ici, nous sélectionnerons les trois joueurs ici. Nous nous assurerons que ce sont eux qui utilisent l'article. Donc nous allons faire glisser aussi, nous sommes toujours en mode jeu. Oh non. Ok, donc maintenant nous devons refaire tout cela, parce que tous les changements que nous faisons pendant le jeu ancien sont supprimés. C' est tellement triste à voir. Quoi qu'il en soit, continuons et ajoutons un clic sur tous ces éléments. Ajoutez un article et ici. Puis choisissez un gestionnaire de menu thème. Dans le gestionnaire de menu, l'élément US, le choix du joueur sera 0 et celui
sera un sur le deuxième choix et sera deux sur le dernier. Nous allons enregistrer qui s'assure qu'ils sont dans la bonne position. Donc, le premier choix de joueur, qui est 0, devrait être sur le côté le plus à gauche. Celui au milieu devrait être celui, et du côté droit devrait être deux. Donc nous allons sauver tout ça. Nous allons également ajouter ici une, une autre méthode et c'est de fermer les panneaux de caractères. Donc on va y aller et choisir. Où est-il ? Fermez, fermez, fermez le panneau Caractère. On y va. Sauve ça. Et enfin, sur le bouton US, nous ne devrions ouvrir que le panneau Caractère. Nous ne voulons pas réellement utiliser l'article avec le bouton US. Donc, utilisez le bouton. Au lieu de l'utiliser, nous devons aller au gestionnaire et juste ouvrir le panneau de caractères sauvera tout cela. Et cela devrait fonctionner. Et une chose de moins est ici quand nous voulons ouvrir le panneau Caractère, nous devons nous assurer que nous avons un élément actif. Donc, si aucun élément actif n'est sélectionné, nous ne voulons pas pouvoir ouvrir le panneau. Cela provoquera beaucoup d'erreurs plus tard. Avec cela enregistré, revenons en arrière et testons enfin, notre code, voyons si cela fonctionne. Donc, nous ramassons les articles que nous avions et nous allons aux articles, nous allons à la partie HP. Cliquez sur le joueur pour nous assurer que nous avons ajouté à Génie. Nous utilisons l'article que nous choisissons, Jimmy et voilà. Maintenant, nous avons ajouté une vitesse à Jimmy spécifiquement. Essayons d'ajouter un peu à Jimmy. Très aller. L' homme a été ajouté à Jimmy. Essayons d'ajouter à Sarah. Cliquez sur les guérisseurs MPC. Regardons. Le courant est trois. Ajoutons d'une manière. Voilà, tu y vas. Et Jimmy n'a pas eu de mono. Nous avons donc fini par utiliser ces articles. Maintenant, nous devons toujours utiliser les armes et l'armure. J' espère que vous apprécierez. Je sais qu'il n'y a pas trop d'action dans ce domaine, mais nous apprenons informations de codage
très précieuses et approfondissons la complexité. J' espère que vous apprécierez et je vous verrai dans la prochaine vidéo.
66. Utiliser des armes et de l'armure: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons pouvoir utiliser
les objets et armures ou tout autre chose que les objets. Donc on pourra assigner l'armure d'or. Choisissons Jimmy et assignons l'argent à Sarah, assigné la hache d'or à Jimmy et les actes d'argent à Sarah. Si on va aux statistiques, tu verras que je peux agrandir ça. Vous verrez que Jimmy a les œufs d'or et l'armure d'or, et Sarah a le x d'argent et ces Alma d'argent, nous voyons aussi la puissance des armes ici. Si Jimmy a déjà la hache d'or, si on veut leur donner un x d'argent, on peut l'échanger. Nous verrons comment tout cela fonctionne dans un peu. Alors ne perdons plus de temps et commençons. Ok, donc il est temps d'ajouter des armes et des armures. Allons d'abord dans les statistiques des joueurs. Où sont nos statistiques de joueur ? Allons monter. Et ici, nous allons ajouter quelques choses. Donc, la première chose est le nom de l'arme publique
équipée de String . Le second est équipé nom d'armure. Ensuite, nous allons en ajouter deux autres, qui sont publics et armes, puissance ou dextérité. Et enfin la défense de l'armure. Donc ça va être un peu différent de la dextérité et de la défense normales. Ce seront ceux des armes spécifiques. Donc nous allons sauver ça. Ensuite, nous devons garder à l'esprit que nous avons le menu Stats. Donc, si vous vous souvenez, revenons ici. Ouvrons le menu et vous pouvez voir que nous avions le, éteignons les panneaux et voyons le panneau de statistiques. Voilà, tu y vas. Donc vous vous souvenez que nous avions l'arme équipée. C' est là que nous allons ajouter tout dans les valeurs de
l'équipé pour ajouter le blindé équipé, la puissance de
l'arme et la défense de l'arme. Maintenant, nous l'appelons « distorsion » et « pouvoir ». Changeons ça. Peut-être qu'on devrait le garder tel quel. Donc, quand les statistiques du joueur, gardons la puissance de l'arme. Ok, donc le pouvoir d'arme de retour dans notre menu, nous allons aussi prendre tout cela en considération. Donc ici, nous allons ajouter deux autres textes. C' est là que nous utilisions les statistiques. Donc, nous allons ajouter l'arme équipée de stats et l'armure équipée de stats. Et nous allons aussi ajouter ici des textes pour la défense et des textes 40 puissance de l'arme. Et je vais juste dupliquer ça. Je ne veux pas que la ligne soit trop longue. Donc, l'équipement statique, l'arme, puissance et les statistiques sont plus de cas de défense sauf ça. Je pense que c'est tout ce qu'on a à faire ici. Et nous devrons faire défiler vers le bas où mettre à jour les statistiques ? Donc, après avoir défini non, le menu Stats, nous mettons à jour le menu Stats. Donc c'est là que nous devrions travailler après avoir mis l'image, nous avons aussi besoin de quelques choses ici. Donc le Stat, une citation, armes, c'est évidemment faux. Laisse-moi changer ça. Arme. Stat équipé pour arriver. Entrer le point txt est égal au nom de l'arme équipée du point sélectionné par le joueur. Dupliquer ça. Stat sont plus de défense point sélectionné arme nom d'armure équipé. Sauvegardez ça. Maintenant, nous avons besoin de plus de ceux qui représenteront la puissance et la défense de l'armure. Donc ça va être le pouvoir de l'arme. Le texte est égal à l'engagement du joueur sélectionné sélectionné. Cette puissance d'arme. Dupliquer ça. Stat, c'est plus ce qu'on appelle ça la défense de l'armure. D' accord ? Donc, le stat armor defense dot txt player, les sont plus de défense. On y va. Sauvegardez ça. Quel est le problème ici ? Et c'est un entier. Oh, comme c'est sympa de ficelle, point deux cordes. Alors c'est tout. Rappelez-vous il y a quelques défis, c'était un indice. C' est pourquoi c'est un indice parce que parfois on oublie quel est le problème. Maintenant, il est temps d'ajouter les armes des objets. Mais d'abord, nous devons considérer ce qui se passe quand nous avons réellement équipé l'arme. Lorsque nous avons équipé l'arme, nous voulons lâcher l'arme que nous détenons déjà et la remettre dans l'inventaire. Nous devons donc garder une trace des objets du joueur, des statistiques du joueur. Donc, toutes les statistiques de joueur, nous allons créer deux variables supplémentaires ici, qui vont être de type gestionnaire d'élément. Et ce sera l'équipement. Je reçois toujours le mot mal équipé. J' espère que ce n'est pas complètement faux. Arme équipée et l'équipé sur le savon équipé et l'équipé sont. Ok, donc on va sauver ça. Et maintenant, il est temps de relever un défi. Et votre défi est d'armes équipées et tout. Donc, créer deux méthodes pour les armes équipées et l'armure. Chacun devrait prendre un argument des armes slash armure à équipé. Dit l'arme équipée slash armure définir le nom de l'arme et la dextérité slash la différence. Donc, tout cela devrait être fait dans les statistiques des joueurs. Si je ne me trompe pas, tu es aussi un défi pour toi. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Donc, de retour dans nos statistiques de joueur, nous ajoutons XP, nous ajoutons HP, nous ajoutons mono. Et nous pouvons également équiper des armes. Alors, où devrions-nous le faire ? Je pense que sous demande, faisons-le ici. Donc ça va être une arme d'équipement de vide public. Et ça va prendre un argument de Item Manager et ça va être l'arme à équiper. Et ici, nous allons mettre l'arme équipée. Pourquoi ai-je choisi ces noms durs de quatre notre variable. Ainsi, l'arme équipée sera égale à l'arme à équipé. Le nom de l'arme équipée sera égal à l'équipement pour se produire. Laisse-moi juste copier ça. Equipé nom de point d'arme et l'équipé à la puissance de l'arme. Essayons le pouvoir. Ok, donc la puissance de l'arme est l'équipement pour ouvrir la dextérité de l'arme à point. Enregistrer cela, va dupliquer cela parce que c'est à peu près la même chose. Donc, au lieu d'être équipé pour ajouter va être l'arme d'équipement Armen à équiper. Armure à équiper. Et l'armure équipée est égale au bras à équiper. Et l'équipé. Et essayons ça. L'hormone stéroïde. Peut-être que ce sera plus facile. Nom d'armure si équipé, notre Marie de France. Copiez ceci, collez-le ici et collez-le ici. Nom de l'élément et sont plus de défense sauf cela. Donc, tout cela devrait être correct. Vérifiera plus tard si nous avons une sorte d'erreur. Maintenant, dans le gestionnaire d'objets, nous devons vérifier les armes et les repères d'armure. Donc ici, nous vérifions l'article. Si ce n'est pas un élément, alors nous allons créer un autre. Si le type d'élément est égal au type d'élément point un et si le point de caractère sélectionné élément équipé, alors qu'il si l'arme équipée, je veux dire, est différente de vide. Donc ça veut dire que nous avons une sorte d'arme ici, équipé pour arriver nom. Nom d'arme tellement équipé parce que nous comparions un gestionnaire d'objet à une chaîne vide. Nous allons aller de l'avant dans l'inventaire. Nous allons accéder à l'instance. Et nous allons ajouter un élément, qui va être cet article. C' est celui que nous sommes actuellement, et nous allons ajouter le point de caractère sélectionné le équipé pour arriver. Arme si équipée. Donc, ce que cela fait, c'est qu'il vérifie. Tout d'abord, essayons-nous d'ajouter une arme ? Oui, nous le sommes. Est-ce que le personnage s'est déjà ouvert sur lui ? Oui, il le fait. Cela signifie que nous devons ajouter cet article à l'inventaire et au lieu de cela, nous allons le remplacer par l'arme équipée de points de caractères sélectionnés. Et nous allons le mettre à tel ou pas de mouvement à ajouter. Cela devrait être la méthode. Tellement équipé. Nous devons équiper l'arme et nous devons lui passer un paramètre et ce sera le cas, donc c'est l'élément actuel sur lequel nous travaillons. Et enfin, nous devons ajouter un autre else-if. Et nous allons vérifier si le type d'article est égal au type d'article point ARMA. Si c'est le cas, alors nous allons vérifier, copions simplement cela parce que c'est à peu près la même chose. Donc, nous allons vérifier si l'équipé, Essayons cette armure équipée nom Armen. Si c'est le cas, alors nous allons ajouter un élément, l'armure équipée du personnage sélectionné. Et puis nous allons équiper et Narmer et ce sera aussi ça. Alors sauvegardons tout ça. Retournons dans notre jeu. Voyons si ça marche. Et vous savez, nous pourrions aussi avoir besoin de mettre à jour les statistiques à un moment donné, mais nous nous en soucierons plus tard. Alors faisons notre jeu. Allons éteindre ça. Regardons le joueur et vous verrez que nous n'avons pas d'armes équipées, pas d'armure équipée. Alors je vais aller chercher une armure. Nous allons ouvrir le menu, aller à l'élément, sélectionner l'armure d'or que nous allons utiliser. On va le mettre sur Jimmy. Et oui, on y va. Nous avons donc l'armure équipée sur le personnage Jimmy. Si nous allons aux statistiques et qu'il y a un problème parce que nous n'avons pas défini l'instance de valeur. Faisons attention à ce sujet. Plus tard. On ajoutera une hache dorée à Jimmy. Ok, donc voilà. Si nous avons essayé d'ajouter les numéros d'argent à Jimmy, la hache dorée apparaît et notre liste d'objets. Excellent. Et ajoutons cette Sarah. Sélectionnez les actes d'or à cette Sarah, et vous pouvez voir que nous avons déjà un léger problème et des éléments en double. Donc pour ajouter ça, Sarah, maintenant Sarah, les guérisseurs devraient avoir une armure d'argent et une hache d'or. Donc, avec cela fait, revenons à, voyons nos statistiques. Nous devons voir les valeurs. Allez sur Canvas, verrouillez ça, faites défiler vers le bas, et le caractère de l'élément, où en sommes-nous ? Ok, donc l'arme équipée de statistiques, donc la statistique est équipée pour arriver, Voyons voir. La puissance de l'arme devrait aller entendre. La défense de l'armure devrait aller ici. L' arme équipée devrait entrer ici, et l'honneur équipé devrait entrer ici. Nous allons enregistrer tout cela, exécuterons à nouveau le code. On va éteindre le menu, parler quelques armes, et voilà. Articles Coppa. Utilisez-le sur Jimmy. Utilise le dieu 14, Sarah, utilise l'armure d'or pour Jimmy, utilise cette armure d'argent pour Sarah. Allons aux statistiques et regardons ici. Qu' est-ce que nous avons tellement équipé pour arriver est que les actes d'argent pour équiper armure est rien. Alors, pour une raison quelconque, l'armure équipée ne s'affiche pas correctement, alors nous verrons comment faire face à cela en un peu. Voyons quel est le problème. 0, ok, donc ici on peut voir qu'on utilise la défense d'armure, pas l'armure. Comment ça s'appelait ? Laisse-moi revenir à l'endroit où ce sont ceux qui équipent l'armure. Donc voilà, l'armure équipée de stat, sauf que maintenant tout devrait fonctionner correctement. Laissons notre jeu. Allons chercher les objets. Donnons l'armure d'argent à Jimmy. Retournez aux statistiques, choisissez Jimmy, Vous y allez. Vous pouvez voir que l'armure équipée est l'argent et il a
également une armure de défense de six. Nous avons donc fini de créer notre inventaire. Nous avons fini de vérifier nos articles dans l'inventaire. On a fait beaucoup de choses. Nous avons utilisé les objets. Nous, c'était une grande section, donc j'espère que vous apprécierez ça et je vous verrai dans la prochaine vidéo.
67. Section 9 :: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons juste jeter les bases de notre boutique. Donc, tout d'abord, assurez-vous d'aller et appliquer tout à votre préfabriqué de toile, parce que nous avons déjà beaucoup ajouté. Nous n'avons pas appliqué à la substitution Prefabs ou Canvas. Assurez-vous d'appliquer tout ce que vous avez pour créer le gestionnaire de jeu Prefabs ou simplement faire glisser le gestionnaire de jeu. Et ici, assurez-vous d'appliquer également les modifications sur le joueur. Et quand tu en auras fini, allons de l'avant et créons une nouvelle scène. On appellera ça le Sauver. Donc, cette nouvelle scène, on peut garder la caméra principale. On n'a pas besoin d'une caméra de suivi. Nous pouvons juste avoir un magasin statique où nous ne bougeons pas la caméra n'est qu'un seul coup et vous bougez et ce magasin. Ou si vous voulez le faire autrement que d'aller de l'avant. Donc ici, nous allons, tout d'
abord aller aux préfabriqués et nous allons ajouter la grille. Donc, nous allons ajouter la grille, va cliquer avec le bouton droit et aller au préfabriqué déballer complètement. C' est donc un point très vital. Maintenant, il est temps d'utiliser les tuiles. Je vous ai fourni un ensemble de fichiers, donc nous allons aller dans les ressources. Voilà, c'est à l'intérieur. Laissez-moi simplement ajouter ce fichier pour que nous cliquerons ou reviendrons en arrière. On va jag et l'intérieur. Et voilà. Là, nous avons l'intérieur. Maintenant, nous créons une nouvelle palette de tuiles va s'appeler l'intérieur Créer. Et nous allons le créer à l'intérieur de la tuile intérieure. On y va. Donc maintenant, nous avons une nouvelle palette de tuiles. Maintenant, nous devons définir le mode sprite sur multiple. Nous devons appliquer les changements. On doit aller voir l'éditeur Sprite. Et ici, j'ai trouvé que la taille parfaite est 16. Par 16 a été un décalage du sommet. Nous allons couper tout ça. Voilà, tu y vas. Donc, cela donnera une très belle tranche, sauf pour le bord en bas ici. Donc, vous remarquerez qu'il n'y a pas de tranche sur place parce que nous l'avons compensée par une. Vous pouvez le voir ici. Et parce que nous l'avons compensé par un, vous pouvez voir qu'il n'y a pas de tranche ici. On s'en occupera plus tard. Mais si nous coupons tout, il y aura un gros problème dans la fenêtre de la palette de tuiles. Ça ne va pas nous permettre de tout faire en douceur. Et si vous avez vos propres sprites, alors vous devrez trouver votre propre façon de le trancher. Vous pouvez même le faire manuellement. Donc, nous allons appliquer tout ça. On va traîner les pilotes. Et ici, nous allons nous assurer que nous sélectionnons le fichier Endo pour les actifs de tuiles. Nous allons sélectionner ça. Et voilà. Nous pouvons commencer par supprimer tout. Nous allons donc créer un objet ou sélectionner plusieurs fichiers. Supprimer 0. Il suffit de sortir de l'édition, de supprimer. Et nous allons aller de l'avant et enlever tout et notre monde des objets à l'arrière-plan. Aux objets d'arrière-plan. Alors voilà. Maintenant, on peut recommencer. Donc, par exemple, nous aurons ceci comme arrière-plan. Et on y va et on va juste rédiger ça. Et vous pouvez voir que nous devons le rendre plus grand. Essayons de le faire 32. Appliquer. 16. Je crois que 16 sera le bon nombre. Voilà, tu y vas. Et maintenant, nous pouvons commencer à ajouter des tapis et ainsi de suite. Et pour les bords inférieurs, nous allons à nouveau aller à l'éditeur Sprite. Nous allons créer une boîte ici qui sera de la taille. Donc exactement la même largeur que celle ci-dessus, mais une hauteur un peu plus petite, donc c'est 16 par 15. Nous allons donc créer plusieurs fichiers ici. Et ça va être 16 par 15, 16, 15. Et nous le mettrons dans la bonne position. Celle-là aussi ? Non. Celle-ci aussi. 16 par 15. Et je crois qu'il nous en faut un autre. Celui-ci devrait avoir 16 ans. On y va. Malheureusement, je n'ai pas trouvé un moyen plus rapide de le faire. Donc je fais tout manuellement. Je suis sûr qu'il existe un moyen plus lisse et plus facile de simplement copier et coller. Mais on y va. Donc nous avons tranché les choses, nous allons postuler. Mais assurez-vous que vous ne faites pas simplement glisser ceci dans inhere. Nous devons donc obtenir les sprites spécifiques qui sont sur le fond. Nous devons faire la différence entre ces sprites. Alors on y va. Nous sélectionnerons les derniers. Donc c'est ces 123. Vous y allez, vous pouvez les voir juste ici. On va les traîner ici. Oui. Il est dans le fichier intérieur et comme vous pouvez le voir, ils ne sont pas configurés correctement. Donc, ce qu'on peut faire, c'est agrandir un peu. Nous allons d'abord passer en mode Édition. Ensuite, nous allons sélectionner ces deux. Par exemple, cliquez sur le déplacement, va le définir ici. Encore une fois, sélectionnez Déplacer. Et comme je suis, nous y allons As, hum, et je dis comme je suis parce que vous pouvez voir ici que les États-Unis sont un raccourci clavier et VM comme un raccourci aussi. Donc, comme je suis, et on y va, on a mis en place nos tuiles maintenant on peut tout dessiner. Et ça nous demande où voulons-nous sauver la scène ? Nous allons aller aux scènes, va créer un aiguisé ici. Et voilà, sauvegardez tout ça. Maintenant, il est temps de relever un défi. Et votre défi sera de créer votre propre boutique. Donc, créez et configurez votre propre boutique en utilisant les tuiles et téléchargez vos propres tuiles de boutique slash intérieur et créez un magasin si vous ne voulez pas utiliser ceux que je vous ai fournis, vous pouvez aller à Open game art ou tout autre et y trouver tout ce dont vous avez besoin. Alors avant de partir, je vais partir. Vous devrez également ajouter le lecteur. Nous devrons donc trouver le joueur préfabriqué et nous devrons nous assurer bien sûr que nous modifions, par
exemple, l'arrière-plan. Vous pouvez voir que c'est une très grande requête pour rendre les polygones plus petits et assurez-vous d'ajouter les bords, par exemple,
pour être un mur qui sont solides et que le joueur ne peut pas partir de là. Donc je vous laisse pour créer votre propre boutique. Et dans la prochaine vidéo, je vais vous montrer ce que j'ai créé et nous continuerons. Alors je te verrai alors.
68. Configuration de la boutique: Bienvenue à mes collègues développeurs de jeux dans cette très longue vidéo. Je sais que c'est environ 20 minutes, mais tout ça construit l'interface utilisateur. Comme vous le savez, c'est personnel. Je vais juste vous montrer la mise en page et ensuite vous pouvez créer le vôtre. Donc, ce que nous avons fait ici, nous avons créé un panneau de cellule par panneau et quitter le bouton Boutique, une monnaie pour utiliser la valeur de l'article et ainsi de suite et ainsi de suite. Alors ne perdons plus de temps et commençons avec notre menu boutique. Ok commençons. Je pense que ce sera l'une de nos plus longues vidéos. Donc, tout d'abord, nous devons engager nos changements. Nous devons nous assurer que nous ignorons tout sous le style des actifs marins, les styles et appuyez sur OK. Maintenant étape de et maintenant nous allons engager nos changements. Création d'une boutique, engagez-les. De retour dans notre jeu. Voilà, tu y vas. C' est ma petite boutique. Et avant d'oublier, assurez-vous d'ajouter un gestionnaire de niveau et assis tuiles d'arrière-plan profondes que. Alors maintenant, quand nous lançons le jeu, vous y allez. Alors voyons. On y va. On ne peut pas traverser les murs. Nous ne pouvons pas nous déplacer à travers les chaises et les objets que nous avons créés. Donc ce n'est pas très chic, c'est très basique, donc rien de trop fantaisie ici. Je peux placer pour sortir, donc, ou un endroit pour entrer, mais le joueur peut se déplacer à travers cela. Alors maintenant, il est temps de commencer à créer le manuel de la boutique. Pour ça. Nous allons ajouter le Canvas dans la hiérarchie. On y va. Et ici, nous allons faire quelques trucs. Donc nous ouvrons la toile, nous pouvons nous débarrasser de la palette de tuiles, fermer l'onglet. Nous allons dupliquer le menu et nous appellerons ce menu « D » pointu. Alors menu boutique. Et ici, nous allons simplement éteindre le menu, garder le seul menu de la boutique ouvert. Et nous allons faire quelques changements ici. Donc la première chose que nous allons faire, c'est les boutons. Donc les boutons vont changer. Donc, au lieu d'articles ici, nous allons avoir le bouton d'achat. Au lieu des statistiques aura le bouton de cellule. Et le dernier qui sera la sauvegarde, sera
le bouton Exit. Pas aussi sexy bouton, le bouton de sortie. Et nous allons supprimer les deux derniers boutons qui sont proches et quittent. On va aller à l'achat. On va me laisser minimiser. Et bien sûr, tous ces changements seront changés sur la cellule, la sortie, et ainsi de suite. Donc, la cellule a ces entités ou objets onclick. Et nous allons entrer le texte. Le texte sur le bouton va être par sur la cellule va être cellule. Sur la sortie va être sortie boutique. Appuyez sur Entrée. Et on va agrandir ce bouton. En outre, nous travaillons sur la grille. Laissez-moi faire en sorte que la grille soit un peu plus grande. Donc, nous allons augmenter la taille des cellules parce que nous allons aussi ajouter l'argent ici afin nous ne voulons pas qu'il s'adapte ou tout et nous allons l'augmenter dans le y aussi. Et voyons, déplacez-le vers le haut et la taille de la cellule, augmentons encore plus pour le magasin de sortie. Donc, la boutique de sortie rendra cela un peu plus petit, ou est-ce trop petit en ce moment, nous allons augmenter la taille de la zone de texte. Et comme je l'ai dit, chaque fois que nous créons l'interface utilisateur sont recommandés devrait faire vos propres créations. Parce que tout cela est très subjectif et vous pouvez changer ce que vous voulez. Et je vais le déplacer vers le bas. Alors voilà. Sortie boutique. Non. Sortir des magasins, vendre et acheter. Bon, maintenant que nous avons les boutons principaux, il est temps de configurer tout le reste. Donc, le personnage et l'automne vont aller, les panneaux de statistiques vont aller, nous aurons seulement besoin du panneau de l'élément
et ici, et nous allons aussi faire quelques changements. Alors laissez-moi minimiser cela parce que nous travaillons principalement apparaître. Alors, qu'est-ce qu'on va faire ici ? Eh bien, nous allons avoir deux ensembles de panneaux. Donc, nous allons avoir le panneau de cellule ou le panneau de tableau compte par panneau. Et ensuite, on aura le panneau cellulaire. Alors voilà, vends du pan. Alors qu'est-ce qu'on a dans le panneau de vélo ? Nous allons supprimer le bouton de défausse, le bouton US. On va le renommer en achetant. Et nous allons changer le texte aussi ici pour acheter va garder la description de l'article et les panneaux d'affichage des articles. Donc tout ici va être le même. Le panneau de choix n'a pas besoin d'être ici. Et nous aurions probablement dû le faire et ensuite le dupliquer. Mais pas de soucis à ce sujet. Nous allons également ajouter ici un texte Mesh Pro, ou simplement un texte. Et ce sera la valeur du produit. Donc la valeur. Et ici, nous allons juste écrire la valeur et nous aurons juste l'un d'eux va changer. Comme toujours, nous devons le définir comme le médiéval. Nous devons le rendre complètement noir. Et nous allons le faire glisser vers le bas à côté du bouton d'achat. Alors oui, on y va, c'est à propos de ça. Et ce sera la valeur de l'article que nous choisissons d'acheter sur le panneau cellulaire. Laisse-moi juste et on travaillait sur la cellule ou la Bible aurait dû éteindre ça. Pourtant, on travaillait sur la cellule. Donc, au lieu du bouton Acheter, ce sera la cellule. Et les mots sur vont aussi être cellulaires. Ok, donc c'était le panneau des cellules. Tout est mis en place ici et les boutons ici, le grand BY et
la grande cellule nous emmèneront à,
d' un panneau à l'autre. Ceci ici nous permettra de vendre un article. Ce sera ce que nous avons déjà dans l'inventaire et ensuite nous pouvons le vendre. Alors que dans la diode de dérivation aura une sorte de commerçant qui ouvrira le panneau, va enlever le C, ce que nous avons utilisé. Ce bouton doit aller, ce sera le bye. Et aussi ici, le commerçant, nous aurons quelques articles à acheter. Donc nous aurons besoin de la valeur que nous avons ici. Donc dupliquez la valeur. Mettez-le ici. Voilà, tu y vas. Donc maintenant, nous avons la valeur de l'article, et je suis sûr que nous devrons le rendre un peu plus grand. Laissez-moi donc choisir les bons outils et augmenter la taille autant que possible. On y va. Et sur la valeur ici fera également les mêmes ajustements. Alors on y va. Maintenant, nous avons le panneau de cellule par panneau. Je pense que c'est tout ce dont nous avons besoin, o et nous avons aussi besoin d'une étiquette ici sur le menu de la boutique. Donc, nous allons faire un clic droit et une nouvelle interface utilisateur, ajouter le texte Mesh ou savoir ce que nous aurions pu simplement utiliser l'une de ces valeurs. Et nous allons juste le nom et la valeur. Et nous allons, nous sommes, nous allons,
nous allons, nous allons dupliquer la valeur ici. Et on va le déplacer dans le menu de la boutique. Et on va le déplacer ici. Alors on y va. Et ce sera V de monnaie que nous allons utiliser. Ainsi, vous pouvez choisir n'importe quelle devise que vous voulez. Je vais utiliser des Bitcoins. Et c'est parce qu'actuellement El Salvador vient de se faire légaliser un peu. Donc c'est un cours légal. Nous pouvons utiliser Bitcoins si vous n'êtes pas familier avec bitcoins sont recommandés pour lire sur un débit, dire une grande technologie, en particulier pour les développeurs de
jeux en mouvement et tout type de programmeurs honnêtement. Et ce sera la quantité de VDC. Vdc signifie mais sont moins quantité de Bitcoin. Ok, génial, alors maintenant on a tout préparé. Maintenant, il est temps de commencer à garder une trace de notre or et ainsi de suite et ainsi de suite. Et aussi, bien sûr, création d'un directeur de magasin. Tout d'abord, ce que nous devons faire, c'est d'ajouter un gestionnaire de jeu ici. Voilà, tu y vas. On a tout mis en place. Nous devons garder une trace de nos bitcoins et comment allons-nous le faire ? Et nous ne devrions pas en faire un enfant de la toile va le mettre ici. Comment allons-nous faire ça ? On aurait pu suivre la quantité d'or qu'on a sur le joueur. C' est une bonne idée. Mais comme nous avons un gestionnaire de jeu avec l'inventaire et ainsi de suite, je pense que le meilleur endroit pour le faire est dans le script de gestionnaire de jeu. Alors ouvrons le gestionnaire de jeu. Et ici, nous allons créer un, un autre public et cordes et jeu. Je veux dire, Bitcoins actuels. Et nous allons juste garder une trace de tout ça. Maintenant. Évidemment, nous ne devrions pas le rendre public parce que nous ne
voulons pas qu'un autre script y ait accès. Mais pour l'instant, nous allons juste le garder comme ça car nous avons une instance. Et je ne pense pas qu'il soit nécessaire de créer une autre fonction juste pour obtenir les Bitcoins actuels. Donc nous allons sauver ça, d'accord avec cette configuration, la prochaine chose que nous devons faire est d'aller et de créer un directeur de magasin. Donc, nous allons entrer dans les scripts, attendre que pour compiler n'importe quel jour maintenant, nous allons entrer dans les scripts, va créer un nouveau dossier ici que nous allons appeler la boutique. Et à l'intérieur de la boutique, nous allons créer un script C-Sharp qui s'appellera le directeur de la boutique. Appuyez sur Entrée, attendez que cela se compile. On va l'ajouter à la toile. Ainsi, sur le
canevas, comme vous pouvez le voir maintenant, le canevas aura le gestionnaire de menus, le contrôleur de dialogue et un gestionnaire de magasin. Ok, super. Ouvrons le gestionnaire de boutique et Visual Studio. Et que devrions-nous faire ici ? Tout d'abord, nous aurons besoin de créer une instance de cette classe. Nous allons donc créer une instance de gestionnaire de plans statiques publics. Nous allons définir l'instance à ceci. Et qu'avons-nous besoin de faire ici ? Tout d'abord, nous avons besoin d'une référence au panneau d'atelier, au panneau et au panneau de cellule. Donc, nous allons créer un objet de jeu public, et nous allons avoir le menu de la boutique. Donc, c'est l'ensemble de la boutique beaucoup que nous avons auront accès aussi à l'achat et au panneau de vente. Et nous aurons besoin de tout mettre en place et d'unité. Mais avant de le faire, nous devrons créer une méthode qui ouvrira le menu de la boutique. Nous allons donc créer un vide public, menu ouvert de la boutique. Et ici, nous allons juste obtenir le menu de la boutique et nous allons définir l'actif sur vrai. Ok, super, donc tu sais déjà ce que ça fait. Maintenant, la prochaine étape évidente est que nous voulons arrêter notre joueur chaque fois qu'il ouvre les magasins ou quand nous commençons à parler
au commerçant et que nous avons la boutique ouverte, nous voulons que notre joueur arrête tout simplement. Il n'a pas besoin de commencer à bouger en parlant aux commerçants. Donc ça va faire partie de votre défi. Votre défi est d'empêcher le joueur de bouger. Ouais, encore une fois, donc chaque fois qu'on ouvre le magasin, le joueur devrait arrêter de bouger. Je vais vous donner quelques indices. abord, créer une variable et Game Manager et mettre à jour rendre la variable à l'
une des conditions et changer la variable lorsque nous ouvrons le menu de la boutique. Donc, avec cela dit, avec tous ces, donc, nous avons déjà fait cela avant. Mettez la vidéo en pause dès maintenant, et allez faire le défi. Bon, bienvenue. Alors, où en étions nous ? Tout d'abord, nous devrons entrer dans le gestionnaire de jeu. Et nous devrons ajouter un autre volume ici, qui sera la boutique ouverte. Ouvert juste pour rester cohérent à nouveau, de nombreuses boîtes de dialogue ouvertes s'ouvrent, plusieurs magasins ouverts. Et où sont les conditions ? Donc, nous allons ajouter une condition ici si la boutique est ouverte. Que devons-nous faire d'autre ? Créer des variables, mettre à jour, changer la variable lorsque nous ouvrons la boutique. On va retourner chez le gérant du magasin. Et ici, quand nous avons dit que la boutique active à true accèdera, le gestionnaire de jeu accèdera à l'instance, accèdera à la boutique ouverte et nous allons la définir sur true. Oh, ok, super. Donc, c'est fait. Que devrions-nous faire d'autre ? Évidemment, on doit pouvoir fermer la boutique, donc on va créer un menu public de fermeture de la boutique. Et je sais que je ne teste pas tout, mais nous avons déjà couvert la majeure partie de tout ça, donc j'essaie de passer un peu plus vite. Donc nous allons utiliser ces deux lignes. Et nous allons définir l'ensemble actif sur false et l' instance de Door
du gestionnaire de jeu ou la boutique ouverte sur false. Maintenant, nous devons avoir la possibilité de basculer entre les panneaux. Donc, nous devons basculer entre le panneau d'anticorps cellulaires nécessitera deux méthodes supplémentaires. Et nous aurions pu faire tout cela sur l'onclick, mais essayons d'une manière différente et essayons d'utiliser seulement les méthodes. Ce que je voulais dire, c'est que nous aurions pu activer et désactiver les objets du jeu en utilisant l'onclick sur les boutons. Mais maintenant, nous sommes en train de créer une ou plusieurs méthodes pour faire tout cela. Donc assez de parler, appliquons tout ça. On va ouvrir par panneau. Et dans le panneau de vélo accèdera à la par panneau mis actif à vrai. Et nous devrons définir le panneau de cellule pour activer sur false. Va dupliquer cela parce que c'est fondamentalement le même. Et on va ouvrir le panneau cellulaire. Donc par panneau faux, panneau cellulaire, vrai. Ok, super. Et enfin, ce que nous devons faire, c'est quand nous ouvrons la boutique. Donc, lorsque nous ouvrons le menu de la boutique, nous devons également nous assurer de définir le Bitcoin correctement étiqueté. Avons-nous une référence ? Non, nous n'avons pas besoin d'ajouter l'impro,
Donc, en utilisant le m par ligne afin que nous puissions accéder au texte
Évidemment Mesh Pro, nous allons créer une variable ici qui va être un champ sérialisé. Et il va avoir accès à nos Bitcoins. Nous allons donc l'appeler le texte Mesh pro GUI. Et ce sera le texte Bitcoin actuel. Sauve ça. Et maintenant où est-il ? Lorsque nous ouvrons le menu de la boutique, nous voulons définir les textes Bitcoin actuels. Donc, ce sera le texte Bitcoin actuel. Le texte est égal à BTC deux points. Et ici, nous allons concaténer un gestionnaire de jeu entier. Point d'instance de point accédera au courant du Bitcoin, mais les pièces de monnaie. Je pense que c'est assez, ou avons-nous besoin d'ajouter une double chaîne ? Non, on y va. Sauve ça. Maintenant, ouvrons notre jeu et voyons si l'un de ces éléments fonctionne réellement. Donc, nous avons quelques choses à faire. Alors ouvrez le Canvas, ouvrez la boutique, menu déroulant de la
boutique, et ajoutons le menu de la boutique. Enfermons ça. Nous ajoutons le contournement, le panneau de cellule, le texte Bitcoin actuel. Sauve ça. Maintenant, nous allons devoir ouvrir les boutons et nous assurer que nous avons
tout configuré correctement. Qu'est-ce que c'est ? C' était comme ça. Ok, alors répare ça. Ok, donc maintenant ce que nous devons faire est d'ajouter des fonctionnalités à nos boutons. Donc d'abord, nous travaillons sur le gros bouton qui ouvre le panneau. Alors on va l'ouvrir. Nous allons ajouter le canevas comme objet. Nous allons accéder au directeur du magasin. Et qu'est-ce que ça fait ? Il ouvre V par panneau, ira au prochain gros bouton de cellule. Nous allons également ajouter la fonctionnalité sur le Canvas. Allez chez le directeur du magasin. Et on va ouvrir le menu des cellules. Alors ouvrez le panneau de cellule et le bouton de sortie. Donc, cela va quitter le magasin. On va, oups, près de la boutique. Donc, Gestionnaire de fonctions, fermez le menu de la boutique. Alors on y va. Sauvons ça. Que devons-nous faire d'autre ? Voyons voir, avons-nous d'autres open source, open close. Ok, et aussi nous devons faire une chose de plus. Et c'est à chaque fois que nous ouvrons réellement notre boutique, nous devons le définir uniquement par menu. Donc, nous allons accéder au menu ou à l'ensemble de points du panneau de vélo actif, vrai. Donc, dès que nous ouvrons la boutique, nous allons accéder au panneau de vélo. Garde ça ici. Attendons que cela se compile. Laissons notre jeu et voyons si l'un de ces éléments a fonctionné. Donc, actuellement, euh, laissez-moi aller chez le gestionnaire de jeu et donnez-nous la possibilité de Bitcoins. Donnons-nous-mêmes 32. C' est vraiment bon nombre, sauf ça, et essayons-le. Va à la cellule. Oh, je travaille ici. Donc cellule. Rien de tout cela ne fonctionne parce que, et vous pourriez rencontrer ce problème, pourquoi nos boutons ne fonctionnent-ils pas ? Parce que nous n'avons pas de système événementiel. Qu' est-ce qu'un système d'événements ? Laisse-moi te montrer l'autre scénario et l'autre scène. Je veux dire, donc on ira en ville pour double-cliquer. Vous remarquerez ici que nous avons un système événementiel et
c'est ce qui nous permet d'interagir avec les boutons. C' est ce qui garde une trace de ce que nous cliquons sur notre menu de jeu. Et parce que dans ce canevas et le système d'événements sont séparés lorsque nous avons ajouté un canevas en utilisant le préfabriqué, nous n'avons pas obtenu de système d'événements. Donc, ce que nous allons faire est que nous allons faire glisser dans le système d'événements le canevas. Nous n'avons certainement pas besoin de le faire parce que si nous appliquons la toile ici, tout ce que nous avons fait auparavant et l' autre dans le menu de la boutique va être détruit. Donc, revenez ici avec notre menu boutique, nous allons cliquer avec le bouton droit de la souris et aller à vos yeux et ajouter un système d'événements. Nous allons sauver ça maintenant si nous menons notre jeu, je suis presque sûr que tout devrait fonctionner. Alors voilà. Vendre, nous vendons, acheter, acheter, sortir boutique, nous sortons chop. Et malheureusement, nous n'avons pas encore de moyen de mettre à jour Debussy, mais nous y arriverons. J' espère que vous avez apprécié cette
très, très longue vidéo et je vous verrai dans la prochaine.
69. Configurer des gardeurs de la boutique: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons activer le magasin et le désactiver selon que nous sommes assez proches du commerçant. Donc, comme vous pouvez le voir, nous avons la petite boîte Trigger. Si on est à l'intérieur, on peut ouvrir le magasin. On peut aller à la cellule pour savoir pourquoi. Bien sûr, nous ne pouvons pas déplacer notre joueur tant que nous avons ce ouvert, vous pouvez voir que nos BDC sont 32. Nous quittons le magasin. On peut se déplacer à nouveau. Si on essaie de l'ouvrir ailleurs, on ne peut pas. Alors ne perdons plus de temps. Allons de l'avant et installons un commerçant. O k. Donc il est temps de créer un magasin. J' ai déjà ajouté un commerçant. J' ai donc utilisé un de ces sprites que je vous ai fournis. J' ai utilisé une de la chute. Je l'ai eu ici et je l'ai piégé, là-haut. J' ai également veillé à découper le sprite et à ajouter l'image ici. Ok, donc maintenant avec notre commerçant, Sprite a fini, il est temps d'aller de l'avant et de créer un nouveau script dans la boutique. Et ça va être un script pointu appelé le commerçant. Appuyez sur Entrée, attendez qu'elle se compile. On y va. Donc maintenant, si nous allons sur le commerçant, ajoutons le script ici. Et nous allons ajouter aussi quelques choses. Donc, tout d'abord, nous allons lui ajouter un collisionneur. Donc, une boîte de collision 2D juste autour d'eux. Voyons voir à quel point c'est grand. Oui, on y va, ça suffit. Et nous allons ajouter un autre collisionneur de boîte et ce sera un déclencheur. Donc le premier est juste d'être incapable de marcher à travers lui. Le second sera la zone V où nous pouvons réellement accéder à la boutique. Donc, on va juste en créer un. Et ici, on déplaçait le mauvais collisionneur de boîte. Essayons encore une fois. Et on va le rendre plus petit,
celui-là un peu plus grand. Alors, voilà. Rends-le un peu grand pour qu'on ait plus d'espace pour emménager. Et voilà, assurez-vous que c'est un déclencheur. Le second, le briquet. Le gros collisionneur de boîte. Oui. D' accord. Maintenant, allons de l'avant et ouvrons le script boutique ou le script des commerçants. Et ici, tout d'abord, nous devons créer un booléen qui vérifiera si nous pouvons réellement ouvrir la boutique. Donc, c'est un bool privé peut ouvrir boutique. Ce n'est donc pas un champ sérialisé. Nous n'avons pas besoin de le voir, mais ce que nous voulons voir est un tableau d'éléments. Nous allons donc créer un champ sérialisé. Ça va être une liste. Et puis je dis tableau, je voulais dire liste, et ce sera une liste d'éléments. Donc, le gestionnaire d'articles, c'est le type et nous allons l'appeler les articles à vendre. Et le seul problème ici avec la création listes est qu'il n'apparaîtra pas dans l'inspecteur va enregistrer cela. Nous retournerons dans une unité. Et on y va. Vous pouvez voir que sur le commerçant, nous avons les articles pour dire, Ok, super. Ce que nous devons faire, c'est pouvoir ouvrir le menu de la boutique et les vêtements. Et votre défi est de déclencher l'entrée et la sortie. Donc, créer un sur sucre entrer et sortir dans le commerçant. Vérifiez pour le joueur en eux et a dit que le booléen
peut ouvrir boutique à vrai ou faux basé sur, vous devez savoir sur quoi. Alors mettez la vidéo en pause et allez créer le déclencheur, entrez et sortez. Ok, bienvenue. Donc ici, nous allons créer une propre entrée de déclenchement. Et nous allons vérifier la collision FV. Le DAG est égal au joueur. Donc, c'est quelque chose de différent de la balise de comparaison. Nous accédons à la balise sur la collision, puis la comparons au joueur. Et si c'est le joueur, alors peut ouvrir boutique est égal à vrai. Dupliquer ou Novak, il n'est pas dupliqué à la sortie de déclenchement à la et nous allons juste copier ceci. On y va. Colle-le ici. Peut ouvrir la boutique est faux. On y va. Donc maintenant, si le joueur et jeudi collision, nous le mettons à vrai, cela signifie
que nous pouvons ouvrir le magasin. Si nous sommes à l'extérieur,
alors nous ne pouvons pas ouvrir le magasin. Maintenant, nous devons obtenir une entrée d'un certain bouton pour être en mesure d'ouvrir la boutique. Donc, une mise à jour, nous allons vérifier si nous pouvons ouvrir la boutique
et le point d'entrée être boutonné vers le bas. Le feu, je crois qu'il s'appelait. Alors. Même si c'est une référence de chaîne, nous allons juste le nommer pare-feu. Si nous avons une erreur ou que quelque chose ne s'ouvre pas, alors nous allons vérifier. Et nous devons également nous assurer que le joueur, sorte que le script du joueur avec une instance et le mouvement de désactivation est défini sur false. Donc nous devons nous assurer que le joueur peut se
promener et vous verrez plus tard ce que je veux dire par là. Et enfin, nous devons nous assurer que la boutique n'est pas déjà ouverte. Donc FV, gestionnaire de magasin, instance de
point, point actif, point GameObject point est actif et hiérarchie. Actif et hiérarchie. Donc, nous pouvons ajouter une entrée ici. On y va. Il suffit de ne pas avoir cette longue ligne. Donc, nous devons tout d'abord nous assurer que nous pouvons ouvrir la boutique. Nous devons nous assurer d'appuyer sur la clé d'entrée. Nous devons nous assurer que le joueur est capable de bouger. Donc on l'a fait. Nous n'avons pas encore activé le mouvement. Et enfin, nous devons nous assurer que le menu de la boutique n'a pas encore été ouvert. Ok, super. Et ici, au lieu de l'objet de jeu, nous devons être Shot menu parce que les préférences du gestionnaire de boutique, chaque fois que nous écrivons instance de gestionnaire de magasin point GameObject, nous référençons l'objet de jeu qui a le gestionnaire de boutique, qui est la toile dont nous avons besoin pour accéder au menu de la boutique. Ok, donc avec ce Don, qu'est-ce qu'on va faire ici ? Bien sûr que nous allons ouvrir la boutique. Donc gérant de magasin, instance de
point, point, hommes de boutique ouverts. Sauvegardez ça. Et avant d'aller tester cela, il y a une autre chose que nous devons faire, est-à-dire définir une liste d'articles dans le menu de la boutique. Donc, si nous allons au directeur de la boutique, aura besoin de créer ici une liste de cinq éléments gestionnaire. Et ce sera aussi les articles à vendre. Donc, dans le commerçant, nous avons ouvert la boutique et puis nous sommes avant même d'ouvrir la boutique, nous pouvons accéder au directeur de magasin, gestionnaire magasin point instance points points points à vendre. Et ça va être égal aux articles en vente que nous avons mis ici. Donc c'est l'objet qui est alors chef de magasin, alors que celui-ci est celui que nous utilisons pour le commerçant, Allons trop confus pour vous. Je vous recommande de changer le nom. Allons de l'avant et changeons l'article des commerçants à vendre. D' accord. Alors on y va. Articles de gardiens de magasin à vendre. Appliquez ça. Alors maintenant les articles à vendre dans la boutique ou les commerçants articles à vendre. Donc nous allons sauver tout ça. Nous allons retourner dans Unity. Nous allons courir notre jeu et nous allons aller
à côté du commerçant et avoir la clé de feu. Et on y va, on doit acheter la cellule et le magasin de sortie, et on peut sortir du magasin. Si on ouvre le magasin, on
peut se déplacer ? Non, on ne peut pas. Quand on sort du magasin, on y va. On peut se déplacer. Tellement excellent. Tout semble fonctionner. Dans la prochaine vidéo sera en fait montrer les articles que nous voulons acheter et vendre. Donc avec ça fait, je te verrai dans la prochaine vidéo.
70. Objets à acheter et à vendre: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons
permettre d' acheter ou de visualiser les articles que nous voulons acheter et vendre. Donc, comme vous l'avez vu en ce moment, j'ai ramassé quelques objets. Je suis allé chez le commerçant, je clique sur le Menu et voilà, je peux voir immédiatement que j'ai les actes et tout ce qui est disponible sur le commerçant à acheter et nous avons ajouté tous ces manuellement à partir du commerçant droit ici. Si je déclique dessus, vous pouvez voir que les commerçants article à vendre. Voilà, les pièces d'argent, l'armure d'or, et tout ça. Et maintenant, si je vais au panneau cellulaire, tu y vas. Ce sont les objets que j'ai ramassés et que je peux. Maintenant, ils ne font rien, mais pour l'instant, notre objectif principal est de les visualiser tous. Alors ne perdons plus de temps. Et commençons. Oh, donc il est temps de visualiser les articles que nous voulons acheter et les articles que nous voulons vendre. Donc, cela va être assez similaire à la façon dont nous avons géré les éléments dans le menu des éléments. Donc nous allons entrer dans notre code. La première chose dont nous avons besoin sont des références au conteneur de fente d'élément, qui va être le bouton et le parent de conteneur de fente d'icône. Donc, on va dans le gestionnaire de menu. Et si nous faisons défiler ici, nous pouvons simplement copier le conteneur de fente d'article et un pour les parents. Donc nous allons copier ça, nous allons le coller ici. On va sauver ça. Et quand nous ouvrons le panneau bimanual, nous voulons aller de l'avant et mettre à jour tout cela. Alors, comment la mettre à jour ? Eh bien, c'est aussi assez similaire à celui que nous utilisons ici. Donc, dans le gestionnaire de menu, où nous mettons à jour les éléments dans l'inventaire vont copier tout ce code. Et on va aller de l'avant et le coller ici. Mais au lieu d'utiliser l'inventaire, donc lorsque nous regardons tous les articles dans le gestionnaire de menu, nous utilisons pour examiner l'inventaire et le directeur de la boutique, nous allons aller de l'avant et regarder à travers les articles pour dire, Sauvegarder ça. Et une autre chose que nous devons changer, c'est le montant. Donc, nous allons supposer que le commerçant a toujours une quantité infinie d'accès. Nous ne nous débrouillerons mettre en place des quantités limitées d'armes. Nous allons le garder comme infini pour l'instant, juste par souci de simplicité. Donc, nous devons nous assurer que c'est un vide, nous allons sauver ça. Et si nous ne créons pas ce genre d'instruction if condition, vous remarquerez, vous pouvez l'essayer, mais parce que l'état par défaut de cette image est avec 999 en bas, nous devons nous assurer que nous la remettrons à une chaîne vide. Alors maintenant, allons dans le commerçant et ajoutons quelques articles ici. Donc, nous allons ajouter une hache dorée, ajoutera une armure dorée. Nous en ajouterons deux de plus. On va ajouter un argent ici et une armure d'argent ici, et un jeu d'or à la fin. On va sauver ça. Nous allons exécuter notre code. Et voyons si ça marche. Si on monte chez le commerçant, on va au bimanual et on y va. Vous pouvez voir que nous avons mis à jour nos articles d'achat et si nous cliquons sur l'un d'eux, rien ne se passe. Si nous essayons d'acheter, rien ne se passe et le menu cellulaire ne fonctionne toujours pas. Allons-y et réparons ce panneau de cellule. Maintenant, dans le panneau de cellule, nous pouvons réellement utiliser la portée du gestionnaire de menu exactement comme il est y, parce que nous utilisons les articles de l'inventaire que nous
avons un ordre de les vendre au commerçant. Mais il y a un petit problème. Si nous copions ce code et le mettons dans le gérant du magasin sur le panneau du vélo, cela fonctionnera parfaitement bien. Vous pouvez même le tester vous-même. n'y a pas de problème avec. Mais en tant que programmeur professionnel, et alors que nous progressons dans ce cours, il est préférable de commencer à utiliser des techniques et des habitudes plus avancées. Et l'une de ces habitudes est de ne jamais avoir de code en double. Donc, nous voulons un moyen où nous pouvons créer une sorte de méthode qui peut faire les deux fonctions en utilisant le parent conteneur d'élément. Je veux dire les articles à vendre chaque fois que nous vendons sur le panneau cellulaire et en même temps travailler pour le panneau de vélo. Alors allons de l'avant et faisons quelque chose comme ça. La façon dont nous allons le faire est de créer une méthode qui a deux arguments. Et l'un de ces arguments sera l'inventaire que nous allons examiner. Donc nous allons faire défiler vers le bas et ici nous allons créer un vide privé. Et ça va s'appeler articles de mise à jour et boutique. Et ça va prendre deux arguments. Il va prendre le parent conteneur de fente d'article parce que nous avons, comme je l'ai dit, ou peut-être que je ne l'ai pas, nous avons deux types de parents de conteneur d'article, un ND par panneau et un dans les panneaux de cellules. Ainsi, vous pouvez voir ici le panneau d'affichage des éléments pour le panneau de cellule et la bannière d'affichage des éléments pour le panneau bi. C' est donc la première partie de l'argument que nous voulons envoyer. Donc, il est de transformer le parent conteneur de fente d'élément. Et le second est la liste des éléments que nous allons examiner. Donc, il va être de type liste gestionnaire d'éléments. Et nous allons l'appeler les éléments à examiner. Donc, les objets à regarder à travers. Et maintenant, nous allons couper ce code de l'ouvert par panneau. Et on va le coller ici. Et au lieu des articles à vendre, nous allons regarder à travers les articles à regarder à travers. Et le conteneur de fente d'élément est le même que n ici. Donc, j'ai déjà pré-programmé ça. Et quand nous ouvrons le menu de la Bible, nous allons aller de l'avant et appeler les articles de mise à jour et magasiner. Et le parent conteneur de fente d'élément. Nous allons appeler cela le conteneur de fente d'élément, ou les éléments pensés par conteneur ou conteneur. Mettons-le ici. Ainsi, les éléments pensés par conteneur et le conteneur de cellule de fente d'élément. Donc, nous allons sauver ça. Donc, lorsque nous mettons à jour la boutique d'articles à partir du bi, qui vont envoyer l'emplacement d'article par parent conteneur. Et la liste que nous regardons à travers sont les articles à vendre. On va sauver ça. Mais quand nous ouvrons le panneau cellulaire, nous allons mettre à jour les articles et faire des achats. Et en fait, je vais bouger ça. Alors maintenez Alt. Déplacez ça vers le haut. Oui, on y va. Éclaboussant ici. Et nous allons utiliser le jeu d'éléments de cellule, le parent de conteneur de fente. Et la liste que nous allons examiner est l'instance de point d'inventaire, point, liste d'articles. Alors on y va. Maintenant, tout cela devrait fonctionner parfaitement bien. Allons donc dans Unity. Allons de l'avant et ajoutons quelques éléments ici. Donc nous allons ajouter un acte d'or que nous pouvons ramasser une armure d'or ici juste pour que nous puissions la voir dans nos objets quand nous voulons vendre. Donc on va courir à nouveau et tu as oublié quelque chose. On doit aller dans le Canvas, faire défiler vers le bas. Fermons ça. Nous allons ajouter le conteneur de fente d'article, l'achat et la cellule. Donc la cellule, celle-ci. Allons le verrouiller. Les objets affichés bannière de la cellule iront à la cellule et le panneau d'affichage des articles sur l'acheteur ira dans le bye, enregistrez cela, exécutez le jeu, et nous allons tester cela. Allons chercher les objets. Merci. Allons chez le commerçant. Bonjour là. Par Yep, on y va. Ce sont les articles qui sont disponibles pour nous d'acheter. Et si on clique sur la cellule, voilà. Ce sont les trois articles que nous avons ramassés. Maintenant, cela ne fait toujours rien, mais au moins cela fonctionne complètement bien et avec précision à 100%. O K, super. Donc, avec cela complet, dans la prochaine vidéo, nous allons commencer à vendre et acheter nos articles. Je te verrai dans la prochaine.
71. Acheter des objets: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, laissez-moi vous montrer ce qui se passe. Nous allons collecter quelques objets. Nous allons accéder au commerçant. Lorsque nous cliquons sur acheter, nous voyons que lorsque nous sélectionnons l'un des articles, nous obtenons
la description, le nom et la valeur de cet article. Si nous cliquons sur le, par exemple, disons l'armure d'or, sa valeur est 35. Si nous allons le vendre, nous pouvons voir que nous avons un orbe d'or, mais sa valeur est 26 parce que c'est toujours un peu moins cher. Alors, et bien Cela dit, c'était montré ? Ce n'est pas perdre plus de temps. Et commençons. Oh, d'accord. Maintenant, il est temps d'ajouter quelques fonctionnalités aux boutons que nous instancions et au panneau d'achat et de vente. Mais il y a un léger problème. Nous ne pouvons pas modifier le bouton réel. Pourquoi ? Parce que nous utilisons le même préfabriqué sur la cellule et acheter des panneaux que nous utilisons sur le panneau articles. Donc, ça va être un peu un problème. Ce que nous allons faire, c'est que nous allons entrer dans le bouton Articles. Et ici, nous allons modifier. Donc, nous allons vérifier si nous travaillons dans le menu, si nous travaillons dans le magasin. Si pour travailler dans le magasin vont vérifier pour travailler dans la cellule ou dans la BI. Alors allons de l'avant et commençons à implémenter cela. Tout d'abord, lorsque nous appuyons sur le bouton, nous allons vérifier si le gestionnaire de menu, instance
point, point, actif et hiérarchie. Je veux dire .menu, nous devons accéder au menu avant de le faire. Donc, nous avons accès au menu si vous allez dans le gestionnaire de menu ici, sorte que le Gagner, de sorte que le menu n'est pas accessible. Donc on va changer ça en public pour y avoir accès. Donc, dans here.moi. Donc, si nous travaillons dans le menu, parce que rappelez-vous que nous avons un menu boutique et un menu régulier. Si nous travaillons dans le point de menu, actif et hiérarchie, alors nous allons ouvrir les crochets et nous allons utiliser le code que nous utilisions. Et avant de continuer avec ces deux lignes de code et ils ne sont pas si bons. Donc, vous ne voulez pas changer quoi que ce soit dans le gestionnaire de menus que vous pouvez modifier ici, il est préférable d'envoyer ces informations, éléments sur
le nom du bouton et les éléments sur la description du bouton
au Gestionnaire de menus et changer cela d'une façon beaucoup plus efficace. Mais je vais garder cela et j'ajouterai un commentaire semble que c'est un mauvais codage. Il est préférable d'envoyer le nom et cette corruption au script Menu Manager. Et de cette façon, nous pouvons également nous assurer que ces deux peuvent être un champ privé ou sérialisé. Ok, avec ça fait, prochaine chose que nous allons faire, c'est que vous allez vérifier si le menu de la boutique est ouvert. Donc, si l'instance dot manager shop, dot shop menu, dot active et hiérarchie, alors nous allons vérifier une autre fois si le bimanual est ouvert. Donc, si nous allons copier ceci parce que c'est à peu près la même chose. On va le coller ici. Et nous allons vérifier si le panneau VI est actif. J' appelais « get menu ». Peu importe, c'est à peu près la même chose. Tu sais ce que je veux dire ? Et qu'est-ce qu'on va faire ici ? Nous allons tout d'abord créer l'instruction else. Sinon peut créer un autre si, si vous voulez, juste pour vous assurer. Sinon, si vous copiez cela, collez-le ici, si le panneau de cellule est actif dans la hiérarchie, nous allons faire autre chose. Mais qu'est-ce qu'on va faire ? Eh bien, chaque fois que nous cliquons sur le bouton, que voulons-nous arriver ? Nous voulons tout d'abord, le nom de l'élément à remplir. Nous voulons que la description de l'article soit remplie. Nous voulons obtenir la valeur de l'article. C'est à peu près tout. Je pense que si nous avons besoin d'autre chose, pensera à ça. On va le faire à la volée. Donc, tout comme les développeurs de jeux professionnels, mais nous ne voulons pas que tout cela soit géré à l'intérieur du bouton de l'élément. Au lieu de cela, il est beaucoup mieux de largeur et le gestionnaire de magasin. Donc ici, nous sommes en train de mettre à jour, nous ouvrons, nous fermons. Nous allons créer deux autres méthodes ici. L' un d'entre eux sera un vide public sélectionné par article. Et il va prendre une variable qui va être
le responsable informatique ou de type item manager et l'article à acheter. Donc, chaque fois que nous appelons l'élément sélectionné à partir du bouton Articles, nous allons lui fournir l'élément en bas. J' espère que c'est clair. Maintenant, l'autre méthode que nous voulons utiliser est que nous allons copier ceci, coller ici, et c'est le sélectionné. Élément de cellule que nous allons utiliser et avant de continuer parce que nous utilisons les textes et la description et la valeur pour tout définir, nous avons réellement besoin d'une référence à eux. Alors, dans le directeur de la boutique, prenons quelques références. Donc, tout d'abord, nous allons créer un champ sérialisé. Il va être de type gestionnaire d'élément et c'est l'élément sélectionné. C' est donc quelque chose que nous avons fait pour un autre champ sérialisé qui contiendra les textes. Donc texte, Mesh, sonde, GUI, ce sera par élément, nom, L'élément par. Parce que la corruption et la valeur de l'article par. Et nous allons dupliquer cette ligne et au lieu de y, nous allons vendre, vendre et vendre. Et ça va être différent et vous verrez pourquoi dans un peu. Donc, avec cette sauvegarde maintenant que nous avons référence à tous les différents textes et menu D-Sharp. Défilons vers le bas et voyons ce qu'on peut faire ici. abord, nous allons accéder à l'article sélectionné et ce sera l'article à acheter. Ensuite, nous allons accéder au texte de point par nom d'élément. Et il est égal à l'élément sélectionné par ce nom, le nom de l'élément point. Donc le nom et le nom de l'élément sont très différents. Le nom est le nom réel que nous avons défini ici. Donc, par exemple, c'est le commerçant, mais le nom de l'article est quelque chose que nous ajoutons ici et le gestionnaire d'articles, donc le nom de l'article, Golden Axe. Ensuite, nous devons remplir la description. Donc, par la description de l'élément, par la description de l'article texte point élément sélectionné, cette description de l'élément. On va sauver ça. Et enfin la valeur. Et ce sera l'élément de cellule C. Tapons et évaluons la valeur de l'élément. Le texte est égal à. Et ici, laissez-moi vérifier si nous avons besoin de concaténer quelque chose. Laisse-moi éteindre le magasin. La valeur que c, C'était, ok, donc c'est un seul texte. Donc, nous allons concaténer la valeur deux points plus T cas d'article sélectionné. Donc, sélectionnez, il ne prend pas élément sélectionné, Pensée, valeur et pièces de monnaie. Nous avons donc déjà créé cette variable lorsque nous créions les éléments ici dans le gestionnaire d'éléments. Donc la valeur de l'article et la pièce de monnaie. Ok, super. Qu' est-ce que ce non, sauvegardons ça. Maintenant, allons-y et essayons de l'appeler à partir du bouton Articles. Donc, si c'est dans le panneau BI ici, nous allons lui dire que nous voulons accéder au instance point
du gestionnaire de magasin sélectionné par article. Et nous pouvons voir ici que nous avons besoin de l'article à acheter. C' est donc l'article en bas, c'est l'article que nous cherchons à acheter. Et ici, nous allons appeler l'autre méthode,
qui est l'élément, la
cellule, l' élément de cellule sélectionné. Et maintenant, il est temps de relever un petit défi. Et votre défi est de terminer ces menu de cellule, appelé l'élément de cellule sélectionné à partir du bouton Items. Je l'ai déjà fait pour toi. Complétez la méthode dans le gestionnaire de magasin. C' est la même chose que dans le par presque
vérifier si tout fonctionne en utilisant le loc de point de débogage. Et pourquoi je dis que c'est presque pareil ? Eh bien, parce que, tu sais, chaque fois qu'on travaille dans un jeu ou n'importe quel jeu de RPG, presque n'importe quel jeu. Je crois que si vous voulez vendre un article, sa valeur est inférieure à chaque fois que vous voulez réellement l'acheter. Donc, quand vous voulez vendre quelque chose, par
exemple, disons que vous voulez acheter l'armure de plaque d'or. Sa valeur est 100. Mais quand vous le vendez, sa valeur est peut-être de 75. Donc, ce n'est pas la même chose lorsque vous voulez vendre quelque chose que lorsque vous voulez acheter vendu, vous devrez réduire la valeur lorsque vous voulez vendre un article. Cela dit, arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Comment as-tu réussi avec ça ? Donc c'est à peu près la même chose exacte. Nous allons copier ceci, le coller ici, et au lieu de l'article à acheter, ce sera l'article à vendre. Nous allons le coller ici donc c'est l'objet à vendre et la valeur, au lieu d'être juste dévaluer les pièces, nous allons le multiplier par, disons 0.75 eth. Et cela fonctionnera-t-il ? Est-ce que cela nous donnera une erreur ? Je pense que ça pourrait. Alors gardons-le tel qu'il est. Peut-être que ça ne le fera pas. Donc, nous allons sauver tout ça. Nous allons aller dans Unity. On va aller dans le Canvas et on va mettre tout ça. Donc, le nom de l'élément par. Assurez-vous donc d'ajouter la valeur, la valeur de description, les valeurs d'élément. Donc c'est ici, la cellule. Alors fermons le panneau des acheteurs qui s'ouvre ici. Donc, le nom de l'élément, la description de l'élément, et le 0 plus c'est la valeur ici. On va sauver tout ça. Nous allons exécuter le code et j'espère que nous n'avons pas d'erreurs ou que nous allons exécuter notre jeu. Et sortons du tranchant. Allons ramasser quelques articles. Allons chez le commerçant, allons acheter. Si nous cliquons sur l'argent, voilà. Donc vous pouvez voir qu'on a une armure d'argent. Fema, fais cette plus grande armure d'argent. Cela va défendre contre les monstres et sa valeur est 15. Si nous allons à la cellule et nous sélectionnons, ou sélectionnons l'armure d'or. Sa valeur est 35. Si nous allons à la pour vendre cette armure, nous cliquons dessus et rien ne semble fonctionner. Pourquoi c'est ça ? Et c'est parce que dans le magasin et le sélectionné oh, ok. Nous n'avons donc pas modifié la cellule, le nom de l'élément de
cellule, la description de l'article de cellule, la valeur de l'article de vente. Maintenant, cela devrait fonctionner. C' est pourquoi vous ne copiez jamais et collez et faites simplement. Vous devez toujours vous assurer de savoir ce que vous copiez et collez. Donc maintenant, nous allons au commerçant qui veulent acheter l'armure d'or est 35, nous allons à solide. Sa valeur est 26,25. Ok, donc c'est pour ça qu'on doit le convertir en entier. Donc n ici, nous allons juste ajouter les parenthèses et nous allons écrire int, fermer cela, enregistrer cela, et cela devrait le convertir en un entier. Mais comme vous pouvez le voir, 35 quand nous voulons, ici 2006, quand nous voulons définir. Donc, avec cela fait, j'espère que vous apprécierez ça. J' espère que vous appréciez le cours, même si je fais quelques erreurs parfois, j'aime vraiment les garder ici. Et parce que je le pense vraiment, surtout si vous êtes un débutant, vous pouvez être très submergé, mais par ce qui se passe. Donc vous pourriez penser que, oh, comment mon instructeur va si bien, et où a-t-il toutes ces connaissances et pourquoi je ne peux pas être comme ça ? J' aime te montrer que je fais toujours des erreurs. Je dois toujours y retourner et même parfois couper de longues durées parce que je ne sais pas quel est le problème. Je vais tester, utiliser le débogage. Je retourne toujours en arrière et je vois où est le problème. Comme vous pouvez le voir, parfois nous oublions
quoi, quoi, quelle est la variable que nous utilisons. Pour cela dit, j'espère que vous appréciez si vous
faites laisser un commentaire à m'aide beaucoup et me laisse savoir ce que vous pensez du cours afin qu'aucun dans la prochaine vidéo sera accéder à notre inventaire et faire les boutons d'achat et de vendre, de travailler correctement. Alors je te verrai dans la prochaine.
72. Faire en sorte de travailler les boutons d'achat et de vente: Bienvenue à mes collègues développeurs de jeux pour une toute nouvelle vidéo. Et dans celui-ci, nous avons fini d'acheter, de vendre des articles. Donc, si on va chez le commerçant, on a ramassé des articles. Bien sûr, nous avons encore un peu de choses à réparer. Comme par exemple, sur la droite maintenant quand nous ouvrons le menu de la boutique, nous avons eu le contournement et ouvert. On doit l'éteindre. Mais ce sont de petits détails qui ne sont pas si importants, surtout quand il s'agit du code. On ouvre la cellule, on sélectionne la hache dorée, on la vend et elle disparaît et on en obtient 18. Donc, nous sélectionnons, si nous essayons de le vendre à nouveau, comme vous pouvez le voir, nous ne pouvons pas. Si nous allons à la partie, c'est cinq, nous devrions avoir 55 bitcoins. Et si nous résolvons ça, qui est 26, je pense que nous obtenons 780 quelque chose, 81, nous y allons. Je ne suis pas douée en maths. Si on essayait d'acheter, disons que j'achète le Ax Ay d'or par l'armure d'or avant d'aller la vendre. Voilà, tu y vas. Je peux les vendre à nouveau parce qu'ils sont ajoutés à mon inventaire et pas seulement ici. Si je sors, je m'en vais. J' ai ouvert le menu des éléments. Je les ai ici dans mon menu d'articles, prêt à travailler pour aller combattre des monstres. Alors Jimmy peut aller dans un magasin. C'est cool ? Un démon peut enfin aller acheter, vendre des choses dans le magasin. C' est sans précédent. Donc, sur cette bombe, ne perdons plus de temps et commençons. Oh, heure 40, dernière étape de notre boutique. Nous voulons réellement acheter et vendre des articles. Alors allons voir notre directeur de magasin ici. Et nous allons créer deux méthodes. L' un pour l'achat et l'autre, bien sûr, pour le Sommet. Allons donc ici et nous allons créer un avant public par élément. Et nous allons vérifier, tout d'abord, si nous avons la quantité de Bitcoin requise. Donc, si le gestionnaire de jeu point d'instance point, était-ce appelé la hanche
actuelle, Bitcoins actuels est supérieur ou égal à la valeur de point de l'article sélectionné en pièces de monnaie, alors nous pouvons procéder à l'achat et comment pouvons-nous acheter ? Eh bien, tout d'abord, nous devons supprimer du Bitcoin actuel. Donc moins égal à la valeur des éléments sélectionnés. Donc tout d'abord, vous savez, quand vous achetez quelque chose, vous devez donner quelque chose en retour. Et puis nous devons l'ajouter à notre inventaire. Donc, l'instance de
point d'inventaire, point, ajouter des articles, et nous allons ajouter l'élément sélectionné à elle. Voilà, sauve ça. Et cela devrait finir tout dans le back-end de la programmation. Maintenant, à l'avant, nous voulons nous assurer de mettre à jour l'or que nous avons encore. Je veux dire, mettre à jour les Bitcoins que nous avons. Quelle honte d'appeler Bitcoin or. Quoi qu'il en soit, même si c'est bien mieux. Alors continuons. Nous devons donc mettre à jour le texte parce que je me souviens encore, était-ce juste la valeur ? Laissez-moi voir la quantité de Bitcoin, ok, Donc BTC deux points, ok, donc BTC deux points, nous allons concaténé avec une chaîne, qui va être l'instance de point de gestionnaire de jeu, point Bitcoin, bitcoins, et là vous allez. Je pense que c'est tout ce qu'il faut faire. Nous sauverons cela. Et maintenant, nous devons attribuer cette méthode par article au bouton d'achat. Donc, dans le menu de la boutique, dans le panneau de vélo et le bouton d'achat, si nous faisons défiler vers le bas, nous savons que nous ne voulons pas ouvrir le personnage. Qu' est-ce que c'est ? On doit y aller ? Le directeur de la boutique, par, par, par article. On y va. Sauvegardez ça, exécutez le jeu. Si vous ouvrez le menu, accédez à Éléments. Vous pouvez voir que nous n'avons rien et que
ça ne se ferme toujours pas quand nous sommes si faciles à faire et nous ne l'avons pas encore fait. Alors on ouvre, on va au menu, on achète les actes, la hache d'or. Et nous pouvons écrire, parce que nous n'avons pas assez de fonds. Un message ici serait très gentil, donc on peut acheter des bonbons à l'or. Alors achetons une armure d'argent aussi, nous avons encore sept Bitcoins. Nous sortons de la boutique, nous allons aux articles et là vous allez. Alors maintenant, c'est cool ? Nous pouvons en fait acheter des articles et les voir dans notre inventaire. C' est tellement cool. Ok, super. Retournons en arrière. Maintenant, il est temps de créer les méthodes de bouton de cellule et il va y avoir une partie de votre défi. Votre défi est de créer les méthodes de bouton de cellule. Alors mettez à jour l'or actuel. Pourquoi je l'ai gardé en or ? Laisse-moi changer ça. Bitcoin, bienvenue dans le backend de notre monde. Donc Bitcoin actuel avec la valeur des éléments, supprimer les éléments de la liste, mettre à jour le texte, et définir l'élément sélectionné sur null. Et je vais te dire pourquoi dans un peu. Mais pour l'instant, allez faire le défi. Bon, bienvenue. Donc élément cellulaire vide public, j'espère vraiment que vous faites les défis parce qu'ils sont une excellente façon d'apprendre. Si, à ce stade, vous n'avez toujours pas fait au moins 50 pour cent des défis à partir de maintenant. Parce que je pense que c'est la dernière section pour la vidéo finale. Dans cette section, vous devez mettre l'effort et faire tous les défis. Ainsi, le Bitcoin actuel augmentera de la valeur. Donc ça va être un int. Nous voulons le convertir à une fin. Et nous allons juste copier ceci ici, parce que c'est à peu près la même chose. Copiez, collez-le ici. Donc, l'élément sélectionné, la valeur du point et la pièce fois 0,75. Ok, super. Ensuite, nous allons le supprimer du point d'instance de porte d'inventaire supprimer l'article de suppression, l'article sélectionné. Et enfin, nous devons mettre à jour. Donc, nous allons récupérer le texte, le coller ici. Et comme je l'ai dit, nous allons définir l'élément sélectionné pour être égal à néant. Et pourquoi je fais ça ? Sauvegardez et laissez-moi vous montrer pourquoi. Je vais donc le commenter. Si vous allez ici, si nous menons notre jeu, nous ramassons un objet, nous allons le vendre. On peut le vendre. Ce n'est pas la mise à jour. Pourquoi ne se met-il pas à jour ? Parce que nous n'avons pas affecté au bouton de cellule. L' élément de cellule. Où vend-il des objets si cela lance le jeu à nouveau. Et c'est très important. Donc on vient à la cellule, hey cellule, c'est pour 2006. On le vend. On y va. On en a 58. Et nous pouvons résoudre ça beaucoup, beaucoup, beaucoup de fois. Alors, qu'est-ce qu'on doit faire ici ? Nous devons définir l'élément sélectionné sur null. Et puis nous allons créer une condition if ici qui s'
assure que s'il y a un élément sélectionné ou qu'il n'y a pas un élément sélectionné, nous pouvons le faire ou, ou seulement quand il y a un élément sélectionné. Donc, sur la, quand il y a un article sélectionné, alors nous pouvons aller de l'avant et magasiner. Essayons à nouveau. Assurez-vous de lancer le jeu. Cette boutique que nous voulons vendre, vendre cet article. Voilà, pour qu'on puisse le vendre sur ceux. Mais si on clique encore dessus, même si on peut cliquer, Ok, donc on peut, une fois, on y va. On ne peut plus. Et c'est la finale, disons que le chink dans l'armure. Donc nous allons à je ne sais pas pourquoi j'ai appelé Chink dans l'armure. Nous allons mettre à jour le menu. Comment allons-nous faire ça si nous y allons ? Donc, ici, vous pouvez voir que nous mettons à jour les éléments, donc nous allons simplement ouvrir le panneau de cellule à nouveau. Alors ouvrez le panneau cellulaire. Maintenant, vous pouvez voir que quand on vend l'un des articles, on va vendre, on a touché cette cellule. Tu ne peux plus le vendre. Vous ne pouvez pas sélectionner l'élément et vous ne pouvez pas appuyer sur la cellule autant que vous le souhaitez. C' est un solide une fois que vous obtenez vos Bitcoins et que vous partez à la conquête d'autres villages et ainsi de suite. J' espère que vous apprécierez le cours. J' espère que vous avez apprécié la boutique. Je sais qu'il n'y a pas beaucoup de combats et de mécanismes de jeu, mais c'est très, très important. Ceci est plus axé sur le codage, sur la façon d'éviter certaines choses, sur la façon de créer des environnements intéressants si vous le souhaitez, et sur la façon de gérer les réactions entre plusieurs scripts. Donc j'espère que vous appréciez, j'espère que votre cerveau commence à faire mal à cause de toutes les façons dont nous avons connecté notre directeur de
magasin et de magasin et boutons article et l'inventaire et le gestionnaire d'articles et le menu gestionnaire et tout cela, tout cela est relié ensemble d'une belle manière qui semble toujours fonctionner. J' espère que vous apprécierez et je vous verrai dans la prochaine vidéo.
73. Section 10 : Créer des questions: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, comme vous pouvez le voir, nous avons créé un gestionnaire de quêtes avec quelques quêtes que nous avons en lui et des marqueurs de quêtes. Donc, quand nous lançons notre jeu, vous verrez que pour chacune de nos quêtes, nous avons un élément ou un o k, temps pour certaines quêtes. Quel RPG n'a pas de quiz ? Est-ce même un RPG ? S' il n'y a pas de quêtes, peut-être qu'il y en a, je ne sais pas. Créons un système de quêtes et nous allons vous montrer juste un peu comment cela va fonctionner. C' est donc un de mes dessins les plus professionnels comme vous pouvez le voir. Donc nous avons une corde, un chemin de terre, nous avons une grotte avec une entrée et un peu d'herbe. Et nous avons Jimmy, où l'œil est devenu rouge. Et nous avons les quêtes ici. Disons qu'on a trois quêtes. 1, nous devons tuer le dragon, prendre l'épée, sauver la ville. Ok, donc nous aurons une sorte de système de case à cocher, donc nous devrons récupérer Dragon vérifiera. Quand nous tuons le dragon, sorte de grotte et une autre scène s'ouvriront et qui a donné aura une épée dedans pour que nous puissions aller dans la grotte, arriver à trier, et ensuite peut-être aller à une autre scène. Et c'est pour ça que j'ai créé cette flèche parfaitement en forme, qui dit qu'après avoir tué un dragon, on peut venir de cet endroit. Peut-être que la flèche aurait dû être pointée dans l'autre sens. Mais de toute façon, on vient d'une autre scène. On trouve la grotte où on a besoin de l'épée. On a l'épée. On y retourne et on va sauver la ville. Je ne sais pas. Quoi qu'il en soit, on va s'établir. Allons de l'avant et tout, commencez à créer les points de quête et les demandes, qui auront. Alors allons dans Unity et nous allons dans les scripts, va créer un nouveau dossier ici. Et je me dis, Où dois-je mettre ma manette de caméra, gestionnaire de
jeu et mon gestionnaire de menu ? Créons un dossier. Oh, c'est, c'est un script pointu en C. Supprimer. Créons un dossier, que nous appellerons le dossier alors. Ok, donc il faut un peu de temps pour traiter le dossier. On l'appellera les gestionnaires. Gestionnaires. Donc, le contrôleur de caméra est aussi un gestionnaire. Et nous allons juste le mettre dans le gestionnaire pour l'instant si vous trouvez un meilleur nom pour le dossier ou un meilleur endroit pour les scripts, va les mettre là. Et nous allons créer un nouveau dossier. Et les scripts pour les quêtes et y est l'unité. Quêtes si lentes, je deviens rouge. Sauvons ça. Je pense que l'unité est sur le point de s'écraser. Donc, à l'intérieur des quêtes, nous allons créer un script C-Sharp que nous appellerons le manager. Entrez, attendez qu'il compile, et le gestionnaire de coûts sera ajouté dans le gestionnaire de jeu parce que
évidemment c'est le meilleur endroit pour sauver un gestionnaire de coûts, car nous allons passer par plusieurs scènes et nous devons garder une trace des demandes. Ok, super, avec cela fait, économisons, et maintenant ouvrons le gestionnaire de coûts et Visual Studio et voyons ce que nous devons faire ici. Donc d'abord, nous avons besoin des noms. Donc, nous allons aller de l'avant et créer un champ sérialisé où nous allons créer un tableau de chaînes. Et parce que ce n'est pas une liste, parce que nous n'allons pas supprimer ou ajouter quoi que ce soit. Donc, ce n'est pas un problème de le garder comme un tableau. Et ce seront les noms des quêtes. Nous allons créer un, un autre tableau, mais cette fois, ce sera des Booléens et ce sera les marqueurs
de quête terminés. Donc ce seront les marqueurs, comme nous l'avons dit, nous aurons des marqueurs pour chaque quête et nous aurons un but. Alors allons-y et sauvegardons ça. Sauvegardez ceci, retournez dans Unity, et ajoutons quelques quêtes. Et voyons. Nous avons donc des demandes complètes et des demandes nom. Allons-y et commençons à ajouter quelques quêtes. Laisse le premier vide. Et on en aura peut-être quatre, peut-être cinq. Voyons voir. Que devrions-nous avoir ici ? Donc défaite, traîner. Bien sûr, pourquoi pas ? Disons qu'on entre dans une grotte. Juste entrer dans une grotte résout l'une des quêtes. Peut-être que ça devrait être bien. La grotte est encore une confiture. Prenez monstre, alors prenez monstre vendu. Ok, sauve ça. Maintenant, la prochaine chose que nous devons faire est que nous devons créer ce tableau complet de marqueurs de quête. Et la façon dont nous ferons ça. Et comme vous pouvez le voir, nous devons en faire un gros C save qui aura maintenant des marqueurs terminés. Ok, donc maintenant nous devons créer les marqueurs de quête terminés. Et pourquoi dois-je dire Créer et ne pas simplement ajouter quelques marqueurs ici, comme nous l'avons fait pour les noms. Eh bien, parce que nous ne voulons pas aller de l'avant et créer ces marqueurs manuellement. Nous voulons que cela se produise automatiquement. Donc, nous voulons un moyen chaque fois que nous
commençons, disons que le gestionnaire de coûts deux, créez ces marqueurs de quête complets et qu'il sera de la même longueur que le nom de la quête. Donc ça va faire partie de votre défi de créer un tableau de taureaux. Définissez donc le tableau de marqueurs de coût terminé comme un nouveau tableau et commencez. Ce tableau doit avoir la même taille que le tableau de quêtes que nous avons créé. Je vais vous donner un indice. Si vous ne voulez pas écouter la main, arrêtez la vidéo dès maintenant et allez relever le défi. Et moins de chance, vous aurez besoin de créer juste une syntaxe simple de nouveau booléen égal avec la longueur du nom des marqueurs de quête, ou cela devrait être les noms de requête, alors que c'était un ancien nom. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bon, bienvenue. Donc, comme nous l'avons dit, et commencer, les marqueurs de quête terminés sont égaux à la nouvelle audace. La taille devrait être le coût. Noms des marqueurs, longueur des points. Sauve ça. De retour dans Unity, nous exécutons notre code et nous devrions avoir ici, oui, nous y allons, quatre éléments pour chacune des demandes que nous avons. C' était donc une vidéo très simple. Nous sommes juste en train de jeter les bases pour
commencer à passer au niveau suivant à chaque fois avec notre système de quêtes. J' espère que ça vous plaira et je vous verrai dans la prochaine vidéo où nous créerons du code qui vérifiera réellement ces molécules.
74. Questes de marquage: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons simplement créer des façons de vérifier et de décocher nos marqueurs de quête. Donc, actuellement, si je lance notre jeu, si nous
vérifions la, disons le deuxième et le dernier, si nous appuyons sur la touche Q, vous remarquerez que le dernier a été désactivé. L' élément trois, qui est encore saute, a été activé et nous obtenons un faux. Mais si nous cliquons sur le premier avait disparu à nouveau, vous remarquerez que nous devions vrai parce que nous
vérifions si la défaite Dragon Quest a été terminée. Alors ne perdons plus de temps. Nous avons juste besoin de créer quelques méthodes et commençons. Ok, SOL, il est temps de vérifier nos quêtes complètes et incomplètes. Comment allons-nous faire ça ? Laissez-moi vous expliquer avec un dessin très professionnel. Donc la première chose que nous allons faire est de vérifier un numéro de quêtes. Donc, nous voulons un moyen ou une méthode où nous pouvons lui donner une quête pour le nom des requêtes. Il trouvera la position de cette quête dans notre journal de quêtes. Et puis nous allons vérifier si cette demande est complète. Lorsque nous avons fini de vérifier si cette demande est complète, nous pouvons soit commercialiser complète. Tout ce qu'on peut marquer incomplet. Je sais que j'ai été à 18 ans ici, mais c'est tout ce qu'on a besoin de savoir avec ce petit dessin cool. Alors commençons à implémenter cela dans notre jeu. Donc, la première chose que nous allons faire est que nous allons créer une méthode ici qui va vérifier,
pour obtenir réellement un numéro de demande get. Donc, cela prendra une chaîne et ce sera une chaîne pour la quête à trouver. Et comment allons-nous obtenir le numéro sur lequel réside la quête ? Cela va faire partie de votre défi. Votre défi est d'obtenir le numéro de la quête. Vous devrez donc parcourir tous les noms que nous avons. Vous devrez vérifier si l'un de ces coûts ou un des coûts est égal à la quête que nous voulons trouver. Vous devrez retourner la position. Et si nous ne trouvons pas le coût que nous voulons, vous devez imprimer un avertissement. Et la façon dont vous imprimez un avertissement est d'utiliser l'avertissement de journal de points de débogage. Donc, avec cette information, mettez la vidéo en pause et allez relever le défi. Bon, bienvenue. Donc ici, nous allons créer une boucle for. Ça va être int I égal à 0. Alors que je suis moins que les noms de quête longueur de point ou ouais, les noms de longueur de point. Et on va augmenter à chaque fois. Nous allons ouvrir les parenthèses et ici nous vérifierons si les
noms des quêtes à la position I sont égaux à la quête à trouver, alors nous allons retourner I. Et si à aucun moment nous ne revenons en R, et certains d'entre vous ont peut-être eu ceci problème. Et voici tout le marqueur Quest car il a un type de retour d'int, il doit y avoir un retour, et tous les chemins de code ne renvoient pas une valeur. Par exemple, disons que nous parcourons tous les noms de Quest et que nous n'en
trouvons pas qui ont le même nom que les requêtes que nous devons trouver. y aura pas de retour et c'est un grand non-non quand il s'agit de retourner les types en utilisant des méthodes. Donc, ce que nous allons faire est que nous allons simplement retourner 0 et c'est pourquoi nous avons la première quête comme une quête d'avertissement de journal de points EMT et de
déboguer pour trouver ceux qui n'existent pas. Sauve ça. Ok, donc maintenant cette méthode doit parcourir tous les noms et vérifier si l'un d'eux est égal au coût que nous voulons trouver. Ensuite, nous allons créer une méthode qui vérifie si la demande est complète. Donc ça va être une vérification publique. Si elle est terminée. Et ça va prendre un argument de chaîne. Ce sera aussi la quête à vérifier. Et qu'allons-nous faire ici ? Eh bien, nous allons tout d'abord créer un entier. Donc ça va être une fin, le numéro de coût à vérifier. Et nous allons utiliser la méthode nouvellement créée, qui est get, GET numéro de demande, et nous allons lui envoyer la quête pour vérifier. Maintenant, nous avons la position de notre quête à vérifier. Ensuite, nous allons créer une condition. Et si le numéro de quête à vérifier est différent de 0, parce que si nous n'avons pas de retour recevra une sorte d'avertissement. Donc ici, nous devons nous assurer que c'est différent de 0. Nous allons retourner les marqueurs de quête complets à la position du numéro de marqueurs de quête à vérifier. Et enfin, si nous n'obtenons rien, nous retournerons faux. Donc, si vous êtes toujours confus sur la façon dont ce retour fonctionnera, eh bien, disons que nous commençons, nous obtenons le nombre en utilisant la méthode que nous avons créée ici. Maintenant, nous avons le numéro de la quête à vérifier. Nous nous assurons ensuite qu'il est différent de 0. Si c'est le cas, alors nous allons retourner quelque chose si ce n'est pas le cas. Alors que se passe-t-il ici quand nous retournons ceci et ici les marqueurs de quête se complètent à la position que nous voulions trouver. Donc c'est vrai ou faux. Quand on reviendra, c'est tout. La méthode cesse de continuer. Si nous ne le faisons pas, la méthode continuera et nous retournerons false. Alors sauvegardons ça. Et enfin, les deux dernières méthodes qui sont la quête complète ou où nous allons marquer la quête comme complète ou nous pouvons la marquer comme incomplète. Alors peut-être que nous voulons revenir en arrière. Peut-être que vous renversez la quête pour une raison quelconque. Je ne sais pas pourquoi, mais c'est bon d'en avoir un. Donc, enfin, nous allons avoir deux méthodes publiques qui vont être nulles. Et si vous le voulez, vous pouvez aller de l'avant et les créer vous-même. Ils ne sont pas trop durs. Marquer Terminé. Et il va avoir aussi une chaîne qui va être une quête à marquer. Et nous allons finir ici, allez-y et demandez le numéro à vérifier. Et ce sera la quête à marquer. Et nous allons aux marqueurs Quest terminés à la position Quest, numéro de
quête à vérifier. Et ça va être égal à vrai. C' est parce que nous vérifions qu'il est complet. Et nous allons créer une deuxième méthode ici, qui va être deux marqueurs de quête ou marquer Quest, je suis désolé, question incomplète. Mark. Tout ici est vrai sauf ça, ce qui ne devrait pas être faux. Ok, super. Enfin, je sais que c'est beaucoup de code sans rien tester, mais nous tous autant que ça vaut la peine. Ce n'est pas très compliqué. Vous pouvez le regarder à nouveau. Il n'y a rien. Donc on trouve le numéro. Nous vérifions si c'est terminé. Si c'est le cas, nous le marquerons comme complet ou nous pouvons le marquer comme incomplet. C' est ça. Il n'y a rien de trop compliqué ici. Enfin, nous devons créer un moyen de vérifier l'une des méthodes. Donc, nous allons créer une condition if ici prendra dans un point d'entrée get key down. Et nous allons utiliser un code clé. Que devrions-nous utiliser ? Je pense que Q pour quête. Et avant que j'oublie, quand vous voulez construire votre jeu, vous devez supprimer toutes ces entrées. Donc nous allons imprimer, tout d'
abord, vérifier si c'est terminé. Donc, nous allons vérifier si une certaine quêtes que vous voulez que cela complète. Alors, quels coûts voulons-nous vérifier ? Retournons à Unity et vérifions le suivi des défaites. Donc on va copier ça. Nous allons le coller ici,
et c' est une référence de chaîne. Vous devez vous assurer que c'est correct. Nous allons marquer la quête comme terminée, et nous allons l'envoyer l'autre. On va l'envoyer dans la grotte d'entrée ou encore dans la salle de gym. Donc, nous allons marquer ceux-ci encore la quête de saut comme complète et marquerons l'un d' eux comme incomplet ou complet quand nous commencerons notre jeu et ensuite nous le marquerons comme incomplet va être le dernier. On prend le monstre vendu. Donc Mark et complète, ouvrez ça basé dans, ici. Sauve ça. Et allons de l'avant et nous allons voir comment ça marche, d'
accord, juste en nous assurant que nous allons courir notre gain. Donc nous allons vérifier le dernier comme complet, et nous allons appuyer sur le bouton Q. On y va. Vous pouvez voir que tout d'abord, nous vérifions si le dragon de défaite est terminé. Donc non, ce n'est pas complet. Ici vous pouvez voir que nous arrêtons l'exhaustivité
ou le monstre vendu ou prendre quête de l'âme de monstre était terminée, mais quand nous avons frappé le froid Q, nous l'avons marqué comme incomplet tandis que la confiture d'acier, qui est juste au-dessus, a été marquée comme terminée. Maintenant, si nous essayons de tourner le premier, nous devrions obtenir un vrai ici, et cela devrait être désactivé. Donc nous avons frappé le Q, nous avons un autre faux encore parce que nous aurions dû vérifier celui-ci, pas le dernier. Alors maintenant, nous devrions obtenir un vrai, espérons-le. Oui, voilà. Il faut vrai, tout fonctionne. Nous vérifions nos quêtes. J' espère que ça vous plaira et je vous verrai dans la prochaine.
75. Objets de quête: Bienvenue, mes collègues développeurs de jeux. Comme vous pouvez le voir maintenant, nous avons une carte et nous avons un saut. Mais alors que le saut il n'y a pas de carte geminale, comment va-t-il apparaître ? Eh bien, si nous courons notre jeu, nous avons un bouton spécial qui fera apparaître le saut. C' est la façon G, ça ne marche pas. Pourquoi cela ne fonctionne-t-il pas ? Oh, parce que la confiture n'a toujours pas été activée. Donc si on l'allume et qu'on touche le G. Ouais, on y va. Tu viens de voir la confiture apparaître. Alors ne perdons plus de temps. Et créons des objets de quête. 0 cas. Alors, comment allons-nous utiliser les objets et toutes les quêtes ? Et comment allons-nous réellement mettre en œuvre tout cela ? Voyons tout d'abord si nous avons quelque chose à commettre. Oui, on y va. On a besoin de ce qu'on a fait ? Nous avons ajouté la possibilité de vérifier les quêtes, cela, et voyons comment cela va fonctionner. Disons que Jimmy voyage partout. Il n'a aucune idée d'où se trouve un certain objet. Il passe par le même endroit une fois, deux fois, trois fois. Mais enfin, il prend une sorte de carte. Et quand il prend une carte, va au même endroit, il trouve un saut. Donc ce que nous allons faire, nous allons, ce que nous allons faire, c'est que nous allons créer un moyen, créer des objets comme la carte que lorsque nous les ramassons , par
exemple, certaines quêtes seront marquées comme complètes. Et quand cette quête est marquée comme terminée, alors la confiture, par exemple, apparaîtra. Ok, donc j'espère que ce n'était pas trop déroutant. Commençons. Donc, nous allons d'abord ouvrir Unity. Et dans notre scène, nous allons juste ajouter un saut quelque part ici. Alors je vais chercher des confitures. Oui, ce bijou rouge le fera. Et nous les rendrons privés en arrière-plan. Alors montez. Joueur. On y va. Donc nous allons l'augmenter jusqu'à trois. Et oui, on y va. On peut même le rendre un peu plus grand. Faisons cinq. C' est une confiture importante à trouver. Ok, donc cette confiture, comme dans les eaux, disons, ok. Je ne sais pas pourquoi c'est dans l'eau, c'est sous l'eau. Et puis nous allons aller de l'avant et créer un script ici, qui va être l'objet de la quête. Donc, dans les scripts, dans les quêtes, nous allons faire un clic droit créer un script C-Sharp va être l'objet de la quête. Attendez que ça soit compilé et on va changer ça pour la salle de gym rouge. Et nous allons y ajouter l'objet de coût. Et on va l'ouvrir et le script. Alors de quoi avons-nous besoin ? Et ici, nous avons besoin de trois variables. Tout d'abord, nous devons vérifier si l'objet est activé. Nous avons besoin d'une chaîne pour la quête que nous devons vérifier et d'un booléen pour nous assurer que nous voulons que cela apparaisse ou disparaisse lorsque nous ramassons quelque chose. Alors pourquoi devons-nous disparaître ? Disons, par exemple, une grotte est fermée. Lorsque, par exemple, nous sauverons en ville, nous voulons que cette grotte s'ouvre ou qu'un rocher disparaisse devant la grotte et que nous puissions y entrer. Nous allons donc créer un champ sérialisé. Ce sera un objet de jeu et l'objet à activer. Ensuite, nous allons créer un autre champ sérialisé. Et il va être de type string et ce sera la quête à vérifier ou à compléter. Je ne suis pas sûr que tu puisses l'appeler comme tu veux, ce qui te rend confortable pour toi. Et enfin, nous devons créer un champ sérialisé qui va l'activer et l'éteindre. Donc, activez si elle est terminée, enregistrez cela. Ok, maintenant nous allons créer une instance du gestionnaire de coûts. Nous allons donc créer un gestionnaire de quêtes statique public. Et nous allons créer une instance. Enregistrez cela, puis démarrez l'instance est égale à ceci. Ok, super. Maintenant, de retour dans notre objet de quête, nous allons créer une méthode pour vérifier l'achèvement. Nous supprimons simplement le début et la mise à jour pour l'instant. Nous allons donc créer un vide public, vérifier l'achèvement, et nous n'avons pas besoin de paramètres. Ce qu'on va faire ici, c'est qu'on va créer une condition. Et ici, nous allons accéder au gestionnaire de quêtes n'instance pas. Et on va vérifier si c'est terminé. Donc, la quête de vérifier, que nous avons déjà établi et ici la chaîne. Et nous allons obtenir l'objet que nous voulons activer. Et nous allons être actifs. Actif, F complet. Donc l'objet que nous voulons mettre actif, ce soit une porte de la grotte, la confiture ou autre chose. Ensuite, nous allons créer et mettre à jour une vague pour nous. Il s'avère donc que nous avons besoin d'une mise à jour et d'une mise à jour pour simplement créer une sorte de clé. Et si point d'entrée obtenir keydown, keycode. Et la confiture, la confiture est, j'espère qu'elle n'est pas utilisée et n'importe quel autre endroit, vérifiez la fin. Ok, alors que se passe-t-il maintenant quand on a touché la touche G ? Nous allons vérifier l'achèvement, vérifierons si la demande est terminée, puis l'objet sera défini sur actif. Revenons à Unity. Et ici, Voyons ce que nous avons. L' objet que nous voulons activer sera le régime. Maintenant, comme vous pouvez le voir, ce n'est pas le meilleur endroit pour mettre cet objet. Nous allons vérifier ou activé complet. Nous allons le définir sur un actif afin qu'il n'apparaisse plus et ne soit plus demandé. Nous devons vérifier, voyons dans Game Manager ce que nous avons. Saute toujours. Sûr pourquoi pas ? Alors vole la salle de gym. Assurez-vous que vous copiez et collé correctement. Maintenant, nous allons faire marcher notre logiciel de jeu, nous marchons, nous marchons. Et si on touche la touche G, rien ne se passe. C' est parce que si on regarde le manager de jeu, l'acier, la confiture ne marche pas. Donc, si on touche le Q, il s'allume. Et maintenant, si on frappe le G, non, ça ne marche toujours pas. Ok, Donc le problème est que la gemme rouge n'est même pas active, donc nous ne pouvons pas vraiment accéder à l'objet requête. C' est tout le but de ça. Donc c'est inactif. Nous devons le mettre à l'action. Donc on va faire quelque chose de différent. Nous allons ajouter un où il ira aux éléments ou non
les éléments que je voulais dire dans l'environnement sprites. Voyons voir, nous avons une carte ici, quelque part. Voilà, il y a une carte. On va éditer ici. Sur la carte ici, où est-il ? Lisser. C' est définir le calque de tri sur le joueur. Mettez à l'échelle jusqu'à deux. Nous allons ajouter un petit collisionneur de boîte autour d'elle et nous allons nous assurer que c'est un déclencheur. Et on va prendre la confiture rouge. Nous allons copier le composant, ira à la carte. Nous allons ajouter un composant qui va être l'objet de coût, basera le composant comme nous pouvons le coller comme num. Ok, donc nous allons juste supprimer ce composant. Voilà, tu y vas. Donc maintenant l'objet à activer est le bourrage rouge. Toujours le saut activer, complet. Et nous allons supprimer ça d'ici. On n'en a pas besoin. Sauve ça. Maintenant, si nous courons notre jeu, nous allons essayer d'activer le saut. Nous pouvons tester parce que dans le gestionnaire de jeu, l'élément n'est pas complet. Si nous avons terminé, là vous allez, l'élément apparaît. Maintenant, si on touche la touche G, on y va. Alors maintenant, nous avons la confiture apparaissant. Très gentil. Maintenant, il y a quelques ajustements ici que vous pouvez faire. Par exemple, vous pouvez activer un objet lorsque vous récupérez réellement la carte, par
exemple, vous la détruisez. Vous pouvez l'ajouter à votre stock. Lorsque vous l'avez dans votre inventaire, vous pouvez faire des choses avec, mais ce n'est que les bases de la façon dont
nos objets de quête vont fonctionner au fur et à mesure que nous avançons. J' espère que vous avez apprécié ce système d'objets de quête très simple, et je vous verrai dans le prochain.
76. Compléter des questions: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, comme vous pouvez le voir, nous avons un noeud caché gemme. Donc, quand nous lançons notre jeu, si vous vous souvenez, le bouton Q termine la quête de gemmes d'acier. Donc, quand on appuie sur le bouton Q, comme vous pouvez le voir, une gemme disparaît, l'autre apparaît. Donc, dans cette vidéo, nous allons être en mesure de compléter nos quêtes plus dynamiquement en utilisant le gestionnaire de quêtes. Alors ne perdons plus de temps. Et si vous aimez le cours, comme toujours, assurez-vous de laisser un avis. Ça m'aide vraiment et je sais ce que tu penses du cours. Donc, ne perdons plus encore et encore, et commençons. Oh, ok, donc maintenant nous avons besoin d'un moyen de vérifier l'achèvement automatiquement et dynamiquement. Nous ne voulons pas, chaque fois que nous voulons vérifier si quelque chose est complet pour frapper une certaine clé. Pour ce faire, nous devons accéder au gestionnaire de quêtes. Donc, dans le gestionnaire de requêtes, nous voulons parcourir tous les objets que nous
avons et vérifier l'achèvement chaque fois que nous marquons comme complets ou incomplets. Donc nous allons créer une nouvelle méthode ici va être un vide public. Donc les objets de demande de mise à jour vide public. Et cela fera en sorte que tous apparaissent ou disparaissent. Donc, parce que c'est si facile, je vais vous le donner comme un défi. Donc, trouvez tous les objets de type quest objets. Assurez-vous qu'il y a plus d'une boucle à travers chacun d'entre eux. Vérifiez si elles sont complètes ou non. Appelez-les dans les deux méthodes où nous marquons nos quêtes. Alors arrêtez la vidéo dès maintenant, lisez à nouveau le défi. Si vous n'avez pas obtenu ce que vous devriez faire et allez faire le défi. Oh, ok, bienvenue. Donc, ici, nous allons créer un tableau d'objets de requête de type. Et ça s'appellera les objets de quête. Et ce sera de beaux objets de type. Donc, des objets, pas des objets, des objets de type. Et ça va être de type, bien sûr, des objets de quête. Alors, comme nous l'avons dit, nous allons vérifier s'il y en a plus d'un. S' il n'y en a pas, alors nous n'avons pas besoin de le faire et d'éviter les erreurs. Donc les objets de quête ont une longueur supérieure à un, supérieure à 0, je veux dire. Et ici, nous allons les parcourir tous. Donc, pour chaque requête, objet, objet de requête, en gardant
simplement des objets simples et de quête. On y va. Ce que nous allons faire, c'est que nous allons accéder à l'objet de requête. Et on va vérifier la fin. C' est ça. On y va. Et enfin, qu'avons-nous besoin de faire ? Appelez-les et les deux méthodes où nous marquons nos coûts. Alors, où marquons-nous nos demandes ici ? Quelle était la méthode appelée coût de mise à jour ? Mettre à jour les objets de demande et mettre à jour les objets de coût Ok, avec ça fait, enfin, on a besoin de la Q2, Ok, donc à des marques aussi complètes qu'on décroche les BPF. Ok, génial, alors ouvrons. Nous allons dupliquer ce saut. On va le faire, oups. Où est le deuxième saut ? Mettons-le ici. Allons l'allumer. Et ce que nous allons faire est d'ajouter le, ok, donc nous avons supprimé, ajoutons l'objet quête à eux. Donc, dans le script et les quêtes, choisissons-les à nouveau. Objet Quest. L' objet en question est celui-ci. Et pour le second, c'est celui-là. Le, où est-il ? Où est le gérant de jeu ? Toujours gemme ? Colle-le ici. Et celui-ci activera le complet alors que celui-ci devrait désactiver ou donc il devrait désactiver une fois terminé. Donc nous allons sauver tout ça. Et quand nous appuyons sur le bouton Q, si vous vous souvenez, nous avons mis actif sur le saut fixe. Donc, quand on court, j'espère que cela maintenant, quand on atteint le Q, on y va. L' un d'eux s'est allumé et l'autre a été éteint. Alors, c'est cool ? Maintenant, nous avons un moyen d'accéder aux objets du jeu et toujours nous assurer qu'ils fonctionnent automatiquement sans que nous ayons à appuyer sur des touches supplémentaires après avoir terminé la demande. J' espère que ça vous plaira et je vous verrai dans la prochaine vidéo.
77. Activer des questions: Bienvenue, mes collègues développeurs de jeux. Comme vous vous en souvenez dans la vidéo précédente, nous avons rendu notre système de quêtes un peu plus dynamique. Maintenant, il est temps de passer au niveau suivant. Donc, quand nous lançons notre jeu, comme vous pouvez le voir, un Jam est très bien, nous pouvons le voir, l'autre est disparu quelque part. Où pourrait-il être ? Essayons de récupérer cette carte Wo, comme vous pouvez le voir, nous avons trouvé le deuxième bijou. C' est cool ? Donc, ne perdons plus de temps et commençons à automatiser notre système de quêtes un peu plus. Ok, alors maintenant que nous pouvons activer et désactiver ou activer et désactiver les objets de jeu basés sur des quêtes dynamiquement, il est temps d'activer une quête lorsque nous entrons dans un certain espace ou une certaine zone ou ainsi de suite. Ce qu'on va faire, c'est créer des questions. Donc nous allons aller de l'avant dans la carte que nous venons de créer ici, le collisionneur de boîte que nous avions. Et nous allons le supprimer. Nous allons déjà savoir ce que nous pouvons garder si nous voulons. Et nous allons supprimer l'objet de requête pour l'instant, supprimer le composant. Et on y va. Et nous ajouterons à côté de la zone de quête de carte. Donc, cette carte est une zone de quête et quand nous y entrons, il y a des choses qui vont se produire. Donc, créez un script C-Sharp, et nous allons appeler cela les quêtes ou attendre qu'il compile. Et nous allons l'ajouter à la carte. Et on va ouvrir la zone de repos. Alors, qu'est-ce qu'on fait ici ? Nous recherchons deux types d'activateurs de coûts. Le premier est que si le joueur marche simplement à travers le lieu de lutte, nous commençons immédiatement la quête. Donc, par exemple, disons que nous traversons une certaine zone et que les monstres apparaissent. Le deuxième type est que nous voulons parler à un certain MPC et obtenir la quête d'eux, puis nous commencerons la demande quand nous pourrons stocker. Ce sont donc les deux types de coûts qui se trouvent habituellement dans les gains. Donc nous aurons besoin de quelques variables ici. Donc, le champ sérialisé est de type chaîne et ce sera le coût à marquer qu'un autre champ sérialisé, qui va être de type bool et ce sera Mark comme complet. Ensuite, nous allons créer un autre champ sérialisé et cela
va vérifier si sa marque sur Entrée. Donc ça va être bool, Mark on et TR. Donc, disons que nous avons une quête où nous avons la marque sur Enter. Donc, quand nous entrons, une grotte, la demande est complète, et puis les pairs jama , par
exemple, c'est hors de ma tête. Et puis nous aurons un booléen privé. Et cela signifie que nous pouvons marquer parce que comme nous l'avons dit, c'est un Trigger Enter. Oups, juste donné le défi. Je veux dire, c'est un déclencheur. Donc, dans notre code ici, que ferons-nous ? Supprimons simplement le début et la mise à jour. Je le dis à chaque fois et à chaque fois qu'il s'avère que nous en avons besoin. Alors commençons. Tout d'abord, de quoi avons-nous besoin ? Nous devons créer une méthode qui marque la quête. Donc, c'est une quête de marque publique. Et ici, nous allons vérifier si la marque est complète. Ensuite, nous allons accéder au gestionnaire de quêtes. Nous allons accéder à l'instance. Nous allons accéder à la quête de marque comme complète, comme complète. Et puis on va lui donner le point d'interrogation. Et si ce n'est pas marqué comme complet, alors nous allons faire la même chose, mais au lieu de Mark comme complet, nous allons commercialiser comme incomplet. Donc, cela pourrait venir comme pas très utile. Pourquoi marquez-vous certaines quêtes comme incomplètes ? Mais plus tard, lorsque vous jouez au jeu, vous remarquerez que certaines quêtes doivent être vérifiées comme incomplètes. Donc, par exemple, disons, que pouvons-nous dire ? Par exemple, pour une raison quelconque, nous voulons quitter la zone, puis cela la marque comme incomplète. Nous voulons supprimer tout type de sauts qui sont là. Ou peut-être que si on prend la mauvaise épée ou quelque chose comme ça, je ne suis pas sûr, mais ça pourrait être utile. C' est bon d'avoir cela comme une sorte de débogage et votre jeu. La prochaine chose est de créer un entrepreneur entrer qui vérifie tout et je vais vous le montrer comme un défi. Votre défi est donc de marquer une quête. Donc, créez un entrepreneur. Entrez 2D, vérifiez la balise de joueur. Vérifiez si elles ne sont pas aussi marquées sur la fin. Donc, certaines zones doivent être marquées sur complètes, comme nous l'avons dit. D'autres. Ou marquer sur Enter Amin et d'autres sont marqués lorsque nous commençons le dialogue. Si c'est simplement la demande de marque devrait être tout simplement pas simple. Et si ce n'est pas le cas, ce n'est pas le cas. Maintenant, vérifiez que le booléen peut marquer, eh bien c'est mettre la vidéo en pause et aller faire le défi. Ok, bienvenue de retour. Donc, Trigger, Entrer 2D, faites défiler vers le bas et nous allons vérifier une fois de plus, je pense que nous avons fait cela sept fois maybe.com tag player. Et ici, nous allons vérifier si sa marque sur Entrée. Si c'est le cas, alors nous allons simplement marquer la quête, notre méthode et ici. Et si ce n'est pas le cas, alors nous allons juste
dire que peut marquer est égal à vrai. Sauvegardez ça. Et enfin une mise à jour que nous allons voir. Je vous ai dit que nous devons toujours créer des mises à jour. Comme je fais défiler vers le haut et voir que je retire à nouveau la mise à jour. Donc ici, nous allons juste utiliser la marque de boîte. Disons que c'est une sorte de levier qu'on doit pousser. L' amant ne peut être interactif que si nous sommes dans une certaine position et quand nous le déclenchons lorsque nous sommes dans la quasi-zone, cela signifie
que nous pouvons marquer. Et si nous pouvons marquer et appuyer sur le feu, alors le coût est complet et quelque chose autour de nous arrive. Donc si on peut marquer et entrer point être boutonné vers le bas, je veux utiliser le feu 151. Ensuite, nous allons pouvoir marquer égal à faux. Donc on ne déclenche pas le coût à nouveau ou une sorte de chose bizarre s'est produite. Et puis la marque Quest fonctionnera. On y va. Et il y a une autre chose que nous devrions considérer si nous voulons éteindre complètement la zone, ou dans le cas de notre carte, par exemple, détruire. Donc, quand nous avons la carte, nous avons dit que nous n'avons pas besoin de l'avoir dans notre inventaire. Vous pourriez avoir la nouvelle histoire urbaine, mais si vous voulez la détruire ? Donc, nous allons créer une variable ici qui va être un pool public et va être de désactiver sur le marquage. Donc, cela va activer la zone lors du marquage. Et dans la quête de marque, après que nous vérifions si nous marquons la quête complète ou remarquons la quête incomplète, l'objet du jeu. Les points sont actifs sera le contraire et y est le contraire de désactiver sur le marquage. Pourquoi est-ce le contraire ? Parce que si nous voulons désactiver le marquage, nous avons réglé sur true. Et si c'est réglé sur true, alors nous devons désactiver. Cela signifie que nous devons définir active sur false. C' est pourquoi cela est annulé avec un point d'exclamation. Sauvegardez ça dans notre jeu. Quel client voulons-nous ? On veut la confiture. Donc encore le JAM, copier que, coller sur la carte et marque complète de
Barker sur Entrée et le marquage activateur sauver cela, exécuter le jeu. Regardons nos gemmes apparaissent, voyons si elles disparaissent. Maintenant, nous marchons, marchons, marchons, et maintenant quand nous entrons sur la carte, cette chance devrait disparaître et celle-ci devrait apparaître. Donc j'espère, oui, on y va. La carte disparaît, le bourrage disparaît, le GM final n'apparaît pas pour une raison quelconque. Pourquoi c'est ça ? Oh, Kay, pourquoi n'est-il pas apparu ? Parce que oh, le problème est que la confiture est inactive, donc nous ne trouvons pas l'objet. Donc, pour contourner ce problème, ce que nous allons faire, c'est dans le bourrage rouge ou le premier camionnette clic droit, nous allons créer un objet de jeu vide. Ce sera l'objet de quête, supprimera de l'enfant, puis y ajoutera le saut rouge. Donc maintenant, l'objet de quête est sur la même position et nous allons le définir, va juste le garder. Donc maintenant, ce qui se passe est que nous allons copier ce composant, coller comme nouveau, et nous allons supprimer ce composant remove. Et c'est ce que nous devrions faire à tous nos objets de quête. Donc maintenant, quand nous regardons tous nos objets, nous trouverons cet objet de quête, puis nous allons allumer ou faire apparaître la confiture rouge. Et enfin, nous devons nous assurer que c'est la confiture rouge que nous voulons activer et ici. Donc, si nous gardons tout cela, si nous courons maintenant notre gain, le saut qui n'a pas été apparu devrait apparaître. Alors maintenant, nous sommes allés à la carte et nous y sommes allés. L' un disparaît, l'autre apparaît, et tout fonctionne parfaitement bien. J' espère que vous appréciez jusqu'à présent comment les quêtes fonctionnent. Nous construisons lentement à partir de zéro et faisons tout dynamiquement. La dernière pièce du puzzle est d'activer les quêtes lorsque nous terminons le dialogue avec certains MPC. Alors je te verrai là-bas.
78. Activer des questions après dialogue: Bienvenue à mes collègues développeurs de jeux pour une toute nouvelle vidéo. Et cette vidéo, quand nous lancerons notre jeu, vous remarquerez que nous avons un brouillage qui apparaît, un n'est pas là. Alors on va chez le guérisseur. Hé, guérisseur. On a parlé un peu. Voilà, tu y vas. Donc, quand on a fini la conversation, la salle de gym disparaît. Cette Gemma apparaît et nous avons activé un objet de quête après avoir fini de parler à un guérisseur. C' est cool ? Comme vous pouvez le voir, nous avons créé un très beau système de calcul des coûts dynamique. Alors ne perdons plus de temps. Et commençons. Oh, ok, alors il est temps de marquer une quête comme complète après avoir terminé le dialogue avec un certain personnage. Maintenant, vous pouvez ajouter une autre option où vous pouvez choisir d'accepter ou non les demandes. Je vous recommande d'essayer cela. Mais pour l'instant, restons aux bases où nous nous assurons juste d'avoir une Quête à la fin. Alors qu'est-ce qui va faire que je vous emmène juste à travers le plan très vite. Nous allons ajouter
au RequestHandler un moyen de vérifier qu'à la fin de la conversation nous activons une sorte de quête, puis sur le contrôleur de dialogue activera effectivement une certaine question. Ok, alors commençons. Tout d'abord, allons dans notre code et allons au contrôleur de dialogue. Où est le contrôleur de dialogue ? n'y a pas de contrôleur de dialogue que nous fermons quelque part. Donc, vous dialoguez Contrôleur. Et ouvrons le contrôleur de dialogue. Ok, on y va. Donc, quelques variables ici, et elles seront toutes privées parce que nous les
obtenons toutes du gestionnaire de dialogue, qui est sur l'un des MPC. Donc, disons que la quête de chaîne privée à marquer qu'un booléen privé, qui sera plus de la quête complète, Mark Complete et pourrait être fausse si nous voulons marquer la question incomplète, par exemple. Et puis un autre booléen qui est v devrait marquer l'ouest. Ok, donc maintenant nous devons trouver où nous avons fini le dialogue et commencer à vérifier et à marquer les quêtes. Nous terminons donc le dialogue après que toutes les phrases du dialogue ont été terminées. Ok, alors on éteint le collisionneur de boîte. Nous désactivons la boîte de dialogue est ouverte. C' est pour le joueur de recommencer à marcher. Et ici, nous allons vérifier si nous devrions marquer un coût. Donc, si nous devons marquer la requête, alors les demandes de marque courte devraient être définies à nouveau sur false. Tout comme on l'a fait auparavant. On arrête la marque de boîte. Nous ne voulons pas que ça continue. Ensuite, nous vérifions si nous voulons marquer la quête complète, nous allons accéder à l'instance de point de gestionnaire de jeu, marque de
point comme complète. Et nous arrivons, bien sûr, à lui donner l'instance de point 0 du gestionnaire de jeu. On doit aller voir le responsable des coûts. J' ai pensé qu'avoir beaucoup de gestionnaires peut vraiment être déroutant. Donc, instance dot, get ou marque quête comme terminée. Et ce sera le coût pour Mark. Et sinon. Évidemment, nous aurions pu le faire sans les crochets, mais pas de soucis. Copions ça. Mark. Incomplet. Sauvegardez ça. Ok, super. Alors maintenant ce que nous faisons, nous vérifions si nous devons marquer une quête. Si on le fait, on le décoche. On ne veut pas revivre ça. Si la marque est complète, nous vérifions le point d'interrogation. Sinon, nous le vérifions comme incomplet. Ok, super. Maintenant, nous aurons besoin d'une méthode qui s'active à la fin. Donc nous allons créer ce qui compte, qui active la Quête à la fin. Et ça va faire partie de votre défi. Votre défi est d'activer la Quête à la fin, je pensais avoir déjà dit cette phrase trois fois. Créez une méthode, activez Quest à la fin qui prend deux arguments, un nom de quête de chaîne et une marque booléenne Complete et définissez les variables que nous avons créées. Alors, que fera cette méthode ? Eh bien, parce que comme nous l'
avons dit, nous allons appeler,
nous allons, nous allons laisser les quêtes à compléter
au PNJ réel que nous ne voulons pas traiter dans le contrôleur de dialogue. Nous voulons le faire dans le gestionnaire de dialogue. Cela nous permettra donc de parler au gestionnaire
de dialogue et de définir toutes les variables qui sont privées. Donc, avec cela expliqué, avec le défi devant vous, mettez la vidéo en pause dès maintenant et allez faire le défi. Ok, bienvenue de retour. Donc, ici, ajoutons. Méthode juste sous la mise à jour. Et ici, nous allons créer un vide public. Activez Quête à la fin. Et ça va prendre deux arguments. On a dit qu'il allait prendre Quiz Name et Mark Boolean Complete. Donc le nom de la quête et la marque booléenne complète. Et ici, ce que nous allons faire est le point d'interrogation sera le nom d'hôte. Donc, il était Tamar est égal au nom d'hôte. La marque était complète, est égale à la marque complète. Donc, si celui-ci est faux, le plus complet sera faux. Ok, donc on utilise le même, marquez la demande comme complète. Copions ça. Le nommage des variables est donc très important. Et enfin, cela devrait marquer quête devrait être réglé sur vrai. Parce que si nous avons envoyé quelque chose à la quête active à, et puis bien sûr la quête devrait être vraie. Ok, super. Maintenant, nous devons aller au gestionnaire de dialogue et faire presque la même chose. Alors que le gestionnaire de dialogue, voilà, c'est le maître-chien. Nous allons donc créer trois champs sérialisés parce qu'ils
dépendront de ce que nous choisissons pour ce personnage à Sam pendant la conversation. Donc booléen devrait activer quête et autre champ sérialisé parce que ce sera une chaîne, qui va être la quête de Mark. Et enfin, champ sérialisé avec la marque booléenne comme complète. Complet. On y va. Et on va se mettre à jour quand on passera les phrases. Nous allons également vérifier si nous voulons réellement activer la quête. Donc, si nous devons activer une quête, alors nous allons accéder au contrôleur de dialogue. Où est-il OK, Darla instance de point de contrôleur, point, activer. Et il prend deux variables ou deux arguments, les paramètres même vous pouvez les appeler de sorte que le nom d'hôte et la marque booléenne comme complète. Donc, le nom d'hôte est le point d'interrogation, et aussi la marque comme complète. Sauvegardez ça dans notre jeu. Alors que Sarah, tu as oublié Sarah. Mais encore une fois, elle a toujours du travail à faire. Encore une fois. Alors, où est le gestionnaire de dialogue ? On peut changer les phrases,
mais, gardons-les comme elles sont en ce moment. Alors rendons ça un peu plus grand. Donc devrait activer une quête. Oui, tu devrais. Doit marquer comme complet. Oui, elle devrait. Nous, alors que le gestionnaire encore les gemmes. Passe-le à Sarah. Sarah, Sarah. D'accord. Donc le point d'interrogation est l'acier, la confiture. On va sauver ça, on va lancer le jeu. Espérons que ça marche. Allons voir Sarah. Salut Sarah, je suis une guérisseuse qu'Ananda Taylor. On y va. Donc, comme vous pouvez le voir, je ne l'ai pas remarqué, mais ça a fonctionné parce que cette gemme a disparu. Ce bijou apparaît et c'est juste parce que nous avons fini la conversation avec notre guérisseur. Nous avons donc terminé tout le système d'établissement des coûts. Nous avons créé une très belle dynamique qui s'allume et s'éteint après les conversations et après avoir récupéré des objets. Donc, seule votre imagination est la limite ici. Vous pouvez l'utiliser pour la chanson, tant de choses. J' espère que vous apprécierez ce cours. Je ne vais pas te le rappeler parce que je l'ai fait il y a quelques vidéos. Donc, vous savez quoi faire une revue de la littérature. J' aimerais connaître votre opinion et je vous verrai dans la prochaine.
79. Section 11 : PlayerPrefs: Bienvenue à mes collègues développeurs de jeux une toute nouvelle vidéo où nous faisons quelque chose de très dramatique. En fait, nous avons presque détruit la carte entière avec nos nouvelles capacités incroyables. Et si on avait la course aux glaces pour ça ? Oui, ça a été sauvé. Je sais que c'est un peu décevant, mais ne perdons plus de temps, et commençons. Donc maintenant, nous pouvons faire beaucoup, beaucoup, beaucoup,
beaucoup de choses dans notre nouveau RPG. Donc maintenant, nous pouvons faire beaucoup, beaucoup, beaucoup, Mais comme vous le savez, chaque RPG a un chargement et une économie. Alors, quel est l'intérêt de construire votre personnage si vous ne pouvez même pas enregistrer tous les progrès que vous avez eus avec ce personnage. Donc sauver et charger est une partie très, très essentielle d'un jeu de RPG, et nous allons le faire exactement. Donc, la première chose que nous devons faire est comprendre comment l'enregistrement et le chargement fonctionnent dans l'unité, et c'est à travers la préférence des joueurs. Alors expliquons quelle est la préférence du joueur. Permettez-moi de mettre mon laser et ce qui est Player pour référence ou prefs de joueur. Il nous permet de stocker certaines données comme des chaînes, des entiers et des flottants. Ce sont donc les trois seuls types que nous pouvons stocker dans les préfs des joueurs. Maintenant vous demandez peut-être,
Michael, comment allons-nous pouvoir stocker,
disons par exemple, des objets ou des marqueurs de quête, Booléens. Comment allons-nous le faire si nous ne sommes limités qu'à des chaînes, des entiers et des flottants. Ne vous inquiétez pas pour cette jeune
sauterelle, parce que nous allons trouver des moyens très créatifs de résoudre ce genre de problème. Ces données sont accessibles entre les sessions de jeu. Les données sont identifiées par une clé de chaîne. Et je vais vous donner quelques exemples juste pour vous envelopper la tête autour de ça et ça n'est pas très effrayant. Donc, nous avons juste défini un entier, nous lui donnons une clé, tout comme nous l'avons dit ici, il est identifié par une clé de type chaîne. Et puis nous définissons la valeur d'un entier parce que nous avons règlement. Et puis comment charger ce joueur préfs ? Eh bien, nous utilisons le get et en utilisant la même clé de chaîne que nous avons ajoutée pour ce NFO ici. Alors commençons à implémenter tout cela et cela semblera beaucoup plus facile et beaucoup moins effrayant. Donc nous allons ouvrir Visual Studio et nous allons voir le manager. Alors ouvrons Visual Studio. Allons aux légendes de la conquête 2D. Et d'accord, super. Nous allons voir le gestionnaire de quêtes parce que
la première chose que nous voulons sauver nos quêtes. Alors, comment allons-nous sauver les quêtes des joueurs ? Eh bien, d'abord, nous devons créer une clé, et cette clé sera le nom des coûts que nous voulons aborder. Et puis la valeur sera un entier ou une fin qui représentera soit un faux. Cela signifie que nous n'avons pas terminé la quête, ou une vraie, ce qui signifie que nous avons terminé la quête, mais comment allons-nous représenter ce faux et vrai ? Allons plonger profondément et voir comment ça se passe. Donc d'abord, nous allons créer une méthode ici. Et ça va être un vide public. Enregistrer les données de quête ou ça, je ne suis pas sûr de ce que vous voulez appeler ça. Donc, enregistrez les données de demande. Qu' est-ce qu'on va faire ici ? Nous allons passer par toutes nos quêtes. Vérifie. Donc, nous allons tout d'abord créer une boucle allant de I égal à 0 alors que je suis inférieur à v. Qu'est-ce que ça s'appelait ? Les noms, je crois que les noms de quêtes longueur de points. Ce sont tous nos coûts que nous avons. Et nous allons augmenter d'un bien sûr. Et ici, nous allons vérifier si les marqueurs de quête sont terminés à la position i. Ensuite, nous allons faire appel aux préfs du joueur. Et si vous n'êtes pas sûr de savoir comment utiliser les prefs des joueurs, je vous recommande d'aller aux chiens de l'unité. C' est une excellente ressource. Je vous ai montré plusieurs fois et je ne pense pas y aller à nouveau, ils sont juste pour les préfs des joueurs. Je vous recommande de toujours faire vos propres recherches et de ne pas me faire confiance, peut-être que je mens. Qui sait ? Donc, nous allons définir un entier. Et dans l'année, nous allons tout d'abord créer une chaîne, une clé, puis une valeur. Alors, qu'est-ce que la clé de chaîne ici ? Ça va être le soulignement du marqueur de quête. Et puis nous allons le concaténer avec les noms des quêtes. A la position I. Et quelle est la valeur là-bas ? Eh bien, ça va être représenté comme vrai. Ça veut dire que nous allons le mettre en un seul. Et puis plus tard, lorsque nous chargeons des données, nous l'utiliserons afin de les définir sur true ou false. Laissez-moi vous expliquer à nouveau ce qu'on a fait ici. Donc, nous parcourons toutes nos quêtes. Nous vérifions si cette quête est terminée. Si c'est le cas, alors nous faisons appel aux préfs du joueur. Nous lui disons que nous voulons définir un entier. Et puis nous avons cette clé ici. Donc, pour représenter les marqueurs de quête, ou vous pouvez dire définir comme noms de quête. Mais parce que nous fixons les marqueurs de quête. Donc, le marqueur de quête, et nous voulons être en mesure de l'identifier individuellement pour chaque quête. Pour ce faire, nous ajoutons un peu d'individualité en concaténant le soulignement du marqueur de requête avec le nom de la quête. Vous aurez donc une table où vous aurez le soulignement du marqueur de quête. Disons par exemple, tuer le démon, savoir qu'on est à Lehman, tuer le dragon. Donc marqueur de quête soulignement tué le dragon a un entier de valeur de un. Et puis nous traduirons cela et créerons les Booléens, ce
soit vrai ou faux. Maintenant que nous avons défini les vrais marqueurs de quête, il est temps de définir les faux, ceux que nous n'avons pas terminés. Et ça va faire partie de votre défi. Votre défi consiste à définir le marqueur de quête utilisé pour définir les quêtes incomplètes. Gardez la clé de chaîne la même et seule la valeur de l'int devrait changer. Donc nous avons déjà, je pense que tout couvert. Gardez la même clé parce que nous travaillons, Appelons la même dimension où nous
sauvegardons la quête afin que vous n'ayez pas besoin de changer la clé, seulement en changeant la valeur. Alors mettez la vidéo en pause maintenant, et pour la définir comme faux égal à 0, c'est un indice, je ne pense pas que je la lise. Mettez la vidéo en pause
et allez faire le défi. Bienvenue de retour. Donc ici, nous allons dire que sinon, si ce n'est pas complet, alors nous allons copier cette ligne. On va le coller ici. Nous garderons le même nom de la quête marqueur de quête, mais au lieu d'un, parce que c'est incomplet, ça va être 0. Et nous verrons plus tard et plus en profondeur, comment traduira ce 10, un vrai et faux. Et enfin, nous avons besoin d'une clé pour mettre en œuvre cela. Donc on va monter et se mettre à jour. Et nous utilisons déjà la file d'attente. Donc, si l'entrée obtient la clé vers le bas, keycode dot et nous allons utiliser un bouton que nous n'avons pas encore utilisé. Je pense que je, donc je, et si nous cliquons sur le je vais déboguer le journal de points. Et nous dirons ici que ce qui a été sauvé. C' est juste à des fins de débogage. Et puis nous allons enregistrer les données de quête. Et quel est le pro ? Alors prends le bouton, le nom, descend la clé. C' est ça. D'accord avec toi. Oui, on y va. Donc, économisez les données de coût, les données de
débogage ont été enregistrées. Revenons dans Unity et il devrait être compilé dès maintenant. Donc, nous allons courir notre gain. On va frapper la clé I, et voilà. Les données ont été enregistrées. Maintenant, c'était décevant et rien de trop évident ne s'est passé. Mais dans la vidéo suivante, nous verrons comment tout cela fonctionne lorsque nous commençons à charger les données. J' espère que vous avez apprécié la vidéo et je vous verrai dans la prochaine.
80. Charger des données: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, quand nous exécutons le code, nous avons en fait quelque chose de dramatique. Si vous regardez les points de quête ici, nous en avons terminé quelques. Nous voulons donc charger nos données. Nous ne voulons pas passer en revue toutes ces quêtes et les refaire. Donc, nous allons juste charger les données. Et vous pouvez voir ici que les données ont été chargées et que ces quêtes sont terminées. Donc, ne perdons plus de temps et commençons à charger nos données. O k. Alors le temps commence à charger. Il y a un petit problème quand il s'agit de charger des données. Le problème, c'est ce qui se passe si nous avons déjà sauvé toutes nos quêtes, ok, donc nous avons la grève de la quête maintenant, nous les sauvons tous. Mais alors pendant le gameplay, nous ajoutons une autre quête. Donc, quand nous allons le charger et chercher IT,
Ops, il n'y en a pas et nous ne pouvons pas le trouver. Et cela nous donnera une erreur et nous nous demanderons,
eh bien, ce qui s'est passé. Donc, nous devons éviter cela en premier lieu, en vérifiant s'il y a effectivement des préférences de joueur définies en utilisant cette certaine clé. Alors même si je t'ai dit que je n'irais pas dans Unity Dogs, apparemment je le suis. J' ai donc ouvert les stocks du joueur et la documentation de l'unité. Et ici, vous pouvez lire tout sur, vous pouvez même voir où cela a été enregistré et vous pouvez aller vérifier cela, voir comment les données sont stockées et ainsi de suite. Donc, si nous faisons défiler ici, nous pouvons voir que nous avons plusieurs méthodes statiques. Et l'un d'eux, vous pouvez voir que nous avons le get ND, obtenir, flotter le coffre-fort, le coffre-fort défectueux, sauver, et, et ainsi de suite. Et puis nous avons quelque chose qui s'appelle les Husky. Et cela renvoie true si la clé donnée existe et que le joueur prefs retourne false sinon. Donc, cela nous permet, avant de nous plonger dans l'obtention de quelque chose, cela nous permet de vérifier s'il y a quelque chose là-dedans de toute façon. Donc nous allons utiliser celui-ci que nous chargeons comme mécanisme de défense contre les erreurs. Commençons. Donc, nous allons ouvrir notre gestionnaire de quêtes et nous allons créer une méthode qui va être les données de demande de chargement, les données chargement vide
public. Ok, donc nous allons créer une boucle comme nous l'avons fait dans les données de réduction des coûts. Je vais juste copier cette ligne parce que c'est exactement la même chose. Oui, on va le coller ici. On y va. Et retirons juste un de ceux-ci. Quel est le problème ? Y a-t-il un problème ? Donc apparemment, quand nous collons juste ça, donc nous allons le garder car cela va fermer les crochets ici. Vous devez garder le nombre des parenthèses. Alors, qu'est-ce qu'on fait ici ? Après avoir parcouru tous nos noms ? Nous allons créer un entier qui va représenter la valeur 2 SAT. Et ça va être égal à 0 parce que nous devons lui
donner une sorte de valeur quatre, nous continuons une. Et cette ligne verte squigggly signifie un avertissement. Donc, la valeur définie comme assignée mais n'est jamais utilisée. Et parce que les variables prennent un peu d'espace de mémoire dans votre ordinateur. Visual Studio vous rappelle donc toujours que vous avez une variable inutilisée. Vous pouvez supprimer pour économiser de l'espace. Quoi qu'il en soit, c'était un site. Maintenant, ici, nous allons utiliser les préfs du joueur. On va utiliser le Husky. Et nous allons utiliser la clé que nous avons ajoutée ici. Donc, nous allons juste copier cette ligne. Donc, comme je l'ai dit, tout d'
abord, nous avons la clé. Ensuite, nous avons supprimé ceci ici, et celui-ci aussi. On y va. Donc ça va vérifier pour un roi. Et comme je l'ai dit, ce sont les clés de nos quêtes, représentées par un marqueur de quête mot soulignement
puis concaténées avec le nom de la quête réelle à la position I. Donc, nous vérifions, avons-nous une clé qui a la quête de nom marqueur soulignement était le nom de la quête à la position I. Si nous le faisons, alors la valeur à définir sera égale aux préfs du joueur, désolé pour ce joueur prefs dot get ENT. Et comment obtenons-nous un entier ? On utilise le marqueur sur la partition et le nom. Alors on y va. C' est tout ce qu'il nous faut faire. Il suffit de lui donner ce marché de quêtes. Ok, super. Laisse-moi revenir une fois de plus. Ce que nous faisons ici, nous parcourons tous nos noms. Nous venons de créer une variable ici pour conserver la valeur à définir. Nous avons accédé aux préfs du joueur et cherché le Husky et vérifié si nous avons une clé qui contient le nom de la quête. Ensuite, nous définissons la valeur en utilisant les prefs de joueur dot get k0, puis utilisé cette chaîne ici, ce que nous pouvons en fait, laissez-moi vous montrer l'une des nombreuses utilisations des variables. Donc, comme vous pouvez le voir, nous utilisons ce marqueur plus nom d'hôte à la position i 2 fois. Donc, une meilleure façon de le faire comme écrire une clé de chaîne à utiliser, et cela va être égal à cela ici. Donc on a eu ça, collez-les ici. Et la façon dont nous coupons est en utilisant Control X. Et ici, nous pouvons simplement utiliser la clé à utiliser. Et ici aussi la clé à utiliser. On y va. Et cela devrait fonctionner correctement parce que la clé à utiliser est à cette position et assurez-vous qu'elle est à l'intérieur de la boucle. Donc, il est toujours mis à jour. Ok, super. Maintenant que nous avons défini la valeur, donc quand nous obtenons l'entier à la clé à utiliser, ce
qui est ici, nous
vérifions, nous obtenons soit un ou un 0 sur, basé sur cela, nous allons définir les marqueurs comme complets ou incomplet, ou le complet comme vrai ou faux, tout comme nous l'utilisons ici. Montre-toi ici. Donc, des marqueurs de quête, complets ou incomplets, et cela fera partie de votre défi. Donc, votre défi est d'envoyer les marqueurs de requête complets. Donc, en fonction de la valeur que nous avons obtenue, définissez le booléen des marqueurs de quête. Et juste un petit rappel, 0 est faux, un est vrai. Mettez la vidéo en pause dès maintenant, passez au défi. Reviens. Donc, après avoir défini la valeur ici, nous allons aller de l'avant et créer une condition if. Et si la valeur définie est égale à 0 signifie que nous avons un faux et nous pouvons simplement supprimer ces crochets. Nous n'avons pas besoin d'eux parce que nous n'avons qu'une seule ligne parce que nous accédons au marché des quêtes est complet à la position I et nous lui disons que c'est égal à faux. Et si ce n'est pas le cas d'autre. Et vous pouvez, si vous voulez être plus spécifique, vous pouvez utiliser else-if valeur set est égal à un, juste au cas où nous avons quelque chose de différent de 1 ou 0 par erreur, mais je crois que vous pouvez le garder comme il est. Donc, les molécules de quête complètes à la position I sont égales à vraies. Sauvons ça. Quel est le problème de la ligne squiggly ? Non, pas de problèmes. Sauvegardez ce retour et la mise à jour utilisera une sorte de clé. Donc nous allons dupliquer cette ligne. Nous allons utiliser au lieu de je vais utiliser le 0. Donc, i, o et les données ont été chargées. Et au lieu des données sauvegardées, nous allons charger,
charger des données de demande, sauvegarder ces données dans notre unité. Maintenant, quand nous lançons le jeu à ouvre, nous bougeons autour. Voyons quel genre de dans le gestionnaire de jeu, nous allons définir tous ces à vrai. Nous allons frapper le icky, donc les données ont été sauvegardées. Maintenant, si on les éteint tous, on touche la touche O. Très allez-y. C'est cool ? Nous stockons les données, puis les avons chargées. C' est cool ? Et même pas ça, nous avons quelque chose de bien plus cool si nous courons le jeu à nouveau. Si nous regardons ici dans le gestionnaire de quêtes, si nous touchons la touche O, comment non, sérieusement, prenez un moment pour penser à quel point c'est cool que nous ayons réellement enregistré des données. Et vous voyez clairement qu'on n'a pas fait de manipulations. C' est simplement bêta qui a été enregistré en utilisant des entiers. Et pas seulement cela, nous avons converti des entiers en booléens par seulement quelques lignes de code. Donc, avec cela fait, allons de l'avant et tout mettre en scène. Nous allons nommer ces graphiques de couches utilisés pour charger des données. Charger les données pour être spécifiques, nous allons le valider. Et regardons les maîtres. Whoa, whoa, regarde ce qu'on a déjà fait. Nous avons fini de créer le magasin. Nous avons jeté les bases du système de quêtes. Ajout de la capacité créée objets de quête affectés aux objets de quête. Je veux dire, regarde combien on a déjà fait et on a encore beaucoup à faire. J' espère que vous apprécierez. J' espère que vous vous amusez et j'espère que vous êtes excité comme moi, juste pour charger une certaine probabilité utilise des données. Je te vois dans la prochaine vidéo.
81. Set et obtenez des flotat: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, quand on lance le jeu, quand on touche la touche O, oui, on y va. Nous sommes transportés à la position que nous avons sauvegardée dans nos préfs de joueurs. Alors ne perdons plus de temps, et commençons. Ok, donc maintenant nous sauvegardons les données des quêtes. La prochaine chose que nous devons être en mesure d'enregistrer comme la position du joueur, comme vous le savez, lorsque vous marchez dans votre jeu, Position enregistrée et donc votre scène examinera les scènes de sauvegarde plus tard, ou vous ne pouvez tout simplement pas le faire par vous-même. C' est très facile. Vous venez de définir une chaîne. Mais concentrons-nous sur le réglage des flotteurs et les charger dès maintenant, et surtout quand il s'agit de la position. Donc, si nous regardons ici et le, et n'importe quel objet, nous pouvons choisir le joueur parce que nous nous concentrons sur le joueur. Vous pouvez voir qu'il a une position sur les x, y et z. et tous ces éléments doivent être sauvegardés afin de charger la position correctement. Alors faisons ça. Mais d'abord, nous devons trouver où voulons-nous réellement enregistrer ces données ? Et je crois, et c'est en fait le meilleur endroit pour enregistrer des données, comme la position est dans le gestionnaire de jeu. Double-cliquez sur Game Manager, ouvrez-le et voyez ce que nous pouvons faire ici. Nous allons donc créer une méthode appelée save data. Donc ici, sous la rubrique « player stat », nous allons créer un vide public, Save. Et nous allons enregistrer les données pour chaque poste. Donc, nous allons appeler le joueur prefs dot set float. Et pourquoi utilisons-nous set float not end ? Eh bien, évidemment parce que si nous regardons en arrière dans Unity et ici vous pouvez voir que la position du joueur était 1.91.3. Donc, nous devons mettre le flotteur. Et nous allons mettre le flotteur et nous allons lui donner une clé unique. Donc, ce sera le soulignement du joueur, pause pour la position et les actes. Donc, on économise tout d'abord, le X. et comment devrait-on appeler ça ? Je veux dire, quelle est la valeur qu'on veut lui envoyer ? Eh bien, je vais vous donner ce mini défi pour essayer d'y penser. On aura besoin d'accéder au joueur. Vous aurez besoin d'accéder à l'instance, aurez besoin d'accéder à la transformation sur ce lecteur. Donc la transformation sur cette couche. Enfin, nous avons besoin de la hache sur cette position. Nous accédons donc au script du joueur, à l'instance, la transformation de l'objet du jeu, la position sur la transformation et au x sur la position. Ok, super, donc maintenant nous avons réglé le flotteur pour la position x du joueur, et maintenant nous devons vous lancer un défi. Alors, voyez celui-là venir. Donc, nous allons finir de définir la position y et z. et rappelez-vous que chaque axe devrait avoir une clé unique pour lui. Nous allons créer une méthode pour charger les données. Pourquoi est-ce que je dis que lorsque vous allez créer une méthode pour charger les données, vous obtiendrez le flotteur, obtiendrez de la position du joueur, et les charger dans le vecteur 3. Et je vais juste vous donner un indice de la façon dont vous chargez dans le vecteur 3. Si tu ne veux pas le voir, tu le fais tout seul. Mettez la vidéo en pause maintenant, passez au défi. Si ce n'est pas dit la transformation du joueur égale au nouveau vecteur 3, x, y, et z, ou cela. Mettez la vidéo en pause et allez faire le Shalon O K en arrière. Donc nous avons dupliqué cette ligne en utilisant Control D. J'ai déjà expliqué ceci. Pas de soucis. Les raccourcis clavier peuvent prendre du temps pour comprendre pourquoi. Et voilà. Donc maintenant, nous sauvegardons la position du joueur à x, y et z ont chacun une clé unique, tout comme je vous l'ai dit ici, chaque axe a une clé unique, x, y et z. Maintenant, créons les données de chargement. Donc, un vide public de données de charge. Et ici, nous allons accéder au joueur. La position du point de l'instance du joueur, la transformation du
point de l'instance du point. Désolé. Donc, tout d'abord, nous accédons à la position de point de transformation et cela sera égal à un nouveau vecteur 3. Et on ouvrira les crochets. Donc ici, nous devons accéder aux préfs du joueur et obtenir le flotteur. Et parce que ces lignes vont être très longues, nous allons frapper un Entrée ici,
appuyer à nouveau sur Entrée, et nous allons commencer à ajouter tout ici. Tout d'abord, les statistiques des joueurs, je veux dire les préfs des joueurs, point, get, float. Nous devons lui fournir la clé correcte. Qu' est-ce que c'est ? Ce qui s'est passé, désolé pour ça. Nous devons donc ajouter une virgule, et ici nous aurons besoin d'ajouter la clé. Et quelle est la clé ? C'est la position du joueur X. On va la coller ici. Ensuite, nous dupliquerons cette ligne à nouveau, la dupliquerons à nouveau, et nous assurerons d'invalider le terme. Nous devons supprimer la dernière virgule. Donc y, z, et c'est tout entre les deux. À faire. Donc nous allons sauver tout ça. Nous allons aller dans la mise à jour et créer une clé pour enregistrer et charger, ou deux clés pour enregistrer tout ce déchargement. Donc, et la mise à jour. Et ici, nous allons aller de l'avant et vérifier si l'entrée et cette entrée à nouveau. Descendez la clé. Je suis tellement excité de pouvoir appuyer sur les bons boutons. Donc keycode utilisera le I parce que nous faisions déjà cela. Et le gestionnaire de quêtes et vous savez quoi ? Parce que nous le faisons déjà et le gestionnaire des coûts, laissez-moi simplement copier ces deux lignes. Basez-les ici. Et je ne recommande pas le vrai code moyen copier-coller. Et nous allons charger les données. Donc, chargez les données de sécurité des données en
utilisant R, en utilisant tout enregistrer tout cela dans Unity que C n'a pas besoin de compiler. Encore une fois, nous allons marcher jusqu'aux eaux ici. Alors on y va. On va frapper la clé I. Les données ont été sauvegardées, revenir en arrière, date, date à droite, date. Ok, donc de toute façon maintenant on veut charger les données. On a touché la touche O. Oui, on y va. C' est cool ? Notre joueur est automatiquement transformé de l'autre côté de la page de la, de la salle de carte
de tuiles, peu importe ce que vous voulez appeler, juste en utilisant des touches. J' espère que vous apprécierez, j'espère que vous engagez tous vos changements. Certains d'entre vous auraient regardé ça. Oh, mon Dieu, j'ai oublié de le faire. Je ne me suis pas engagé pour sept vidéos d'affilée, mais c'est un bon endroit pour commencer. Donc, je vous vois dans la prochaine vidéo où nous allons enregistrer nos statistiques de joueur.
82. Enregistrement et chargement des statistiques du joueur: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, lorsque nous lançons notre jeu, remarquez deux choses. Les statistiques ici pour tout et le guérisseur ici, ou vous pouvez garder une trace sur la hiérarchie. Quand nous avions le boisé, nous ne sommes pas seulement le transporté à un endroit différent, mais nous avons aussi les statistiques que nous avons cette argent actes ont commencé la défense, le HP actuel, l'XP actuel a changé et le guérisseur a disparu. Elle n'est plus active. Alors ne perdons plus de temps. Et commençons par enregistrer et charger les statistiques des joueurs. Le joueur final peut-être. Oh, j'ai vendu du temps pour sauver des préfs de joueurs. Comment allons-nous faire ? Le premier élément de données que nous voulons sauvegarder ? Bien sûr sera sauver tout est sauvé. Méthode de données est le, si le joueur ou un personnage avec les statistiques de joueur est effectivement actif et la hiérarchie. Donc, nous allons créer une boucle for. Et je suis égal à 0, je passe par les statistiques du joueur longueur point. Et nous allons aussi l'augmenter d'un à chaque fois et les statistiques des joueurs sont ici. Alors, voilà. Nous avons un éventail de statistiques de joueurs déjà disponibles, donc nous n'avons pas besoin d'y accéder réellement. Dans tous les cas, nous allons vérifier si les statistiques
du joueur à la position i point GameObject point actif dans la hiérarchie. Si c'est le cas, alors nous allons accéder aux préfs du joueur. Nous allons définir l'entier. Et quelle sorte de clé avons-nous besoin pour lui donner ? Bien que parce qu'ils ont des statistiques de joueur, cela signifie
qu'ils sont un trait de soulignement de joueur, nous allons le concaténer avec le nom du joueur. Donc ça va être, désolé d'avoir ajouté ça. Ça va être les statistiques du joueur à la position I. C'est le nom du joueur. On y va. Donc avec le nom du joueur. Et nous allons ajouter enfin, soulignement actif. Donc, cela va différencier le joueur en, tout d'abord, en utilisant obtenir le joueur à la fin ou au milieu le nom du joueur. Et enfin, nous le définissons comme si c'était actif ou non. Donc ici, si elle est active dans la hiérarchie, alors c'est un. Sauvegardez ça. Et vous savez quoi faire et ici. Donc si tu veux, tu pourras continuer sans moi. On y va. Sauvegardez ça. Ok, super. Maintenant, les prochaines choses que nous voulons faire ici est sauvé divers préfs de joueurs que nous avons. Donc, par exemple, nous voulons économiser, disons le niveau. Donc, le joueur préfs dot set nth parce que Lovell sont des entiers. Et nous allons aller de l'avant et utiliser le joueur et le nom. Colle-le ici. Et puis nous allons concaténer avec lui quelque chose différent que nous voulons représenter les niveaux. Donc c'est le niveau et ça va être les statistiques
du joueur à la position que je pointe à gauche. Donc le niveau du joueur. Super. Encore une fois, nous allons dupliquer ça. C' est le joueur par son nom, et au lieu du niveau, nous avons l'EXP actuel. Donc, nous allons sauver le faisceau X actuel. Et laissez-moi, laissez-moi juste faire cette expérience actuelle capitalisée. Et vous savez déjà quelles sont les statistiques des joueurs. On va tous les sauver. Donc, je vais utiliser la magie de l'édition pour nous emmener à l'endroit où j'ai terminé tout ce travail. Alors je te verrai dans un peu. Bon, bon retour. J' espère que vous avez fait ce mini défi. Comme vous pouvez le voir, j'ai défini tous les entiers et aussi les chaînes que vous avez pu arriver à ce point et faire face à ce défi vous-même. Donc, comme vous pouvez le voir, nous avons tout dans Max, HP actuel, HP maxima façon actuelle, défense
dextérité, nom d'arme, nom d' armure et puissance d'arme, défense d'armure. Et j'ai sauvé la puissance de l'arme et la défense de l'armure. Même faible. Cela devrait être évident à partir de l'arme que nous avons équipée. Mais parce qu'à un moment donné vous voulez ajouter, disons des power-ups à votre arme ou peut-être, je ne sais pas, aller la forger quelque part, augmenter la puissance des armes, la défense de l'armistice. Ensuite, vous pouvez également enregistrer ici. Ok, super. Maintenant, il est temps de charger toutes ces données. Et encore une fois, nous allons avoir une longue liste. Donc ce que je vais faire, c'est que je vais juste faire les premières lignes et ensuite je vais te donner l'occasion de finir par toi-même. Donc, tout d'abord, nous devons créer une boucle. Donc, nous allons prendre ceci ici, voler dans le coffre, le coller dans les données de chargement. Et commençons. Voyez ce qu'on doit faire ici. Ok, donc nous vérifions si le
joueur préserve Get Int
et nous utilisons, et nous allons utiliser, copions la clé ici. Et on va le coller ici. Donc, nous obtenons l'entier. Si elle est égale à 0, cela signifie
que le joueur n'est pas actif. Donc, les statistiques du joueur à la position I, pensait que le point de l'objet de jeu était actif sur false. Sinon. On est en train de le mettre à vrai. Ok, donc maintenant on peut allumer et désactiver le joueur s'il était allumé et éteint quand on a sauvé la partie. Alors maintenant, il est temps de charger les statistiques des joueurs. Donc, la façon dont nous allons le faire est que nous allons aller aux statistiques du joueur, accéderons à la position au joueur i point. Disons que nous y allons. Donc on peut d'abord baisser le nom. Donc, nom égal aux préfs du joueur. Donc, les refs du joueur. Et on va avoir une corde pour sauver le joueur. Aussi, nous n'avons pas enregistré le nom, donc point de niveau de couche, obtenez. Désolé pour ça. Et je me disais que c'est pour ça que ça m'a pris. Je me disais,
quoi, qu'avons-nous vraiment besoin de ça ? Nous gardons le nom. Pourquoi on a sauvé le nom ? Alors peut-être qu'on pourrait sauver le nom. Pourquoi pas ? Non ? Une très mauvaise idée. On va coller la clé ici, et c'est tout ce qu'on a à faire. Donc, je vais à nouveau utiliser le pouvoir du montage, mais avant,
je vais vous apprendre ce truc astucieux. Donc, nous allons copier tout ça, le coller ici. Et fondamentalement, tout ce que nous devons faire est que nous devons obtenir cela, le
déplacer vers la droite à un
signe égal et les enlever et ensuite obtenir un int. Je ne sais pas si c'est plus rapide. Je pense que c'est plus rapide. Je te verrai dans un peu alors j'espère que ça ne te prendra pas trop de temps. Ça m'a pris, je ne sais pas. Peut-être 30 secondes, une minute, deux minutes, et mûrissent de toute façon, gardons tout ça et testons tout ça dans Unity. Donc, nous allons revenir dans notre jeu, et maintenant, allons de l'avant et allons continuer notre jeu. Déplaçons notre joueur quelque part. Nous allons lui donner un peu d'expérience. Donc 68, XP actuel, mois en cours, 33, je suis dans HP actuel 33, actuel 10, 22, dextérité, disons que c'est 45, défense 88. Je veux me souvenir de ces chiffres, mais j'espère que vous le ferez. Et nous allons équiper deux armes. Alors allez à Items, utilisez pour Jimmy, utilisez pour Sarah cette hache d'or. Et si l'arme fonctionne, je suis sûr que le fermier travaille. Et voyons voir. Donc, comme vous pouvez voir l'arme équipée sur le joueur pour le guérisseur, voyons ce que nous allons faire. Et pour le guérisseur, je vais l'éteindre. Donc je vais enlever le guérisseur dans la hiérarchie. Donc, nous allons tester si nous économisons ou non. Et enfin, on va frapper le Icky. Alors assurez-vous de se souvenir de ces chiffres pour que nous ne soyons pas bon marché. Je pense que nous avons tout préparé pour le joueur. Donc ces chiffres sont ceux qu'on veut. Nombre va frapper à nouveau I pour enregistrer les données. On va y retourner. On va lancer le jeu. Alors maintenant, quand nous
chargeons, nous pouvons voir que nous n'avons pas d'arme ou de nom d'arme équipé, ni sur le joueur ni sur les guérisseurs. Donc, quand nous avons frappé la touche O, nous y allons, Nous sommes transportés l'arme équipée comme l'argent agit avec une puissance d'arme avec 68 XP actuel avec tout mis en place et le guérisseur a disparu, mais elle a toujours la hache du côlon. Donc, comme vous pouvez le voir, nous sauvegardons les préfs du joueur. Pourtant, il y a un petit problème. Si vous avez remarqué que l'arme équipée, où est-il ? Nous ne pouvons pas le trouver. Alors, comment allons-nous stocker des articles alors que les articles sont de type, gestionnaire d'
articles, ce sont des listes. Comment allons-nous les sauver ? Eh bien, dans la prochaine vidéo, nous allons trouver une façon très intelligente de le faire. Alors engagez vos changements, et je vous verrai dans la prochaine vidéo.
83. Enregistrer des listes d'articles à l'aide d'éléments ressources: Whoa, whoa, whoa, whoa, whoa. Je sais que c'est une longue vidéo, mais chaque fois que vous avez des ressources limitées, vous devez créer quelque chose de très intelligent à chanter, contourné. Donc, actuellement, lorsque nous lançons notre jeu, vous verrez que lorsque nous toucherons la touche M, nous allons à des objets. On n'a rien. Si je ferme le menu, j'avais le boisé. Cela signifie que je charge les données. Vous pouvez voir que nous n'avons ramassé aucun de nos articles. Mais quand nous allons au menu des articles, vous pouvez voir que nous avons beaucoup d'articles que nous pouvons utiliser sur Jimmy, sur Sarah, et ainsi de suite. Alors ne perdons plus de temps et commençons. Ok, donc maintenant il est temps de sauver notre inventaire. Par inventaire, nous voulons dire que nous devons sauvegarder nos articles. Et comment allons-nous sauvegarder nos articles ? Eh bien, nous avons seulement les préfs du joueur pour l'entier, la chaîne et le flotteur. Comment allons-nous enregistrer des éléments, qui sont des objets complexes qui ont de nombreuses caractéristiques et disons différents types de variables à l'intérieur d'eux que nous devons sauvegarder. Ce qu'on va faire. On va être très intelligents à ce sujet. Nous allons créer un script d'actif d'un élément. Et ces éléments en tant que script seront placés sur le gestionnaire de jeu et il contiendra tous les éléments possibles que nous pourrions avoir une partie de l'heure. Ensuite, nous allons créer une méthode qui en utilisant une chaîne passe par ces actifs d'article, obtient l'article, puis l'ajoute à l'inventaire chaque fois que nous chargeons. Ne comprenez rien, moi non plus. Commençons et voyons ce que nous pouvons faire à ce sujet. Donc, premièrement, créer l'actif d'un élément. Donc, nous allons aller dans les scripts, va aller dans l'où devrions-nous le mettre dans
le gestionnaire des éléments de gestion de niveau gestionnaire. C'est le mettre ici. Sûr pourquoi pas ? Cliquez avec le bouton droit de la souris sur Créer un Éléments. Assets, appuyez sur Entrée, attendez qu'il compile, et ils sont maintenant ajoutés au gestionnaire de jeu. Et allons-y. Appliquez uniquement l'élément actif afin que nous puissions appliquer les modifications au préfabriqué, uniquement celles que nous voulons. Nous ne voulons pas appliquer le gestionnaire de quêtes aussi, vous savez, nous pouvons appliquer tout cela, mais dans l'autre, les gestionnaires, sur les autres gestionnaires de jeu auront les mêmes coûts. On ne le voudra peut-être pas. Mais de toute façon, concentrons-nous sur les tentatives de tâche. On ouvre le gestionnaire d'actifs. Tout d'abord, nous allons en faire un modèle
singleton parce que nous ne voulons pas qu'il soit répliqué n'importe où. Donc, les éléments statiques publics, asset, instance, puis commencez si l'instance est différente de null, et l'instance est différente de celle-ci, alors nous allons détruire cet objet. Et puis, sinon, nous allons juste définir l'instance égale à ceci. Ok, donc ça va s'assurer qu'on n'a qu'un seul élément, l'acide, on n'en a pas beaucoup. Deuxièmement, nous avons besoin des articles. Nous allons donc créer un champ sérialisé de type gestionnaire d'éléments. Ce sera un tableau parce que nous avons plusieurs éléments et il
va être appelé les éléments disponibles. Labile. Sauvegardez ça. Et nous allons créer la méthode va supprimer la mise à jour, je suis sûr que ne l'utilisera pas, comme nous le disons à chaque fois et ensuite nous l'utilisons. Nous allons créer une méthode qui renvoie le gestionnaire d'éléments ou le script Python. Et ça va être appelé get item asset. Et il va prendre une chaîne, qui va être l'élément pour obtenir le nom. Donc, ce sera l'élément que nous voulons obtenir en utilisant son nom. Et nous allons utiliser pour chacun. Nous allons donc parcourir tous les articles disponibles. Donc article et articles disponibles. Et si nous attrapons un
article, le nom de l'article est égal à l'article à obtenir, alors nous allons retourner l'article. Et si nous finissons toute cette boucle et que nous ne trouvons pas l'article, comme vous le savez, nous devons avoir un retour. Il va retourner null. Sauvegardez ça. Donc je sais que j'ai vécu ça très vite, mais ce sont des choses très basiques. Donc, nous allons sauver ça. Nous retournerons à Unity. Nous allons ouvrir les articles disponibles et allons dans les articles Prefabs. Va chez le manager. Verrouillons cela, sélectionnons tous ces éléments, faites-les glisser dans les éléments et non dans la liste des éléments disponibles. Et voilà. Nous gardons tout ça. Nous pouvons même appliquer les changements et maintenant nous avons tous les articles, les actifs disponibles. La prochaine chose est de réellement enregistrer nos objets et le gestionnaire de jeu dot enregistrer les données. Donc ça va faire partie de votre défi. Et nous allons enregistrer nos articles et je vais vous donner le processus étape par étape. Vous devrez donc définir le nombre de notre liste d'éléments en utilisant la fin définie. Vous devrez parcourir tous les éléments et définir le nom des articles et le bon ordre. Par ordre correct, je veux dire, nous allons passer par quatre boucles. Nous allons définir la chaîne et la clé doit être représentée par la position I. Donc, à chaque élément. Et laissez-moi juste l'expliquer d'une meilleure façon. Nous allons avoir chaque élément parce que nous avons déjà l'élément et le nom pour le rendre unique, vous devrez le définir ou représenté en utilisant la position que nous traversons la boucle for. Et enfin, vous devez également économiser la quantité de l'article que nous avons. Pas besoin de vérifier s'il est empilable, assurez-vous que le montant est supérieur à un et définissez l'entier. Donc je vous ai tout donné, arrêtez la vidéo maintenant et allez faire le défi. Oh, d'accord. Alors, comment avez-vous réussi à relever ce très, très difficile défi ici, nous allons aller de l'avant et appeler les Préfs des joueurs. Et parce qu'il y a déjà beaucoup de codage ici, nous allons choisir tous les grondements. Oui, tout, tout, tout ça. Nous allons finir, sauf pour la position que nous allons cliquer avec le bouton droit de la souris. Nous allons cliquer sur les actions rapides et le refactoring, et nous allons extraire cette méthode. Alors on y va. Maintenant, ça va être appelé son avoir des statistiques de joueur sauver ça. Donc, comme vous pouvez le voir maintenant, nous n'avons qu'une seule ligne pour représenter l'enregistrement de toutes les statistiques des joueurs. On peut minimiser ça. On peut même le faire pour le poste. Donc, cliquez avec le bouton droit sur les actions rapides et refactoring, méthode d'extraction, Sauvegarde, position du joueur, Entrée. Et puis comme vous pouvez le voir, nous avons une méthode très propre et nous allons faire beaucoup de ces actions rapides et refactoring des méthodes plus tard,
comme vous le verrez, vous pouvez facilement le faire dans le gestionnaire de menus. Donc, je vous recommande de passer en particulier le joueur. Donc, comme vous pouvez le voir, le joueur et la mise à jour fait beaucoup de choses. C' est donc l'endroit idéal pour commencer à vous refactoriser en méthodes. Nous avons donc une mise à jour claire. Je n'aime jamais garder la mise à jour comme ça. J' aime toujours refactoriser. Et chaque fois que vous avez beaucoup de code, Comme les données sauvegardées, que fait-il ? Vous devez regarder à travers tout le code. Maintenant, nous pouvons voir clairement les données sauvegardées, enregistre la position du joueur, enregistre les statistiques du joueur. Excellent. Retour à la tâche à accomplir. On va aller dans les Préfs des joueurs. Nous allons fixer la fin. Nous allons enregistrer le compte de la liste. Donc, ce sera le soulignement de nombre, les éléments de soulignement. C' est la clé et la valeur sera l'inventaire. Instance de point, point get item, point get items, liste, nombre de points. Sauvegardez ça. Ensuite, nous allons créer la boucle for. Et il va être dans l'inventaire Cutlass instance Door, nombre de points. Et nous allons en ajouter un à chaque fois. Et ici, nous allons tout d'abord obtenir l'élément et à une variable. Donc, l'article est de type gestionnaire d'article, l'article dans le stock. Et il va être égal à l'instance de point d'inventaire, point get liste à la position. Donc maintenant que nous avons une référence à elle, la prochaine chose à faire est de définir les préfs du joueur de la chaîne en utilisant, disons que nous allons l'appeler éléments ou soulignement d'élément. Et nous allons concaténer avec le poste. Donc maintenant, c'est unique. Et enfin, nous allons ajouter un trait de soulignement et nous assurer que nous savons que c'est l'élément 1, 200, quel que soit le nom. Et la valeur sera l'article en stock. Nom de l'article. On y va. Maintenant, nous avons le nom de l'article. Et puis nous allons vérifier parce que nous devons obtenir le montant. Nous allons vérifier si l'article de l'inventaire est empilable. Si c'est le cas, oups, désolé, si c'est le cas, alors nous allons l'enregistrer en utilisant le jeu de points prefs et le soulignement concaténé avec un I. Et j'espère que je ne bouge pas trop vite. Je bouge trop vite ? Si je le suis, arrête-moi. Évidemment, tu ne peux pas. Mais si vous le souhaitez, vous pouvez toujours, toujours vous référer à la section questions et réponses sous les vidéos. Alors, qu'est-ce qu'on économise ? J' ai oublié tous les comptes. Donc, l'article de l'article en stock, le montant que je dis compter, FMI, montant, grille. Alors maintenant, nous
économisons, nous vérifions d'abord le décompte. Nous économisons le nombre d'articles que nous avons. Nous sommes en train de parcourir tous les articles de l'inventaire. Nous sauvegardons l'article à chaque position et à l'article variable dans l'inventaire, nous enregistrons ce nom de cet article en utilisant une chaîne de jeu avec une clé unique et ici qui est représenté par le nom de l'article et je, encore une fois, pourquoi gardons-nous le nom ? Étant donné que les éléments actifs, nous avons créé une méthode qui obtient un élément actif en utilisant le nom. Donc, cela sera utilisé plus tard lorsque nous chargeons. Et enfin, où sommes-nous ? Ok, donc, et enfin nous vérifions si c'est empilable et nous économisons le montant que nous avons pour le charger également. Maintenant, la prochaine étape évidente est de charger également ces données. Alors rendons ça un peu plus propre. Nous allons donc refactoriser cette méthode d'extraction et elle va être appelée position du joueur de chargement. Tous ces éléments chargent les statistiques du joueur. Donc, la méthode Extract. Et maintenant on va commencer, laissez-moi juste minima, ok ? Et maintenant, vous pouvez voir clairement que faisons-nous dans les données de chargement ? Nous chargeons la position du joueur, chargeant les statistiques des joueurs. C' est très propre. C'est très sympa. Chargons nos articles. Comment allons-nous faire ça ? Nous allons tout d'abord créer une boucle. Une boucle. Si vous le souhaitez, vous pouvez suspendre la vidéo dès maintenant et essayer de charger les éléments vous-même. Je le recommande. C' est très important pour vous d'essayer cela vous-même. Alors mettez la vidéo en pause dès maintenant, allez au lecteur de défi prefs point GetInt. Et vous pouvez réellement commencer à le faire à tout moment que vous voulez. Laisse-moi juste avoir le nombre d'articles. C' est très crucial que tu ne gâches pas. La clé. Colle-le ici, nombre de points. Et je ne l'ai même pas fait, désolé pour ça. Nous devons nous assurer que je suis moins que ça et nous l'augmentons. Je plus, plus. Ok, super. Maintenant, nous allons créer une variable qui va être le nom de l'élément, et il va être égal aux préfs du joueur, la chaîne get. Et nous allons utiliser le trait de soulignement de l'élément , le
copier, le coller ici, et nous y allons. Sauvegardez ça. Maintenant que nous avons le nom de l'élément, nous allons créer l'élément. Donc, le gestionnaire d'éléments va être l'élément à ajouter. Il va être égal à l'instance point des éléments Assets,
point get item asset en utilisant le nom de l'élément. Sauvegardez ça. Et nous allons également créer une variable pour le montant de l'article et nous allons la définir sur 0. 0. Super, alors qu'est-ce qu'on fait ici ? Nous chargeons les prefs de joueur, get int, le nombre d'éléments. Nous l'utilisons pour faire une boucle à travers le foreach. Et à chaque position, nous obtenons tout d'
abord le nom. Après avoir obtenu le nom, nous obtenons l'actif et puis nous obtenons le montant, et puis nous vérifions le joueur prefs point a une clé qui est montant V et cela aurait dû être montant pas nom. Désolé pour ça. On va copier le ski ici et le coller ici. Donc, si c'est le cas, alors le montant de l'objet est égal aux préfs du joueur. C' est la même chose, sauf pour Husky. Nous obtenons l'int. Et on s'est fermé, sauf ça. Ok, donc maintenant nous recevons aussi le montant à moi, séparer ceux-ci et dit ceci. Enfin, nous devons ajouter ces articles à l'inventaire. Donc inventaire, par exemple, pensé à des articles. Et nous ajoutons l'élément à ajouter. Et non seulement cela, nous devons également vérifier si l'article à ajouter comme empilable et où est-il et le montant de l'article est supérieur à un, alors nous allons obtenir l'article pour ajouter montant
en dollars et il va être égal au montant de l'article. Sauvegardez ça. Alors quelles sont les dernières étapes après avoir créé le montant de l'article, nous avons vérifié s'il a réellement un montant en vérifiant la clé. Si c'est le cas, alors nous allons définir le montant de
l' article sur le montant de l'article et nous allons aller dans le stock, ajoutera l'article à ajouter. On va vérifier si c'est empilable. Si c'est le cas, alors nous vérifierons s'il a un montant supérieur à un. Si c'est le cas, le montant du point de l'article est égal au montant de l'article. Alors sauvegardons cela et voyons si l'un de ces résultats fonctionne et notre gain, quelque chose ne va pas. Et ça me dit que j'ai manqué. Qu' est-ce que j'ai raté ? Ce que c'est le joueur de l'épargne. Oups, qu'est-ce que c'est ? Devrais-je idéalement, il, ne devrais-je pas le supprimer ? Supprimons et voyons ce qui se passe. Je ne suis pas sûr de ce que c'était. Espérons. Non, je ne crois pas. Laisse-moi vérifier à nouveau. Donc on n'a pas de tarte. Pensez non, il n'y a rien de mal. Espérons que s'il y en a, alors nous saurons, sauvegardez ça. Retourne dans Unity. Plus rien de mal. Lancez notre jeu, frappez le, où est-il ? Voyons ce que nous avons. Donc, les articles actuellement nous n'avons rien. Donc, quand on ramasse ces objets, on y va. Nous avons ramassé ces objets. Éléments. On y va. Ce sont nos articles que nous allons frapper I, donc a été sauvé. Excellent. On va arrêter de jouer. On va recommencer le jeu. Nous vérifions les articles. On n'a rien. On sort, on touche la touche O. On y va. Donc maintenant, nous pouvons voir que les données ont été chargées. On n'a pas ramassé d'objets, non ? Tous les articles sont ici. Je suis des objets. C' est cool ? Donc, même si nous ne pouvons pas enregistrer des objets en utilisant les prefs de joueur, nous avons créé une manière
très, très intelligente, contournant cela et enregistrant réellement nos objets en utilisant les éléments demandés. C' est cool ? Je suis si heureuse que ça ait marché. C' est une façon incroyable de sauvegarder différents types de données avec un minimum. Et même si vous pensez que le joueur prefs est très simple et limité, mais comme vous l'avez vu, nous pouvons l'utiliser pour beaucoup de choses. J' espère que vous avez apprécié cette vidéo. J' espère que vous apprécierez le cours. J' espère que vous aimeriez un instructeur. Si vous connaissez l'exercice, s'il vous plaît aller revoir le cours. Ça pourrait signifier beaucoup pour moi. Cela m'aiderait beaucoup avec Procreate, en jouant avec le cours. Les gens verront que c'est un bon cours. Ça ira là-dedans. Il bénéficiera de ce que j'enseigne et cela m'aidera beaucoup. Merci beaucoup. Je te vois dans la prochaine vidéo. N' oubliez pas de valider vos modifications.
84. Section 12 : audio en unité: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous plongons dans l'audio. Quoi, comment ajouter une source audio ? Qu' est-ce qu'un auditeur audio ? Les nombreux, beaucoup de musique de fond et d'effets sonores que nous avons ajoutés. Alors maintenant, quand on lance notre jeu, je sais que tu n'entends rien, mais si on appuie sur la touche F, on
y va pour entendre le bruit de la suppression des boutons. Et au fur et à mesure que vous passez à la fin, assurez-vous d'ignorer tout sous la musique parce que c'est trop d'informations que nous n'avons vraiment pas besoin de valider les modifications. Donc, je veux dire, on peut l'ignorer, mais jusqu'à ce que tu y arrives, ne perdons plus de temps et commençons. Oh, ok, bienvenue. Maintenant, nous voulons ajouter un peu de saveur à notre jeu, et nous le faisons en ajoutant de l'audio. Donc, l'audio est une partie très centrale quand il s'agit de jeux et surtout de RPG. Alors, comment allons-nous ajouter de la musique ? Tout d'abord, nous devons comprendre ce que tous vos besoins pour être disponible. Il a besoin d'une source. Donc, vous avez besoin d'une sorte d'oiseau, par
exemple, une source. Et puis vous aurez besoin d'un auditeur, ce qui est parfois vous. Donc, où tous les auditeurs et les sources. Tout d'abord, parlons de l'auditeur. Donc l'auditeur est sur la caméra principale. Vous avez peut-être remarqué qu'en creusant les composants de la caméra et ainsi de suite, vous remarquerez que nous avons un écouteur audio. Et si nous sortons de 2D, j'ai collecté le bouton ici, vous verrez que nous avons l'écouteur audio juste ici sur la caméra. Zoom arrière. On peut agrandir la caméra. Malheureusement, nous pouvons voir l'étendue de l'auditeur, mais l'auditeur est sur la caméra et c'est là que nous avons écouté n'importe quel type de son ou de musique qui apparaît, au fait, peut-être que vous n'avez pas remarqué, mais c'est très cool pour regarder notre jeu 2D de ce point de vue et la façon dont les fonds sur. Maintenant, il est temps de réfléchir à la façon dont nous allons ajouter 0, 2. Donc je t'ai fourni quelques chansons ici. Vous verrez que je vous ai fourni un fichier pour la musique et un fichier pour les effets sonores. Nous allons donc créer un nouveau dossier dans les actifs. Et ça va s'appeler l'audio. Double-cliquez ici et faisons glisser la musique et les effets sonores et ici. Ainsi, comme vous le savez, vous pouvez ajouter vos propres effets sonores et de la musique à partir de l'art de jeu ouvert. Tout ce que j'utilise ici est de là. Donc, je vous recommande de prendre le temps, aller chercher de la musique, des effets sonores, ajouter votre propre ce que vous voulez que votre jeu se sent,
pour ressembler aussi. Quel type d'objets avec lesquels vous voulez interagir qui font un son ? Peut-être que tu veux faire un son de pompage. Chaque fois que votre joueur entre en collision avec quelque chose, c'est votre choix, allez-y. Donc nous pouvons voir ici que nous avons plusieurs musiques pour le chemin, l'obscurité. Certains d'entre eux seront pour les combats de boss pour le thème de la ville. Et nous avons aussi des effets sonores ici. Donc, par exemple, nous avons l'élément de défausse, le monstre de fait de feu, et peut-être que nous en ajouterons plus tard au fur et à mesure que nous avançons dans le parcours. Mais pour l'instant, ajoutons une source audio. Comment ajouter cela ? Eh bien, nous pouvons simplement glisser, par exemple, le thème du talent dans la hiérarchie. Et vous pouvez remarquer ici le comptage maintenant en tant que composant ou a un composant qui est la source audio où nous pouvons changer le volume, la hauteur, les paramètres sonores 3D, bien que nous soyons dans un jeu 2D, ne l'utiliserons pas. Et nous avons également des options ici pour couper le son par effet de passe, contourner les effets d'écoute, ainsi de suite et ainsi de suite. Et l'un d'eux est allumé. Et les deux plus importants sont la boucle où quand la chanson se termine, nous bouclons à nouveau et il recommence. Ou nous pouvons jouer sur éveillé, qui jouera le son dès que la scène se chargera. Donc, si nous lançons maintenant notre jeu, j'espère que vous pouvez entendre à travers le microphone, mais il y a du son qui sort du jeu et nous pouvons ajuster le volume et l'éteindre. Maintenant, si on éteint le jeu, on lance le jeu. Voilà, tu y vas. Il n'y a pas de son à entendre. Maintenant. Tout fonctionne. Vous pourriez dire, d'accord, bien, super, en ville, nous allons ajouter le thème de la ville. Très bien, mais il y a un léger problème. Comment on l'arrête ? On va à chaque fois sur la scène ? D' accord. Comment un joueur qui joue à notre jeu, qui n'a pas accès aux objets de la hiérarchie ? Eh bien, dans ce cas, nous aurons besoin d'un vieux de votre manager. Supprimons donc le thème de la ville ici. Retirez-le. Et nous allons entrer dans nos scripts. Nous allons créer, ou nous pouvons créer réellement, et les gestionnaires vont créer un nouveau script C-Sharp, qui va être le gestionnaire audio. Hit Enter crée également un objet de jeu vide et la hiérarchie, qui sera le Gestionnaire audio. Et nous pouvons le séparer par l'espace. On peut réinitialiser la position à 00. Tu n'as pas à faire ça. J' aime faire ça. Et nous allons faire glisser le gestionnaire audio et le gestionnaire audio. Ici va également créer deux objets de jeu vides, qui vont être la musique et les effets sonores, ou les effets pour court terme. Et puis on va aller dans le dossier Audio. Nous allons faire glisser tous ces éléments à l'exception des liens. La façon dont je les ai tous choisis. J' ai cliqué sur le premier, maintenez le décalage vers le bas, cliqué sur le dernier, et pour supprimer le lien, maintenez la touche Contrôle enfoncée, cliquez sur celui-ci. C' est tout ce que tu as à faire. Faites glisser les dans la hiérarchie. Cela créera une source audio pour chacune de la musique, de la musique, peu importe ce que vous voulez appeler et assurez-vous d'éteindre
le jeu sur éveillé à moins que vous ne vouliez que votre batterie d'oreille éclate. Donc on va les traîner dans la musique et on fera de même pour les effets sonores. Je ne suis pas sûr de ce qu'est ce bureau. Eh bien, faites-les glisser et nous allons éteindre le jeu éveil et nous les traînerons en enfants de l'effet sonore. Alors maintenant, nous allons sauver cela quand nous lancerons notre jeu. On y va. On n'entend rien à moins d'en allumer l'un, mais on ne veut pas que ça se produise tout seul. Nous voulons que cela se produise grâce à notre script. Alors allons de l'avant et ouvrons le script et commencez à coder comment k. Alors de quoi avons-nous besoin ? Et ici, tout d'abord, nous aurons besoin d'une référence à tous. Nous allons donc créer deux champs sérialisés, créer un tableau de sources audio pour contenir toute notre musique ou les artefacts et toute notre musique. Donc tous ces éléments seront des sources audio et je vais l'appeler pour référence supplémentaire, la musique de fond. Ainsi, nous saurons que ce n'est pas seulement de la musique, c'est la musique de fond. Ensuite, nous allons créer une instance de cet objet. Nous allons donc passer en public, statique, ou votre manager, ou votre instance de manager. Et cette instance sera égale à cela. Sauvegardez ça. Et nous ne voulons pas détruire cet objet en charge. Plus tard, nous devrons peut-être nous assurer qu'il s'agit d'un modèle singleton parce que nous ne voulons pas de doublons, pas avoir beaucoup de sons en même temps. Pour l'instant, concentrez-vous simplement sur Create. Et maintenant, nous allons créer une méthode qui va
jouer un certain effet sonore basé sur un paramètre que nous l'envoyons, qui va être un entier. Avant de faire ça, allons-y. Dans le Gestionnaire audio, nous devrions avoir deux listes. Donc nous allons faire glisser va d'abord, verrouiller. Le Gestionnaire audio fait glisser la musique et la musique de fond. Et nous allons faire glisser les effets sonores et les effets sonores. Nous sauverons cela. Et je vais vous lancer un défi. Donc, j'étais si désireux de les recueillir tous maintenant, créer une méthode qui prend un argument entier quant à la chanson qu'il devrait jouer. Utilisez cet argument pour jouer l'effet sonore. Bien sûr, accéder au tableau en utilisant le paramètre auquel nous avons accédé. Et assurez-vous que l'entrée n'est jamais hors des limites du tableau d'effets sonores. Donc, disons que nous en avons neuf. Alors on y va. Nous avons neuf options. Donc, nous ne voulons pas une entrée de, disons 100 et il n'est pas disponible et effets sonores. Donc, ce sera une solution ou un problème auquel elle devra trouver une solution. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Comment as-tu eu tout ça ? Je sais que je ne vous ai pas appris à jouer des chansons, mais à ce stade du cours, je pense que vous avez déjà la capacité d'aller et de devenir un résolveur de problèmes par vous-même. Alors j'espère que tu ne te sens pas trompé. Je viens de vous quitter. Donc nous allons créer un vide public, jouer comme effets. Et il va prendre un paramètre entier afin que le son à jouer. Et parce que nous ne voulons pas qu'il soit hors des limites, nous allons vérifier si le son à jouer est inférieur à la longueur des points des faits ASA. Ensuite, ici, nous allons accéder
au tableau de suffixe au son de position pour jouer ce jeu. Donc c'est assez facile. Je ne pense pas que beaucoup d'entre vous aient trébuché si vous l'étiez et si vous ne savez pas comment jouer un son, vous auriez pu aller dans la documentation de l'Unité, ce que j'espère que vous l'avez fait. J' espère que vous n'avez pas seulement regardé l'écran, nous pensons que je dois tout faire. Donc, avec cela fait, nous allons sauver ça. Nous avons également besoin d'une mise à jour pour tester cela. Donc, nous allons vérifier si nous obtenons un point d'entrée,
obtenir la clé vers le bas, qui obtenir la clé vers le bas. Keycode, que devrions-nous utiliser ? Je pense que le f n'a pas été utilisé pour rien. Ou peut-être le P de toute façon, gardons-le à F. Et on va jouer l'effet sonore à la position. Voyons quelle position voulons-nous jouer. Donc, à partir de 0, si nous voulons trois objets défaussés, bien sûr, jetons un élément, sauvegardons cela, revenons dans Unity. Lancez notre jeu, appuyez sur la touche F. Laisse-moi augmenter le son. Peut-être que tu peux entendre ça. Donc, comme vous pouvez le voir, ce sont les mauvaises herbes qui rejettent le son, mais au moins nous avons une indication de ce qui se passe. J' espère que vous avez apprécié cette vidéo. Je recommande qu'avant de passer à la prochaine,
c' est notre test sur tout. Essayez de jouer de la musique sur éveillé, essayant d'éteindre la musique et de se réveiller. Dans la prochaine vidéo, nous allons approfondir la façon dont nous pouvons jouer la musique l'arrêter
et utiliser différentes scènes. Alors je te verrai alors.
85. Jouer de la musique: Oh, hey, bienvenue, mes collègues développeurs de jeux dans cette vidéo, quand nous lançons notre jeu, si nous frappons la touche F, Voilà vous y allez. Vous pouvez entendre la musique en arrière-plan. Donc, dans cette vidéo, nous allons apprendre à jouer de la musique et, plus important encore, comment nous pouvons éviter plusieurs chansons qui interférent les unes avec les autres. Alors ne perdons plus de temps, et commençons. Bon, maintenant on peut jouer des effets sonores. Il est temps de jouer de la musique de fond. Donc on va ouvrir notre script ici. Nous allons faire défiler vers le bas et nous allons créer une méthode pour jouer la musique de fond. Donc vide, joue de la musique de fond. Et il va aussi prendre un paramètre qui va être la musique à jouer. Qu' est-ce que c'est ? Ok, qu'est-ce qu'on va faire ici ? Comme nous l'avons fait dans l'effet sonore, nous allons vérifier si la musique à jouer est inférieure à la longueur des points de musique de fond. Et nous allons simplement accéder à la musique de fond à la musique de position pour jouer, adopter le jeu. Ok, donc vous pourriez penser, eh bien, super, Allons-y et testez ça dans notre jeu. Mais tu dois réaliser quelque chose. Et si on veut jouer un son différent ? Eh bien, que se passe-t-il ? Alors ? Vous aurez à sonner les uns sur les autres. Un jouant des effets sonores. Ce n'est pas un problème car les effets sonores sont très courts. Rarement vous avez un effet sonore très long. Donc vous avez vu comment quand on joue le bouton de défausse, c'est une seconde. Et si nous avons, par exemple, nous rejetons deux éléments en même temps. Ou disons par exemple, nous ne savons pas, ramasser un article et jeter l'article en même temps, ce ne sera pas aussi mauvais. Mais si on commence à jouer une chanson pendant que la première ne s'est pas arrêtée, ça va être un gros problème. Donc avant de jouer de la musique, nous devons d'abord arrêter la musique. Et c'est une méthode que la chaussure va créer. Alors s'il vous plaît, arrêtez la musique si vous savez quelle était la référence. Si vous ne créez pas une méthode qui arrête toute la musique, vous devrez rechercher comment vous pouvez le faire dans Unity dogs, j'ai ajouté ceci parce que je n'ai pas apprécié dans la dernière vidéo et utiliser la boucle ou une boucle foreach pour parcourir toute la musique et arrêtez-les tous parce que nous ne savons pas lequel est en train de jouer. Alors mettez la vidéo en pause et allez créer cette méthode. Oh, ok, bienvenue. Donc ici, nous allons créer le, arrêter la musique. Si nous cliquons ici, nous pouvons générer la méthode immédiatement. On y va. C'est cool ? On a économisé environ 23 secondes. C' est génial. Le temps est de l'argent. Donc pour chaque source audio, parce que nous traversons une chanson en arrière-plan dans la musique. Et c'est de type source audio. Et ici, on va chercher la chanson et on va l'arrêter. Donc c'est très évident. On ne veut pas qu'il joue. Et maintenant, chaque fois que nous voulons jouer une chanson, n'importe quelle chanson, nous avons arrêté celle qui est déjà là, et ensuite nous passons à autre chose. Alors testons ça. Oh, je voulais dire ici, si on a une entrée et qu'on dépose la clé ou tu sais quoi ? Essayons juste ça. Et ici. Lire de la musique de fond. Lequel devrions-nous jouer ? Le dernier à cinq heures parce que c'est le comptage et qu'on est en ville, n'est-ce pas ? Donc cinq, sauvegardez ça à Unity. Attendez qu'il compile, lancez notre jeu. C' était quoi le bouton ? Était-ce que j'ai dit le j'espère que sauve le jeu. Qu' est-ce que c'était ? F D'accord. Désolé. Alors on y va. Et chaque fois que j'appuie sur Entrée, vous remarquerez qu'il s'arrête et joue à nouveau. Essayons quelque chose. Commentons cela et voyons ce qui se passe. Donc maintenant, si nous menons notre jeu, nous avions la clé F. Essayons de le frapper à nouveau. Laisse-moi baisser un peu le son. Frappe encore. Parce que c'est la même chanson, elle s'arrête évidemment. Donc, disons que nous voulons jouer le,
jouer de la musique de fond à la position. Disons de sauver ça dans notre jeu, lancer le jeu, de frapper le F. Donc vous pouvez entendre que nous avons deux chansons l'une sur l'autre. Donc un arrêt libre de la musique. On ne devrait entendre qu'une seule musique, une seule chanson. Je ne suis pas sûr que tu puisses l'entendre. On y va. Nous n'avons que l'avion Battle Music parce que nous arrêtons tous les autres sons. Alors maintenant, nous nous sommes protégés contre de multiples antécédents de musique jouant ensemble. J' espère que ça vous plaira. J' espère que vous engagez tous vos changements et je vous verrai dans la prochaine vidéo.
86. Jouer du l'audio à partir du code: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons ajouter des effets sonores. Nous allons ajouter de la musique de transition. Alors maintenant, quand on ramasse des objets, ça va être très faible. J'espère que tu entends. Nous y allons, pour que nous puissions entendre un son quand nous ramassons un objet. Si nous appuyons sur la touche M, allez aux éléments. Si on utilise un des articles sur Jimmy, on y va. Vous pouvez l'entendre. Si nous rejetons l'un des éléments. Nous y allons, vous pouvez aussi l'entendre. Fermons le menu et nous avons appuyé sur le bouton de fermeture même si c'est une ligne de code. Quand on ira à la scène suivante. Nous y allons, vous pouvez entendre le changement de musique et à une très belle mélodie qui me rappelle qui sont trois, si vous avez déjà joué à ce jeu, C'est incroyable. Donc, avec cela dit, ne perdons plus de temps et commençons. Ok, donc maintenant il est temps de passer notre lecture audio au niveau supérieur. Nous ne voulons pas avoir à appuyer sur un bouton pour démarrer la lecture de la musique. Nous voulons que cela se produise automatiquement à chaque niveau. Mais la question est, où devrions-nous dire choisir quelle musique jouer sur le Lovell ? Eh bien, j'ai pensé qu'il y a beaucoup de façons de le faire, mais je crois que l'une des meilleures façons est sur le menu principal du cinéma de contrôleur de caméra il est. Donc, sur le contrôleur de caméra, chaque niveau a son propre contrôleur de caméra, peut-être pas sur le magasin. On peut changer ça. On verra ce qu'on peut faire. Mais je crois que c'est un endroit parfait pour ajouter. Donc, ici, nous allons créer un champ sérialisé, qui va être un entier. Et ce sera la musique à jouer. Donc, nous saurons quelle musique nous avons besoin de jouer, va la choisir ici. Et nous allons également créer un booléen privé, qui allait vérifier si une musique est déjà en train de jouer. Et c'est juste pour une étape supplémentaire de précaution. Donc, une mise à jour, nous allons vérifier s'il y a déjà de la musique en cours. Ensuite, nous allons mettre tout d'abord, la musique déjà en train de jouer à vrai. Pourquoi on fait ça ? Eh bien, parce que c'est une mise à jour. Nous regardons à travers chaque cadre. Donc ce que nous allons faire, c'est que nous allons le mettre sur vrai, donc nous ne l'entrons qu'une seule fois. Et puis on va chercher le gestionnaire audio. Donc, nous avons déjà une instance de celui-ci. Donc, nous allons aller gestionnaire audio, instance point,
point, jouer de la musique de fond et va être la musique à jouer. On y va. Donc nous allons sauver ça. Nous allons préfabriqué notre gestionnaire audio. Donc un préfabriqué, c'est Préfabriqué l'AudioManager. Ok, super, donc on va garder ça dans la caméra virtuelle. Et ici, nous allons regarder de la musique. On doit jouer ? Si nous allons à la musique du gestionnaire audio, qu'avons-nous dans le thème Audio Manager et vers le bas ? Donc c'est le 5, fin ici. Cinq, sauve ça. Allons au niveau suivant. Où est-il ? Alors des scènes, des montagnes. Montagnes. Montagnes à oui, nous y voilà. Montagnes à ajouter ici nous allons ajouter nous allons voir, avons-nous la caméra virtuelle ? Oui, nous l'avons fait. Et la toile a été mise à jour. Bien sûr, nous avons le menu court ici qui ne s'allume pas. Peut-être que nous devons ajouter d'autres choses comme, par
exemple, le gestionnaire de jeu. Allons dans les Préfabs. Gestionnaire de jeu. Où est-il ? OK, gestionnaire audio. On y va. Maintenant, on peut jouer des sons ici. Et lequel devrions-nous choisir ? Nous avons, je crois que j'ai choisi un chemin
héroïque du lac. Vous pouvez même l'écouter pour que nous puissions double-cliquer pour l'ouvrir et l'écouter. Je pense que c'est une très bonne chanson, me
rappelle The Witcher 3. C' est très sympa. Même de l'ambiance. Si vous voulez un peu d'ambiance à la musique. Je ne sais pas. De toute façon, c'est là que c'est ? J' ai été distrait. Élément trois. Faites défiler l'élément 3 vers le bas, enregistrez cela. Et vous ne voulez pas écraser cela, nous ne voulons pas remplacer les caméras. C' est ça. C'est tout ce qu'il faut faire. Parce que si nous le remplacons,
donc si nous appliquons les modifications et ici et que la caméra le remplace, nous appliquons la caméra. Tous les autres niveaux auront la même musique à jouer. Et je viens de remarquer que le jeu n'est pas correct, mais on ne veut pas ça. Alors gardez ça à l'esprit. Nous ne voulons pas que la même musique soit jouée à chaque niveau. Retournons en ville. Où sont les scènes ? Pour sauver ça ? Laissons le jeu. Le jeu. Voilà, tu y vas. Vous pouvez voir que la musique est en train de jouer. Si nous marchons à l'autre. Ok, donc il y a quelque chose qui ne va pas. Il y a déjà de la musique en arrière-plan. On va devoir réparer ça. Et le problème ici, c'est que quand nous exécutons notre jeu, Ce n'est pas que nous avons quelque chose de mal avec le code. C' est juste que quand on passe au niveau supérieur, ne détruis pas l'ancien de ton manager. Et pourtant, nous avons un vieux manager ici. Donc, si vous vous souvenez dans la première vidéo de cette section, j'ai dit que nous devons en faire un modèle singleton. Pour ce faire, nous allons ouvrir la couche. Donc, le joueur était un modèle singleton va juste copier ceci. On va le mettre dans le gestionnaire audio. Et cela devrait tout réparer parce que notre code est correct. Donc on y retourne, on dirige notre jeu. Nous marchons vers le bord. Oui, on y va. nous puissions voir que nous changeons notre musique. Mais malheureusement, nous n'avons toujours pas résolu le problème de nos caméras, et ici, dans la caméra virtuelle, vous pouvez voir qu'elle ne suit personne. Où est-il dans la caméra virtuelle ? Donc le suivant est manquant. Nous ne suivons pas le joueur. Je sais que c'est un peu frustrant. Nous n'avons pas atteint les boucles while, mais ne vous inquiétez pas pour ça. On va arranger ça au temps des Juifs. J' espère que vous avez apprécié. Avant de partir, nous devons faire encore une chose, et c'est un défi. Donc, jouez des effets sonores lorsque nous jetons l'objet, lorsque nous ramassons un objet, et si vous avez d'autres sons que vous voulez ajouter. Appliquez également ces. Je vais juste appliquer les deux premiers pour l'instant. Alors arrêtez la vidéo dès maintenant et allez faire le défi. O K. Bienvenue. Donc, dans AudioManager ici, vous pouvez voir que nous avons l'effet
sonore de jeu et nous choisissons l'effet sonore que nous voulons jouer. Donc, si on va à la, le gestionnaire de menu quelque part ici. Donc le gestionnaire de menu non, comme ici, non. Apparemment, on doit l'ouvrir à partir du Canvas. Donc, gestionnaire de menus, nous allons double-cliquer sur le script. Je ne sais pas si 12e. Donc, quand nous voulons utiliser une sorte de bouton ou jeté. Donc on y va, jeter l'article ici quand on appuie dessus, donc on met à jour l'inventaire et on accède au gestionnaire audio. Par exemple, jouer un effet sonore. Et lequel devrions-nous jouer ? Si nous ouvrons l'unité, nous allons au gestionnaire audio. C' est les États-Unis ou l'objet marqué. On y va. Élément trois. Ouvre le et ici à 15 h, sauve ça. Et maintenant, quand nous utilisons l'élément ici, ou parce que nous rejetons déjà l'élément, je ne suis pas sûr que ce soit la meilleure idée de le faire ici. Donc, de la façon dont nous l'avons mis en place, nous rejetons l'élément. Donc, nous jouons l'effet sonore ici. Pas une très bonne idée, mais dans tous les cas, nous allons juste jouer l'effet sonore. Donc nous allons copier ceci, le
coller ici. Qu' est-ce que l'effet sonore d'utiliser l'élément, son propre élément 8. Et voilà,
jouer l' élément d'effet sonore 8. Comme vous pouvez le voir, nous avons mis ici que cela devrait être déplacé. Donc, à cause de la façon dont nous mettons en place notre ancienne, vous devrez maintenant copier cette ligne ici. Et on va le coller ici. Donc, nous ne voulons pas entendre l'effet sonore de l'élément défaussé. On va sauver ça. Si vous voulez vraiment enregistrer du code, nous pouvons réellement aller de l'avant et une action rapide et un refactoring et créer une méthode juste pour ces deux lignes, puis appeler ces méthodes ici. Je ne pense pas que ce soit très nécessaire, mais c'est, bien sûr, une meilleure pratique. C' est très moche et pas très professionnel quand on voit vraiment ces deux lignes ici. Mais pas de soucis à ce sujet. On va économiser, on va tester ça pour notre jeu. On va exécuter le code. Et nous aurions pu ajouter aussi peut-être pour l'article pick-up mis ont été une bonne idée. Allons ramasser quelques objets. Pour les éléments, cliquez sur Ignorer. On y va. Je ne sais pas si tu l'as entendu. C' est un peu faible. Maintenant, on va utiliser ça sur Jimmy. On y va. C' est un son très petit, mais c'est tout ce dont vous avez besoin quand il s'agit d'effets sonores, surtout avec la musique et l'arrière-plan. Tellement génial avec ça fait, je me suis arrêté à nouveau. Ajoutons également lorsque nous ramassons un article. Alors, où traitons-nous le ramassage de l'article ? C' est sur l'endroit où il est ? Où est le responsable informatique ? C'est ici ? Oui. On y va. Donc, quand nous ajoutons l'élément, nous allons jouer l'effet sonore. Donc AudioManager, instance point, point, jouer comme effets. Et celui qui ramasse l'article. Élément cinq. On y va, sauve ça. Et la seule chose qui m'inquiète, c'est que quand on ramasse un objet à sera détruit et, espérons-le, on aura le temps de jouer. Donc, ou ça pourrait peu importe. Nous allons diriger notre jeu. Pour que vous entendiez le son. On y va. Excellent. J'espère que vous apprécierez. J' espère que tu t'es amusé à ajouter de la musique à notre jeu. Vous pouvez voir qu'il ajoute beaucoup plus, disons, champ dynamique au jeu. Donc si vous aimez le cours, si vous êtes comme moi en tant qu'instructeur, même si je peux parfois quelques erreurs, pas de soucis. J' aime les garder juste pour que vous
compreniez le processus de création parce que personne n'est parfait. Et même si j'ai préparé les scores, donc j'ai déjà préparé ce jeu. Un gros choc. Je fais parfois des erreurs et je veux que vous compreniez cela parce que le processus n'est pas facile. Vous n'allez pas seulement, peu
importe combien d'heures vous avez, peu
importe combien d'années d'expérience, vous allez toujours trouver quelque chose et être comme, pourquoi cela ne fonctionne pas ? Comment puis-je le réparer ? Vous aurez besoin d'utiliser les débogues beaucoup. Donc je voulais juste être aussi authentique que possible. Cela dit, si vous avez le temps, laissez-moi un commentaire et je vous verrai dans la prochaine vidéo.
87. Section 13 : UI du menu principal: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous créons ou étalons notre menu principal. Alors tu l'aimes ? Je pense que ça a l'air bon. Donc légendes de conquête et grande police médiévale rouge, audacieuse. Et nous avons trois boutons pour continuer à commencer une nouvelle partie et à sortir de notre jeu. De toute évidence, ils ne font rien,
rien ne fait quoi que ce soit actuellement. Je pense que ça a l'air bien. J' aime ça. J'espère que ça vous plaira. J' espère que vous trouverez vos propres ressources. Alors ne perdons plus de temps. Et commençons. Oh, donc c'est l'heure d'un menu principal. Allons de l'avant dans le fichier, créons une nouvelle scène. Et nous allons nous assurer que c'est 2D. Et ici, nous allons le sauver dans les scènes. Et puis on l'appellera le menu principal. On y va. Sauve ça. Oh, d'accord. Maintenant, la prochaine chose est que nous allons cliquer avec le bouton droit de la souris et ajouter un canevas. Ou nous pouvons immédiatement aller de l'avant et ajouter une image. Et cela ajoutera une toile automatiquement. Et nous allons aller sur le Canvas et nous assurer que le détartreur de canevas. Et voici la constante Nope physique, échelle avec la taille de l'écran. Et nous allons nous assurer que c'est 1920 d'ici 1080. Appuyez sur Entrée. Ok, on y va. Maintenant, l'image, qu'allons-nous faire de l'image qui va dans les sprites ? Cliquez avec le bouton droit de la souris et créez un nouveau dossier, appelez-le les images d'arrière-plan à Entrée. Et je vous ai fourni quelques images maintenant je recommande cette chaussure. Va trouver le vôtre parce que les miens sont dans ce bien. Comme je l'ai dit Toujours, je ne cesse de te dire que tu ne fais pas la même chose que moi. Va trouver le vôtre. Et je vais cliquer sur l'image. Et voyons, traînons celui-ci. Et définissons la taille native. Et déplacons l'image vers le centre. Alors, voilà. Je pense que c'est une bonne image. Peut-être, peut-être pas, peut-être que tu détestes ça. C' est bon. Tout le monde a son opinion. Donc on va aller de l'avant et ajouter quelques choses ici. Maintenant, qu'a un menu principal ? Eh bien, principalement il y a trois choses. abord, il a
le continuer, le nouveau jeu, Le quitter, et les options. Allons-y et faisons tout ça. Donc, la première chose est que nous allons voir ce qu'il faut ajouter ici maintenant, options, je ne suis pas sûr qu'il soit important d'avoir des options. Nous allons simplement ajouter une option virtuelle juste pour voir comment nous
pouvons aller d'un écran à l'autre et ainsi de suite. Alors allons de l'avant et ajoutons quelques boutons ici. Donc nous irons vers vous, j'ajouterai un bouton. Donc ce bouton, bien sûr, on va aller à nos sprites. Et nous allons bien, donc matériaux, éléments d'
interface utilisateur, nous allons ajouter ceci à notre bouton Sprite. Et nous allons supprimer le texte, ajouter un texte Mesh Pro. Et bien sûr, ce sera le médiéval et ce sera Continue. On y va, continuez. Et rendons ce bouton un peu plus grand. Donc on va agrandir ce bouton. On va savoir à quoi cette histoire n'a vraiment pas l'air bien. Je viens de remarquer. On le changera plus tard. Donc, ce sera le bouton Continuer et dans le texte Mesh Pro vont le rendre complètement noir. On y va. On va le rendre audacieux. Nous allons le mettre dans la bonne position juste un peu. Et positionnons-le au milieu. Augmentez la taille à nouveau. Continuer. On y va. Alors continuez. Et je ne pense pas qu'on ajoutera autre chose. Il nous faut juste un deuxième bouton. Et je pense que ce bouton est trop gros peut-être. Encore une fois. Donc celui-ci sera la sortie. Ce sera le, donc le bouton Quitter. Sortez. Nouveau jeu. Et nous continuons. Ok, donc je suppose que c'est à peu près tout ce qu'il faut créer. Nous pouvons créer des options si vous voulez ajouter. Et je vais changer ce contexte parce que je n'ai vraiment pas aimé ça. Alors fond, ajoutons le froid. Oh, ça a l'air beaucoup mieux. Ok, super. Donc, la sortie, le continuer Ultra pour définir que nous pouvons utiliser une mise en page d'arrière-plan ou une mise en page de grille pour s'assurer que tous sont parfaitement alignés. Je ne pense pas qu'on en aura besoin pour l'instant. Et nous allons aller de l'avant et ajouter un texte Mesh proton ici, un gros. Et ça va être le titre de gain. Titre et nous allons l'appeler les légendes de la conquête. Conquête le rendra audacieux, fera au milieu, au milieu. Et complètement noir était la couleur. Ok, on y va, la couleur. Allons de l'avant et ajouter un peu de couleur et assurez-vous que sa fête médiévale. Je ne sais pas comment ça s'appelle ça. Mais de toute façon, alors que ça va, alors on y va. Ça va être à propos de ça. Peut-être qu'on devrait changer la couleur. On verra dans un peu. Augmentons la taille. Donc les légendes de la conquête, et voyons ce que nous pouvons en faire. Oh, oui, donc je pense que le rouge est une bonne couleur. C' est le blanc. Ce qui n'est pas non plus sur la couleur, mais je pense que je lis complètement lire autant de beurre. Et non, je pense que nous allons l'étendre encore plus et le rendre encore plus grand. On peut même appeler ça des légendes de la conquête, c'est la seconde que nous avons créée. Mais de toute façon, les légendes de la conquête, c'est assez bon. Je pense que ce fond convient au sentiment du jeu. Cela dépend du sentiment du jeu. Alors que votre jeu est un peu sombre, je pense que le mien sera parce qu'on a un démon qui roule autour. Si vous voulez que votre jeu se sent plus. Disons paisibles. Vous pouvez utiliser la pièce. Si c'est plus une aventure, vous pouvez utiliser la pièce. Et vous pouvez également trouver vos propres arrière-plans, art de jeu
ouvert ou tout type de fond à ce sujet. Ok, voyons voir. On peut ajouter beaucoup de choses ici, peut-être la sous-couche, on peut le changer. Voyons si on le rend blanc. Est-ce que quelque chose affecte notre En fait il semble pire. Gardons-le à ça. On va sauver ça. Super. Maintenant, nous avons trois boutons et maintenant il est temps de relever un petit défi. Et ce défi est de définir votre propre menu principal. Configurez votre propre menu principal en utilisant votre police et votre arrière-plan, etc. Et amusez-vous avec ça. Prenez votre temps. Donc, le menu principal est la première chose est qu'un joueur voit que vous avez besoin de faire un impact dans cette position. Donc, je vous recommande de vous rappeler quelques jeux que vous avez eu, regardé à travers eux, voir comment ils fonctionnent et ce que vous pouvez faire. Alors arrêtez la vidéo tout de suite et allez faire le défi, validez vos modifications, et je vous verrai dans la vidéo suivante.
88. Gestionnaire principal: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons ajouté des fonctionnalités à notre bouton, mais comme vous pouvez le voir, nous avons supprimé le bouton Continuer. On n'en a plus besoin. Donc, quand on lance notre jeu, tu y vas. Eh bien, oh mon Dieu, un bouton Continuer est apparu. Eh bien, c'est parce que nous avons en fait une sorte de clés en fait des préfs de joueur que nous pouvons charger notre jeu. Donc, quand on frappe le continuer, ça ne fait rien. Le gain de liquide nous dit que nous venons de le faire. Si nous avions le nouveau jeu, nous commençons un nouveau jeu. Comment pratique ? Alors ne perdons plus de temps et commençons. Ok, donc maintenant il est temps de donner des fonctionnalités à nos boutons et de ne pas avoir envie de goudronner aujourd'hui. Donc je vais juste vous donner le défi. Créez un manuscrit principal. Donc, créez le script du menu principal et attachez-le à la canevas du menu principal. Créez une variable qui conserve le suivi du bouton Continuer. Je vais te dire pourquoi dans un peu. Et un pour la nouvelle scène de jeu. Parce que tu sais, quand on commence une nouvelle partie, on doit aller sur une nouvelle scène de jeu. Et puis nous devrons créer deux méthodes pour le nouveau bouton de jeu et le bouton Quitter. Enfin, le nouveau jeu devrait nous conduire à la nouvelle GameScene et les sorties devraient simplement imprimer quelque chose. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Oh, ok, reviens. Comment as-tu eu tout ça ? Donc, dans nos scripts va aller dans les scripts va aller dans où devrions-nous sauver IT ? Gestionnaires. Oui, bien sûr pourquoi pas Dans les gestionnaires vont cliquer avec le bouton droit de la souris, créer un script C-Sharp et il va être appelé le menu principal. Appuyez sur Entrée. Attendez qu'il compile ceci comme le nouveau bouton de jeu. Donc nouveau bouton de jeu, ou en déplaçant ici, allons à la Canvas. Appelons cela la canevas du menu principal. Et nous allons ajouter le menu principal au menu principal Canvas. Et nous allons, ok,
Donc, nous avons ajouté le mauvais, nous avons ajouté le gestionnaire de menu, Supprimer le composant, menu principal. Ok, super. Fermons tout ça et ouvrons nos hommes, les hommes. Alors, ici, qu'est-ce qu'on va faire ? Eh bien, nous avons dit que nous avons besoin de références. Le premier est un champ sérialisé de type string, et ce sera la nouvelle scène de jeu sur laquelle nous allons aller. Et puis nous allons créer un nouveau champ
sérialisé qui va être de type objet de jeu et il va faire référence au bouton Continuer. Pourquoi on fait ça ? Eh bien, évidemment, parce que si nous n'avons jamais créé ou si nous n'avons jamais joué à ce jeu et que nous ne pouvons pas continuer, alors évidemment nous ne devrions pas voir le bouton Continuer. Nous ne devrions voir que le nouveau jeu et la sortie. Donc, l'étape suivante est d'aller de l'avant et de créer une méthode pour le nouveau bouton de jeu. Donc vide public nouveau bouton de jeu. Et ici, nous allons accéder au directeur de scène. Mais avant de le faire,
nous aurons besoin d'accéder à la gestion de la scène. Ou avant même de le faire,
nous devons accéder au moteur Unity puis à la gestion de scène, très bon. Gestionnaire de scène point une scène de chargement et nous allons simplement passer là la nouvelle scène de jeu que nous voulons. On y va. Et puis nous devrons créer une méthode pour le bouton de sortie. Donc le bouton de sortie vide public. Et puis ici va simplement imprimer dans le journal de débogage savoir, il suffit de journaliser l'erreur. On a juste arrêté le jeu. Donc on a juste quitté le jeu avec quelques points d' exclamation juste pour s'assurer que c'est quelque chose de bizarre. Ok, donc la prochaine chose que nous devons faire est de nous assurer que nous
éteignons le bouton Continuer chaque fois que ce n'est pas nécessaire. Donc et commencez dès que nous ouvrons le menu principal, nous allons vérifier si nous avons une clé dans les préfs du joueur. Donc, si nous avons, par exemple, la position du joueur sur x, cela signifie
que nous avons déjà sauvé notre jeu. Cela signifie donc que le bouton Continuer peut être activé. Donc, au début, dès que nous commençons, quel accès les préfs du joueur vérifieront si nous avons ou avons une clé, et nous entrerons dans le gestionnaire de jeu. On y va. Quand nous enregistrons les statistiques des joueurs, lesquelles devrions-nous choisir ? Je pense que la meilleure option à choisir est ici, la position. C' est donc la copie la plus facile que nous allons coller ici. Donc, si elle a du bien, cela retourne vrai. Cela signifie que le bouton Continuer qui dit actif comme vrai. Sinon, si nous n'avons rien, alors le bouton Continuer, active false. Maintenant, il n'y a aucun moyen de tester cela parce que nous avons déjà enregistré plusieurs fois. Comment pouvons-nous nous assurer que nous pouvons réellement désactiver le bouton Continuer ? Donc nous allons l'éteindre et ensuite nous verrons si ça fonctionne réellement. Donc, dans la canevas du menu principal, nous avons le bouton Continuer ,
qui est celui-ci ,
et la nouvelle scène de jeu, qui va être la ville, disons que la ville de copier cela. Colle-le ici, sauvegardez ça, d'accord, et avant de le faire aussi, nous devons aller au bouton. Donc, le bouton Continuer pour l'instant ne fait rien que nous allons ajouter. Alors rappelez-vous combien de fois j'ai oublié de le faire auparavant. Maintenant, nous avançons. Donc vous voyez, nous pouvons toujours apprendre de nos erreurs et de notre nouveau jeu. Pour la sortie. Nous allons ajouter un événement onclick dans le menu principal. Allez sur le bouton de sortie du menu principal, enregistrez cela, exécutez le jeu. On y va. Nous avons le bouton Continuer, même si nous l'avons éteint, si nous cliquons sur la sortie, vous pouvez voir ici la console imprime avec juste avec le jeu continuer, ne fait rien. Mais si nous cliquons sur le nouveau jeu et que vous y allez, C'est cool ? Donc tout fonctionne parfaitement bien. Il n'y a qu'une chose qui est le chargement. Dans la vidéo suivante, nous allons commencer à charger notre jeu en créant une scène séparée pour le chargement, ce qui va être très excitant. Je te vois dans la prochaine vidéo.
89. Continuer le jeu: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, quand nous courons notre jeu, quand nous frappons le continuer, nous apparaissons dans notre jeu. Et si on appuie sur la touche M, on va aux objets. Nous pouvons voir que nous avons les articles même si nous n'avons rien ramassé, nous les avons chargés. Et si vous n'entendez pas de musique, c'est parce
que j'ai coupé l'audio pour que vous m'entendiez clairement et qu'on n'ait pas à crier sur le son. Alors ne perdons plus de temps et commençons à charger notre jeu. Oh, d'accord, donc il est temps d'utiliser notre bouton Continuer. Comment allons-nous faire ça ? Eh bien, le bouton Continuer est essentiellement un mécanisme de chargement. Il y a donc plusieurs façons de charger un jeu, mais l'un des meilleurs est de créer une scène séparée pour le chargement de notre gain comme celui d'ajouter tout dans notre menu principal. Donc, et allons-y et à nouveau ou créer une nouvelle scène. On va créer ça. Nous allons enregistrer ça dans les scènes et nous appellerons ça la scène de chargement. On y va, sauve ça. Avant d'oublier, allons dans les paramètres de construction et ajoutons l'où est-il ? La scène de chargement et le menu principal. On y va. Donc, à l'intérieur des paramètres de construction, ok, super, sauvegardez ça. Qu' est-ce qu'on va faire ici ? Eh bien, il y a quelques choses que nous devons ajouter. Donc, tout d'abord, nous aurons besoin d'ajouter, le lecteur devra ajouter le Gestionnaire audio. On ne verra pas tout ça. Cela passera en toute transparence à travers la scène de chargement. Nous allons ajouter un gestionnaire de jeu. Enfin, nous avons également besoin du canevas d'interface utilisateur. Alors que le canevas de l'interface utilisateur, je ne peux pas voir le canevas Ok, donc voilà. Via Canvas. Pour une raison quelconque, je ne pouvais pas le voir. Pas de soucis à ce sujet. Maintenant, nous avons tout réglé. La prochaine chose à faire est de créer un objet de jeu ici. Il va s'appeler le ou non, simplement le chargeur. C' est une anthère. Réinitialisons sa position. Double-cliquez dessus. Et nous allons aller de l'avant et créer un script séparé. Où devrions-nous créer peut-être la gestion de niveau ou les gestionnaires, Créons à l'intérieur des mantras. Je sens que les gestionnaires, j'aime la poubelle, tout ce dont nous n'avons pas besoin ou pas sûr où le mettre à l'intérieur des gestionnaires. Donc, le chargement de la scène ou des scènes aurait dû être appelé Scènes. Pas de soucis à propos de cette scène de chargement. On va l'ajouter à la chargeuse et on va l'ouvrir. Donc, la première chose que nous voulons est d'avoir un poids pour le temps de charger. Je ne veux pas que le chargement soit instantané. On veut juste quelques secondes avant de charger. Donc, et ici, nous allons créer un champ sérialisé où nous pouvons déterminer combien de temps nous voulons attendre. Donc flotter, façon de charger, très bien. Ok, super. Maintenant, la prochaine chose à faire est de charger la bonne scène dans laquelle nous sommes. Mais si je me souviens, si on va au gestionnaire de jeu, les données sauvegardées. Oui, dans les positions de joueur en sécurité, statistiques de joueur en sécurité. Mais nous n'avons pas sauvé la scène où nous sommes. Et ça va faire partie de votre défi. Votre défi est donc d'aller voir le gestionnaire de jeu et de définir la scène actuelle et la méthode de sauvegarde des données dans notre rendement simultané. N' ai-je pas dit que nous voulions créer une coroutine ? Oh oui, je l'ai fait. J'ai dit que nous allons attendre pour charger dans notre coroutine, donner le temps en utilisant la variable que nous avons créée. Accédez au gestionnaire de jeu et chargez les données, accédez aux quêtes et chargez les quêtes 2. Alors arrêtez la vidéo dès maintenant et allez faire ce genre de grand défi. Ok, bienvenue. Donc, dans notre gestionnaire de jeu et ici, et je vais juste le garder dans les données enregistrées et les mots à ce sujet. Donc, les préfs des joueurs, les points, et dans quoi travaillons-nous ? Ok, alors définissez la chaîne, nous créons la scène de soulignement actuelle. C' est ça. Je pense que c'est assez une clé. Et puis on accède au directeur de scène. Et c'est la partie délicate. Donc si on accède à la scène, on ne peut pas utiliser le manager ici. Donc, la gestion des scènes de points du moteur Unity, sauvegardez cette affaire. Donc, ici, directeur de scène, point. Et comment allons-nous, d'accord cependant, il y a ceci, nous allons avoir la scène active actuelle. Et nous allons obtenir le nom parce que nous définissons une chaîne. Nous allons sauvegarder ça maintenant dans notre scène de chargement. Et ici, nous allons aller de l'avant et accéder à l'énumérateur public et à la scène de chargement, nous allons l'appeler. Et ici, nous allons immédiatement rapporter le rendement. Et une nouvelle façon. Pendant quelques secondes. Attendez quatre secondes. Où le temps d'attendre, le temps ou le temps de charger ? Attendez le temps de chargement. Et qu'est-ce qu'on va faire ici ? Eh bien, tout d'abord, on va charger la scène. Donc, Scene Manager, nous ne l'avons pas, devra ajouter des services informatiques. Scène de chargement de points du gestionnaire Et nous allons accéder au lecteur prefs point getString. Et nous allons obtenir l'endroit où est le GameManager vu copier cela, collez-le ici. Fermez ça, sauvegardez ça. Maintenant, nous allons accéder aux données de chargement de points d'instance de point du gestionnaire de jeu. Et les données de quête de point d'instance de gestionnaire de quêtes chargées par point. On y va. C'est tout ce qu'il nous faut faire. Mais pour finir, nous allons vérifier si nous avons réellement
une attente pour le temps de chargement et ensuite appeler le revêtement. Donc, si le temps d'attente pour le chargement est supérieur à un ou supérieur à 0, alors nous allons commencer une co-routine qui va être la scène de chargement, et c'est tout. Sauvegardez tout ça. Et enfin, nous devrons aller dans le menu principal, le populaire bouton de vote Continuer. Et ici, nous allons appeler cette scène de « dot lot » de directeur de scène. Et nous pouvons soit nommer ceci et ici la charge vue copier de notre jeu ou nous pouvons, comme nous l'avons fait précédemment, créer une chaîne ici. Mais pour l'instant, copions simplement les scènes de chargement ou les scènes, la scène de chargement, copiez cela, collez-le ici. Sauvegarder ce chargement sauvé parce que je l'ai copié de lui. Pas de soucis à ce sujet. On va sauver celui-là. Allez également dans Paramètres de construction de fichier et nous allons ajouter aussi, nous avons déjà ajouté la scène de chargement et le menu principal. Ok, sauve ça. Et maintenant, nous allons alors que le menu principal, nous
y allons, MainMenu. Ouvrons les boutons. Le continuer. Je vais cliquer sur la toile du menu principal jaggedy, aller au menu principal, bouton
Continuer, enregistrer cela, exécuter le jeu. Encore une chose, je pense que cela va nous donner une erreur parce que nous n'avons pas réellement sauvé un jeu où nous avons la monnaie. Donc, si nous cliquons sur Continuer, nous ouvrirons la charge. Et rien ne se passe. Parce que dans notre chargement, si nous allons au chargeur, le temps d'attente pour charger comme 0, nous ne l'appelons jamais. Donc encore une fois, essayons ceci encore une fois même si je suis sûr qu'il y aura une sorte d'erreur. Continuer. Ok, alors on y va. Nous avons une erreur parce que nous n'avons pas de scène actuelle. Donc nous allons devoir aller à l'arrêt, descendre pour courir notre jeu. Les données n'ont pas été enregistrées. Quittez le menu principal. Lancez notre jeu. Continuer. Oui, on y va. Mais pour une raison quelconque, nous n'avons pas de joueur où z. alors que notre joueur va bien. Comme il apparaît, Peut-on bouger ? Oui, on peut. Mais parce que nous n'avons toujours pas mis en œuvre cela, nous venons de le faire. Je vais couper le son parce que nous
n'avons pas encore implémenté la caméra de suivi trouver notre lecteur. C' est pour ça qu'on peut les trouver. Mais comme vous pouvez le voir, nous avons tous nos articles. Si on frappe les M articles, oui, on y va. Oh, ça parce qu'on l'a ramassé. Avons-nous enregistré des articles ? Je ne suis pas sûr. D'accord. Mais nous chargeons des données. Nous savons que les données du gestionnaire de jeu fonctionnent. Donc non, en fait, si nous retournons en ville et que nous menons notre jeu, il y a un léger problème. Donc, si nous ramassons quelques articles, nous avions la clé pour sauvegarder les données, nous quittons, nous courons. On devrait voir si on, oh, je suis des objets. On y va. Nous avons les articles, nous avons plusieurs articles. Mais si nous allons maintenant au menu principal, lancez notre jeu, et cliquez sur Continuer. Nous devons résoudre ce problème là où nous voyons réellement le joueur. On ne veut pas que ça arrive, on veut le garder. Ok, donc maintenant, si on appuie sur la touche M, va aux articles ou non. Ok, donc les éléments sont correctement chargés. C' est bien. Donc c'était juste un peu un débogueur dans mon esprit. La dernière chose que nous devons corriger et le chargement dont nous avons besoin pour assurer que nous ne voyons pas le joueur ou tout cela. Nous pouvons en fait aller à la caméra principale et changer cela pour complètement noir et retirer le joueur. C' est une façon. Alors on y va. Nous les mettons à l'extérieur, nous sauvegardons cela, allez au menu principal, exécutez le jeu, continuez. Les femmes sont joueuses au milieu, pas de soucis à ce sujet. Pour une raison quelconque, le joueur va au milieu. On va juste déplacer notre caméra ici, sauf ça. Retour dans le menu principal. Lancez le jeu. Continuer. On ne voit pas le joueur. Super. Et puis on a payé dans notre jeu. On peut bouger ? On peut avoir un article ? Oui. On y va. On a tout et c'est tout. C' est notre mécanisme de chargement. J' espère que ça vous plaira. Et si vous êtes trop excité par ce qui se passait dans les deux dernières sections, je sais que ce n'est pas la chose la plus excitante à faire, mais il est très crucial d'avoir une bonne interface utilisateur, surtout quand il s'agit de jeux RPG, parce que nous allons rester dans le temps dans l'interface utilisateur et avoir des menus et ainsi de suite et ainsi de suite. Et la section suivante, nous allons commencer par notre système de combat, qui est le cœur de notre gameplay. Alors je te verrai alors.
90. Section 14 : Créer une arène de combat: Bienvenue à mes collègues développeurs de jeux avec une toute nouvelle vidéo et une toute nouvelle section, et une section très, très excitante. Donc, comme vous pouvez le voir, j'ai créé un monde et ici avec de la lave
en utilisant des sprites que j'ai laissé dans les ressources, vous pouvez également aller dans le jeu ouvert off. C' est là que j'ai eu mes ressources. Vous pouvez voir dans le alors que le fichier, les tuiles, le donjon, donc c'est sous le nom de la grotte vient de donner. Tu peux trouver ce que tu veux. Donc, quand nous lançons notre jeu, maintenant ce qui me permet de maximiser tout et le volume afin que vous puissiez entendre la musique effrayant en arrière-plan. Alors, lancez le jeu. Oui, on y va. Donc nous marchons autour de cette grotte humide avec ces trous dedans. Donc ici, nous allons avoir nos batailles avec des monstres. Nous avons de la lave dans le besoin inhumain de réparer ça juste ici parce que nous pouvons
traverser et nous avons ces falaises ici maintenant nos ailes coupées à travers, C'est un peu un problème,
mais pas de soucis à ce sujet. On peut aussi entrer ici. C' est là que se déroulera la bataille du boss. Ici, Gollum veut lancer la bague ou non, non. Column veut garder la pluie, mais Frodon veut lancer la bague,
mais il ne le fait pas non plus. Donc on verra ce qui se passe là-bas. Et ici, on peut se promener. On peut aussi mener des batailles ici. Alors peut-être des batailles faciles ici. C' est l'entrée de la grotte, donc nous avons toujours besoin d'un intérêt. Alors comment votre monstre est arrivé ici, ou votre personnage ? Comment es-tu arrivé par la porte ? Il est très important de ne pas casser l'immersion. Et nous allons voir et entendre se battre peut-être des batailles moyennes ici, une batailles difficiles, et ici nous trouverons les derniers bots. Laisse-moi mettre la vidéo en pause. Je veux dire, arrête le jeu. Je vais parler du début du combat au tour par tour. Donc je ne sais pas si vous avez déjà joué au combat au tour par tour, mais c'est plutôt comme ça. Donc nous avons, disons, trois personnages que nous avons ramassés tout au long de notre voyage. Et nous avons quelques ennemis que nous avons mis dans le monde. Nous n'aurons pas le temps. Nous aurons les noms de notre personnage, aura le HB de notre personnage, l'AMP ou le mono. C' est la magie et nous allons nous battre, mettre à jour, et chaque personnage aura de l'histoire, et donc le mot combat au tour par tour. Et c'est en fait une façon très, très moderne de jouer à des jeux. Ne pense pas que c'est vieux et pas bon. Je sais que certains d'entre vous pensent peut-être que pourquoi n'utilisons-nous pas de fourches et d'emplacements ? En fait, c'est une façon très moderne de jouer à des jeux. Beaucoup de jeux modernes tels que, Je ne suis pas sûr de ce que le nom de cette. Je pense que c'est ExComm quelque chose que j'ai oublié. Désolé. Et cela aussi j'ai oublié, mais c'est un jeu très estimé. Il a une très haute vue. Vous pouvez voir que vous pouvez utiliser des objets pendant la bataille, ce qui est très agréable. Et c'est aussi une mature que j'ai, j'ai oublié le haut de ma tête. Peut-être que c'est Persona 5. Oh, oui, c'est Persona 5. Donc, comme vous pouvez le voir, c'est une façon très moderne de jouer à des jeux et une façon très tactique. En outre, il donne un jeu en profondeur. J' ai essayé de le faire en utilisant des fourchettes, mais honnêtement, quand vous jouez un RPG, un haut vers le bas au RPG, ce n'est pas si amusant, surtout quand il s'agit de batailles de boss. Il n'y a pas beaucoup de place pour sauter et jouer. Donc, le combat au tour par tour est le système de combat parfait pour un tel, que nous sommes en train de créer. Je vais donc vous laisser avec un défi pour créer votre propre mise en page. Utilisez les tuiles que vous avez ou téléchargées pour créer l'arène. Assurez-vous que le joueur ne dépasse pas les limites et que la caméra ne sort jamais de limites. Et enfin, laissez-moi vous montrer ce que vous devez faire ici, comme nous l'avons dit, vous ajoutez la grille, vous un préfabriqué. Vous ajoutez les caméras, le gestionnaire de jeu, le joueur, le gestionnaire de niveau et le gestionnaire audio de la musique ici à la caméra virtuelle, au gestionnaire de niveau en arrière-plan. Je ne pense pas que nous aurons besoin de cela, mais assurez-vous que chaque fois que vous définissez vos tuiles que vous avez une frontière où le joueur ne peut pas traverser, donc il ne suffit pas de marcher sur, amant et ainsi de suite. Alors je vous laisse avec votre créativité, avec toute votre réflexion. Assurez-vous de valider toutes vos modifications à la fin. Et je n'aurais pas dû être sur scène ou je vais
ignorer toutes les tuiles que nous avons créées. Et c'est tout. Donc je te laisse et je te vois dans la prochaine vidéo.
91. Scène de combat: Bienvenue à mes collègues développeurs de jeux pour une toute nouvelle vidéo. Et comme vous pouvez le voir, j'ai créé la mise en page. Je sais, encore une fois, une très longue vidéo ennuyeuse de poser vos yeux. Mais comme toujours, c'est très important si vous le souhaitez,
vous pouvez aller de l'avant et mettre en œuvre votre propre mise en page de scène de bataille. Je vous recommande vraiment de le faire. C' est ton jeu. Vous devez y ajouter votre propre saveur. Mais d'ici là, ne perdons plus de temps et commençons. Bon, maintenant que nous avons mis en place notre tangente, il est temps de mettre en place notre scène de combat. Et comment va ressembler cette scène de bataille ? Disons qu'on se promène. Nous arrivons à une certaine zone de bataille qui va créer plus tard. Et nous allons commencer une bataille. Nous allons changer le contexte. Tout d'abord, nous allons mettre nos personnages autour. Et puis nous aurons quelques options. Tout d'abord, nous pouvons attaquer, utiliser la magie, utiliser nos objets, ou fuir la bataille. Ensuite, nous aurons besoin d'un panneau séparé qui affiche toutes les statistiques des joueurs. Alors combien vendons-nous chacun des joueurs avec lesquels nous jouons ? Et je vais vous montrer ce que je veux dire par les autres joueurs. Mais tout d'abord, commençons par créer le panneau ou l'ensemble de la couche de combat. Nous allons donc créer un objet de jeu vide ici. Nous allons réinitialiser sa position et nous allons appeler cet objet de jeu la scène de bataille. Nous allons créer deux couches. Nous allons donc aller dans le calque Edit. Nous allons créer deux couches. Le premier sera l'arrière-plan de la bataille, et le second sera les personnages de la bataille. Maintenant que nous avons ceci fait, la prochaine chose à faire, maintenant que nous avons fini avec cela, allons de l'avant et importons l'arrière-plan. Et j'ai trouvé cette lave fraîche et ici, donc je vais l'utiliser. Vous pouvez aller de l'avant et utiliser l'arrière-plan que vous voulez. Alors on y va. C' est la lave. Je vais le faire glisser ici et je vais définir le calque de tri comme arrière-plan de bataille. On y va. Si vous ne l'aimez pas,
pas de soucis vous pouvez utiliser n'importe quel autre. Donc je vais définir l'échelle pour être deux par deux pour qu'on puisse couvrir l'ensemble de la caméra. C' est très important ou nous pouvons le faire peut-être 1.8 par 1.8. On y va. Donc nous avons besoin d'une photo assez grande pour couvrir toute la caméra de tous les côtés. Et nous allons enfiler cette lave jusqu'à la scène de bataille et ici, et nous appellerons ça l'arrière-plan de la bataille. On y va. Maintenant, la prochaine chose que nous allons faire est que nous allons faire un clic droit sur l'objet du jeu de la scène de bataille ira à moi, et nous allons créer une toile juste pour la scène de bataille. Donc ce sera la bataille Canvas, je suppose. On y va. Double-cliquez et regardons à quoi il ressemble. Ici, nous allons créer un panneau. Donc nous allons faire un clic droit, aller à vous, je clique sur le panneau. Ce sera notre menu,
menu où nous choisissons ce qu'il faut faire avec chaque personnage. Et ça va être un peu petit. On va le poser ici. Nous allons entrer dans nos sprites, sprites, éléments d'interface utilisateur. Ce sera notre panneau par défaut. On va le transformer en chemin. Et je peux le voir ici correctement. Pourquoi ? Oh, c'est là. Ok, donc ce sera le panel qui tiendra toutes les attaques que nous voulons faire. Donc, nous allons ajouter quelques boutons dans le menu, donc nous allons faire un clic droit sur le menu, aller à, Je, aller à un bouton et nous allons aller au texte tout d'abord, supprimé à un texte Mesh Pro. Et ça va être appelé, disons attaque. Il va être audacieux, audacieux, complètement noir. Et la police va évidemment être la fête médiévale. Et l'arrière-plan du bouton sera celui que nous utilisons tout le temps. Et on y va. Donc ce sera notre bouton. On va le rendre un peu plus grand. Donc il nous faut quatre boutons pour tenir ici. Nous devons donc nous assurer que nous ajustons tout. Et comme je l'ai dit, c'est toujours la partie la plus fastidieuse de la création de notre mise en page de l'interface utilisateur des jeux, mais il est très important d'en avoir un bon. Alors laissez-moi juste rendre cela un peu plus petit et je vais
ajuster le texte pour qu'il s'adapte correctement. On y va. Donc ce sera notre premier bouton. Maintenant, nous devons le dupliquer parce que nous aurons besoin de boutons. Et on va au menu. Nous allons ajouter un composant ici, qui sera le grand groupe de mise en page de grille. Et on va tout ajuster d'ici. Alors augmentons la taille de la cellule. On y va. Nous allons ajouter un peu de rembourrage sur la gauche, un peu de rembourrage par le haut. Peut-être augmenter la taille de la cellule par la hauteur autant que possible. Peut-être diminuer la taille de la cellule à un peu d'espace entre eux. Et voilà. C' est assez bien. Je pense. Comme je l'ai dit , tout est subjectif. Vous pouvez créer vos propres mises en page comme vous le souhaitez. Donc ce sont nos quatre boutons. Peut-être augmentons la taille des cellules sur le Y. Je pense que c'est le plus que nous pouvons faire. Et nous allons changer ça pour le bouton d'attaque. Ce sera le bouton magique. Donc, nous aurons de la magie pour chacun de nos personnages. Ce seront les articles. Et ce sera le bouton Exécuter. Ou appelons ça les articles américains. Bouton Utiliser les éléments. Et changeons le texte sur chacun d'entre eux. Donc c'est une attaque. Celui-ci est la magie. Celui-ci sera les objets. Et enfin, nous aurons la course avec quelques points d'exclamation. On y va. Donc maintenant, nous avons notre bouton mis en place. Maintenant, il est temps de créer le panneau d'affichage. Donc je vais dupliquer le menu. Je vais déplacer le menu et le rendre plus grand de tous les côtés. Et nous allons supprimer tous les boutons parce que nous n'en avons pas besoin pour l'instant. On va appeler ça les statistiques des joueurs. Et puis ici, nous allons créer trois noms de textes pour chacun de nos joueurs. Donc joueur 1, joueur 2, joueur 3. Et sous chacun de ces joueurs aura des curseurs pour, tout d'abord, prendre soin du mannose ou combien de mana nous avons encore et puis combien de santé chacun de nos joueurs encore chapeau. Alors allons de l'avant et ajouter un texte Mesh Pro. Tout d'abord, ce seront les noms. Donc, je vais juste arrêter la vue de la grille pour l'instant. Éteignez-le, peut-être même réinitialisez-le, puis éteignez-le. Peut-être même l'enlever complètement. Mais on va le garder pour l'instant. Donc, ce sera le nom du texte. Par exemple, disons que c'est le nom de joueur un. Et ça va être, bien sûr, la même chose, tout mettre complètement noir. On y va, le joueur nomme un. Et moins d'un an, nous allons ajouter les deux curseurs. Donc, nous allons faire un clic droit. Et tout d'abord, laissez-moi créer un objet de jeu vide pour le joueur. Un au texte en dessous. Ou le joueur devrait être vraiment déplacer vers le bas ici et le texte devrait être réinitialisé. Donc, nous réinitialisons la position du texte par rapport à l'objet du jeu de joueur afin que nous puissions le mettre ici et nous allons juste le rendre un peu plus grand. Il s'agit donc de la taille où nous voulons définir le joueur. Bien sûr, nous allons changer celui-ci. Nous avons dit la vue de la grille, donc le joueur nomme un par exemple. Et maintenant, nous allons faire un clic droit et ici à un curseur d'interface utilisateur. Donc, ce sera le curseur de santé. Et évidemment, il y a quelques choses que nous devons changer
pour la poignée puisse être complètement enlevée. L' arrière-plan sera l'arrière-plan du curseur que nous avons ajouté. Et la zone de remplissage, ou le remplissage, le remplissage réel sera la diapositive rouge. Alors on y va. Donc maintenant, si nous allons au curseur de santé, nous l'augmentons. Voilà, ça marche, mais il y a quelques choses que nous devons changer. Donc, l'arrière-plan maintenez Alt enfoncé, cliquez sur ce bouton en bas à droite. Ensuite, allez à la zone de remplissage. Cliquez ici. Attends. Tout. Ouvre ça. Non, ce n'est pas assez bon. Laissez-moi m'assurer que tout fonctionne bien. Alors, voilà. Comme vous m'avez vu le faire, il suffit de cliquer sur le trou de remplissage, cliquer sur les ancres ici, maintenir la touche Alt enfoncée pour qu'ils aillent tous sur les bords. Et maintenant, nous devons faire quelques ajustements pour adapter tout ce qui est à l'intérieur du curseur correctement. Je sais que c'est un peu fastidieux, mais ce n'est pas nécessaire. Malheureusement. Pas tout ce que vous faites, quelque chose que vous aimez, mais c'est parfois nécessaire. Alors on y va. Maintenant, nous avons notre curseur de santé. Cliquons ici. Faisons-le glisser et rendons-le un peu plus grand. Alors on y va. Ça a l'air sympa. Nous allons dupliquer le curseur des cellules et nous le mettrons ici. Ce sera le curseur de mana. Et on va changer le film. Donc le remplissage ici va être le bleu. On y va. Comme il est configuré correctement. Oui, je pense que c'est assez bien. Donc maintenant, si on va au curseur mineur et que je
vais peut-être le rendre un peu plus épais. Alors ajoutez un peu d'épaisseur, donc c'est plus évident. On y va. Et au Health Bar, aussi un peu d'épaisseur. On y va. Ok, donc ça a l'air sympa. Peut-être qu'il faut le rendre un peu plus petit plus tard. On verra comment on va faire ça. Mais pour l'instant, disons, on
y va, joueur 1. Dupliquons le joueur. Ce sera le joueur deux. Et si nous le déplacons vers la droite, là nous allons joueur pour dupliquer cela à nouveau. Et d'accord, donc ça ne va pas. Nous savions déjà que si nous ajoutons la disposition de la grille ici, ce sera très lourd. Donc si nous essayons d'augmenter la taille de la cellule et peut-être d'augmenter la taille comme ça. Encore une fois, je rajuste tout en fonction de ce qui doit être fait. Donc, comme vous pouvez le voir, je peux choisir
le curseur santé et santé et exiger un curseur et les rendre juste un peu plus petits. Nous pouvons même choisir la largeur que nous obtenons ici et la copier
et la coller dans le curseur Santé sur le second. Et le troisième 1 quart le mana pour le mono, et pour le reste de tout. Et déplaçons ça. Ok, donc je suppose que c'est assez bon. Permettez-moi de changer quelques valeurs sur le curseur de santé afin que nous sachions qu'ils fonctionnent réellement. Et sur le mana, laissez-moi les changer pour qu'on sache qu'ils sont distincts. Alors maintenant que nous avons le joueur un, nous avons le joueur deux. Et nous avons la couche 3 avec leurs noms, avec leurs barres de santé, avec leurs barres de mana. Dans la vidéo suivante, nous pouvons commencer à exposer nos personnages. Et vous pouvez voir ici dans le mode jeu ou la vue du jeu à quoi cela va ressembler. Donc nous allons avoir les ennemis. Et ici, par exemple, 1, 2, 3, 4, 6 ennemis peuvent être. Et ici trois joueurs, plus si vous voulez, si vous voulez ajouter, par exemple, pour les joueurs, cinq joueurs, vous devrez vous assurer
d'ajouter un deuxième panneau ou presser tout ici. Et nous aurons plusieurs options. On peut attaquer normalement avec une épée ou quelque chose comme ça. On peut utiliser la magie. Si nous avons de la magie ou du mono, nous pouvons utiliser des objets ou nous pouvons fuir et des objets peuvent être, par
exemple, de l'équipement équipant une certaine arme. Peut-être que cela pourrait nous aider à vaincre un certain type d'ennemi, ou peut-être juste prendre une potion, augmenter notre mono, augmenter notre santé, et laisser se battre quelques secondes de plus. J' espère que ça vous plaira. Je sais que ces vidéos de mise en page de l'interface utilisateur sont très longues et ennuyeuses. C' est parce que tout est basé sur la subjectivité. C' est comme ça que j'ai aménagé. Peut-être que vous voulez exposer votre monde un peu différemment. Merci de m'avoir porté avec moi et je vous verrai dans la prochaine vidéo.
92. Personnages de combat: Bienvenue, mes collègues développeurs de jeux. Donc, comme vous pouvez le voir, nous avons créé beaucoup de personnages
effrayants et aussi endurcis au combat et prêts à combattre les joueurs. Donc nous avons Jimmy, Draco et le gramme, et nous avons un maître major, démonistes de phase
bleue et un mmh régulier. Nous allons donc apprendre à créer tout ça. Alors ne perdons plus de temps et commençons. Oh, ok, alors il est temps d'ajouter des personnages de combat. Tout d'abord, nous avons besoin de ces primates. Donc, nous allons aller ici, clic droit et créer un dossier pour les joueurs, les joueurs potentiels mettront tout cela dans le dossier du joueur. Et allons aux ressources et ajoutons les ennemis. Donc, ce seront les ennemis vont juste faire glisser ces feuilles de calcul et ici. Et je vais renommer ça en ennemis. Donc, voilà, vous pouvez voir que nous avons quelques ennemis. Allons-y et découpons-les. Donc, je vais appliquer ça, passer au mode sprite et je vais découper, Essayons 64 par 64. Non, ça n'a pas marché. Essayons donc 120 savoir déjà ce que nous faisons habituellement c'est que nous allons rendre cela un peu plus grand. Nous verrons que la taille est 342 par 220. Donc, on va chercher notre calculatrice. Et ici, nous allons prendre 348 et le diviser par quatre. Voilà, tu y vas. Donc c'est 987. Et puis on va prendre 202, le 0 divisé par 2, c'est 110. On va découper ça et on y va. Nous avons des tranches parfaites, trancher ça, appliquer. On y va. Donc maintenant, nous avons cet ennemi sprites tranchés. Très bien. Maintenant, nous voulons définir les positions par défaut pour le joueur et les ennemis. Alors je vais retourner ici. Rendons ça un peu plus petit. Et je vais désactiver la toile de bataille pour instant afin que nous puissions tout voir plus clairement ici. Donc, d'abord, allons de l'avant et cliquez avec le bouton droit de la souris créer un objet de jeu vide qui va être le joueur, Disons joueur 1 ou quelque chose comme ça. Et où est-il ? Il est là. Donc on va le déplacer ici. Et puis nous allons créer un, un autre objet de jeu. Et je vais vous montrer pourquoi c'est un enfant va être la position 1 et nous allons décocher ça et ensuite enfiler le joueur. Et pourquoi avons-nous fait ça ? Eh bien, parce que nous voulions que la position 1 soit exactement sur le joueur. Donc, ce que nous avons fait, c'est que nous avons créé un enfant sur le joueur qui
nous a donné la position exacte et ensuite nous retirons cela de. Donc, ce n'est qu'une astuce rapide si vous voulez une façon plus rapide de faire les choses. Donc nous allons voir le joueur dans un moteur de rendu de sprite. Renderer Sprite. On y va. On va aller voir les personnages. Les joueurs font défiler vers le bas et nous allons ajouter le joueur debout à celui-ci. Et nous allons nous assurer qu'il est un personnage de combat. Donc nous y allons ou nous pouvons, si vous voulez, le
faire affronter les ennemis dans cette direction. Je pense que celui-ci est beaucoup mieux et assurez-vous déplacer la position à l'endroit où vous voulez définir votre joueur. On va le dupliquer. Dupliquez-les encore. Alors on y va. Maintenant, nous avons trois positions pour que les joueurs commencent à attaquer avant. Mais ça à deux. Celle-ci aussi à deux heures, je veux dire trois,
désolé , désolé, désolé, voilà. Maintenant, nous avons la position un, la position deux, la position trois avec un joueur sur chacun d'eux. Bien sûr, nous changerons le sprite plus tard. Mais maintenant, allons de l'avant et créons un objet de jeu vide ici, qui va être appelé les positions du joueur. Et nous allons définir ces positions de joueur sous l'objet de jeu de position joueur. Allons de l'avant et dupliquons celui-ci. On va le déplacer de l'autre côté. Et ce seront les positions ennemies. Donc les ennemis se positionnent. Et ici, nous allons bien sûr changer ces noms ici pour les ennemis. Voyons si cela fonctionne ou si l'ennemi entre. Oui, on y va. Ça a fonctionné parfaitement honnêtement. Et nous allons bien sûr changer dans les sprites. Donc je vais juste ajouter un seul que nous avons pour l'instant. Alors quel est ce genre de pas sûr de ce que c'est ? Ce monstre bizarre va le mettre ici. Et c'est un peu petit parce que nous devons nous assurer que c'est, essayons 30 pour voir à quel point cela s'applique. Il est un peu sombre. Oui, il est un peu sombre. Trop sombre à notre goût. On voudra peut-être changer ça. Il n'est pas complètement ? Faisons en sorte qu'il ne soit pas un filtre. Appliquez ça. Je pense que c'est un beurre et peut-être essayons de lui faire 16 avec ça. D' accord. Non, non, non, pas 1632. Appliquer. D'accord. Pas de soucis. Nous allons peut-être déplacer la position de cette copie, mais en fait nous allons avoir six ou quatre ennemis. Allons en prendre quatre. Et on y va. Donc celui-ci est le quatrième. Et il va être là. Le troisième sera là. Vous pouvez en ajouter six si vous voulez. Ce n'est pas un problème. Alors celui-là, celui-là. Allons le monter un peu. Et celui-là sera là. Déplaçons le quatrième pour qu'il ne soit pas complètement dans le noir. Et le troisième, on y va. Maintenant, nous avons les ennemis, les joueurs. Maintenant, nous devons créer un script qui donne, disons, du caractère à nos personnages pétales. Allons donc dans nos scripts et nous allons créer un nouveau dossier ici. Et ce sera le dossier du système de combat. Alors les systèmes de combat Entrez, ouvrez ceci. Allons de l'avant et créons un script C-Sharp. Et ce sera la bataille. Personnages. Appuyez sur Entrée, attendez qu'elle se compile. OK, alors double-cliquez ici. Ouvrez Visual Studio. On y va. Alors maintenant, nous sommes prêts pour la bataille et n'a pas encore. Quoi qu'il en soit, tout d'abord, nous devons déterminer si c'est un joueur ou si c'est un ennemi, parce que nous avons dit que c'est un personnage de combat. Les ennemis sont aussi des personnages. Donc c'est un, ça va être un champ sérialisé, un booléen et est joueur. Donc ça va être, eh bien, s'il est un joueur, ce sera vrai. Sinon, ça va être faux. Ensuite, nous allons créer un autre champ sérialisé, qui va être un tableau de chaînes. Et ce seront les attaques disponibles pour ce personnage. Donc nous n'allons pas avoir trop d'attaques. Je pense que le feu, la glace, peut-être une sorte d'attaque de plantes. Je ne sais pas. On verra. Et puis les attaques régulières. Ensuite, nous allons avoir quelques caractéristiques pour nos joueurs ou nos personnages. Donc ça va être une chaîne publique, le nom du personnage. Bien sûr qu'on a besoin du nom. Alors ce sera un entier public. HB actuel. Donc c'est le HP actuel du personnage, le HP max de ce personnage, vk, Mano actuel du personnage, et l'homme max du personnage. Mais non seulement cela, nous avons aussi besoin de la dextérité de ce personnage. Et nous allons l'utiliser. Nous allons utiliser la dextérité pour déterminer combien de force nous pouvons appliquer. Nous allons faire la différence. Nous allons obtenir la puissance de l'arme. Et nous allons avoir, bien
sûr, la différence d'armure. Et ce seront toutes des caractéristiques qui amélioreront ou changeront. Ou comment puis-je le dire ? Influencer la manière ou la quantité de dégâts que chaque personnage inflige ou la quantité qu'il peut supporter. Et enfin, nous allons créer un booléen public, qui va être comme ça et quand les personnages qu'il meurt. Ok, donc on va sauver ça. Et maintenant, revenons à Unity o k. Donc maintenant ce que nous allons faire, c'est que nous allons prendre un de ces joueurs, ou prenons le,
ou n' importe quel joueur, n'a pas d'importance. Nous allons traîner le personnage de combat sur ce joueur. Et on va mettre quelques choses ici. Ainsi, par exemple,
un joueur ajoutera le nom. Disons que ce sera, voici Jimmy. Donc ce sera V Jimmy. Et le reste sera ajouté automatiquement au fur et à mesure que nous obtenons les informations de chaque personnage avec lequel nous jouons à partir des statistiques des joueurs. Mais il y a les ennemis. Les ennemis n'ont pas de statistiques de joueur sur eux. Nous allons donc devoir le faire manuellement pour chacun d'eux. Donc nous traînons, nous l'avons mis sur l'ennemi, et maintenant nous allons commencer à appliquer tous les changements à l'ennemi. Donc, je vais émettre avec vous comme un défi pour créer un ennemi stats. Donc, ajoutez un script aux ennemis et
les préfabriquez et définissez quelques statistiques pour ces ennemis. Et évidemment, je t'ai montré quelques sprites. Allez-y, utilisez vos propres sprites si vous avez des ennemis que vous voulez ajouter à votre jeu à leurs caractéristiques. Et les préfabriques parce que nous allons les utiliser plus tard. Alors arrêtez la vidéo dès maintenant et allez créer vos ennemis. Ok, bienvenue. Comme vous pouvez le voir, j'ai créé pour, appelons-les monstres. On a les démonistes, le mage, le maître et le visage bleu. Et c'est la phase bleue, celle-ci en tant que maître Warlocks et major. Et j'ai aussi créé trois joueurs. Donc nous avons Jimmy, nous avons Draco, et nous avons le sinistre. Et sombre est une référence à Billy et Maddie subvention sur Cartoon Network. Si tu ne l'as pas regardé. Je ne sais pas ce que tu as fait dans ton enfance. Mais de toute façon, nous avons créé trois personnages. Et si les joueurs n'ont pas de statut spécial, les
mettra à jour automatiquement. Et ce sont des joueurs, mais les ennemis ont chacun leur propre statut. Donc vous pouvez voir, par exemple, le maître mage a tous les 66 six parce qu'il est, je ne sais pas, une sorte de démon. Ensuite, nous avons les Warlocks. Il a plus de mana que HP et disons moins de dextérité et de défense, mais beaucoup plus une puissance d'arme, par exemple. Et nous avons le major qui a des défenses normales et ainsi de suite. Défense non, il n'a pas beaucoup de différences parce que je pense qu'il a un corps faible pour une raison quelconque, mais il a beaucoup de pouvoir d'arme parce qu'il a ces balles, je ne sais pas. Et la phase bleue, qui est un très, devrait être un personnage très facile à traiter. Donc c'est juste au-dessus de ma tête, comment je pense, comment je vais. J' espère que vous créez vos propres personnages à vos propres statistiques pour chacun des ennemis. Et j'espère que tu t'amuses parce que dans la prochaine vidéo, on va commencer une bataille. Alors, je te verrai.
93. Commencer une bataille: Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo où nous commencerons réellement notre bataille. Alors faisons le jeu. Disons que nous marchons pour arriver à cette position et oh non, une bataille commence. Eh bien, je l'ai fait manuellement. J' ai appuyé sur le BP, mais comme vous pouvez le voir, nous commençons la bataille et pas seulement cela, nous ne pouvons plus déplacer Jimmy jusqu'à ce que la bataille soit terminée. Alors ne perdons plus de temps et commençons. Oh, d'accord, alors il est temps de commencer quelques batailles. La première chose à faire, évidemment, est d'aller de l'avant et de créer un gestionnaire de bataille. Mais avant de le faire, nous allons créer un objet de jeu vide ici, et ce sera le mauvais manager. On va réinitialiser sa position. Et nous allons tracer la scène de bataille au chef de bataille. Et nous allons entrer dans l'arrière-plan de la bataille et nous assurer que sa position est 00. Ne vous inquiétez pas pour ça. Nous allons tout bouger plus tard ou tout simplement sauter pour maintenant et ici et nous verrons que nous allons gérer tout et juste rester sauf 0 cas. Maintenant, dans nos scripts et le système de combat, nous allons créer un gestionnaire de combat. Donc, gestionnaire de patho, appuyez sur Entrée, attendez qu'il compile. Non, on n'a pas besoin d'ouvrir ça. Ok, et on va le traîner, bien sûr, et à l'objet du jeu de gestionnaire de bataille. Et on va ouvrir ce groupe. Donc nous allons avoir besoin de quelques choses. Alors je vais les parcourir et vous dire tout. Tout d'abord, nous aurons besoin d'une instance. Donc public, statique, mais Manager Instance, enregistrez cela. Ensuite, nous avons besoin d'une variable qui garde la trace si une bataille est active ou non. Donc nous allons le rendre privé parce qu'il va être changé dynamiquement. Et ça va être, est-ce que la bataille est active vrai ? Il est actif, faux, il n'est pas actif. Ensuite, nous avons besoin d'une référence à la scène de bataille. Nous allons donc créer une scène de bataille d'objets de jeu sérialisée. Ensuite, nous avons besoin d'une référence à la position du joueur. Positions. Donc, il va être de type transformation. Et bien sûr va être un tableau parce que nous en avons plusieurs et ce sera les positions du joueur ou des positions du joueur. C' est un meilleur nom. Bien sûr, nous avons aussi besoin des positions ennemies. Ennemis positions, et aura besoin d'une référence à tous les personnages de combat disponibles, les ennemis et les joueurs. Donc, je vais créer un champ sérialisé ici, qui va être de type personnages de combat. Ce sera un tableau, et ce sera les préfabriqués du joueur parce que nous allons les instancier. Nous ne voulons pas toujours avoir les mêmes joueurs, toujours ici jouer. Nous voulons les instancier dynamiquement en fonction de l'endroit où nous allons. Et nous allons créer des préfabs de joueurs et des ennemis. Les préfabriqués ont besoin d'un point-virgule ici. Et nous aurions pu mettre tout ça sur la même ligne. Donc, je vais supprimer et ajouter une virgule. Donc, nous économisons un peu d'espace parce que ce sera notre plus gros script à ce jour. Et enfin, nous avons besoin et commençons à définir l'instance à cette instance égale à ceci, enregistrez cela. Et puis nous ne détruirons pas l'onload. Peut-être qu'on n'a même pas besoin de ça parce qu'on verra juste un peu, mais gardons ça. Suivant. Nous voulons une méthode pour commencer la bataille. Donc je vais créer un vide public. Commencez la bataille et de quoi avons-nous besoin et commencer chauve-souris ? Eh bien, tout d'abord, nous avons besoin de paramètres pour savoir quels ennemis allaient repérer, repérer, repérer. Je ne sais pas comment ça s'appelle. Quels ennemis allons-nous instancier ? Donc, les joueurs sont déjà tous disponibles. Disons qu'on marche dans un donjon. Nous ne voulons pas passer des joueurs aléatoires. Nous savons déjà qui nous avons pris le voyage avec nous, mais nous ne savons pas quels ennemis vont sortir et tanger. Donc, nous allons créer une chaîne. Et ce sera un ensemble de cordes et les ennemis à repérer. Ok, donc on va vérifier ici. S' il n'y a pas de bataille. Donc, s'il n'y a pas de bataille, alors nous allons mettre la bataille active à vrai. Et nous voulons aussi empêcher notre personnage de bouger ou de faire quoi que ce soit. Donc on travaille avec Jimmy. Nous commençons une bataille. Nous ouvrons la scène de bataille, mais nous ne voulons pas pouvoir bouger avec Jimmy. Donc encore une fois, nous allons entrer dans le gestionnaire de jeu et nous allons ajouter un autre booléen ici, qui va être la bataille, est actif. Sauvegardez ça. Et si elle est active. Ensuite, ici, nous allons ajouter une condition que la bataille est active. Nous allons sauver ça maintenant de retour. Et notre gestionnaire de bataille, quand nous avons dit la bataille active à true, nous allons accéder à l'instance de point de gestionnaire de jeu. La bataille est active pour être égale à vrai, ou elle peut être égale à la bataille active. Ou on peut accéder au gestionnaire de bataille d'ici. Mais nous allons juste donner au gestionnaire de jeu aussi simple que possible. Donc nous allons sauver ça. Et enfin, nous devons réellement tourner sur la scène de la bataille. Scène de bataille qui est active sur true. Sauvegardez ça. Et maintenant, enfin, nous devons réellement commencer la bataille après avoir appuyé sur une touche. Donc, je vais vous le délivrer comme un défi. Et votre défi est de commencer la bataille. Prenez donc une entrée clé et mettez à jour et appelez la méthode de départ de bataille. Et pour créer un nouveau tableau de chaînes, car vous allez ajouter un tableau de chaînes, vous devrez écrire à l'intérieur du paramètre nouvelle chaîne, ajouter les crochets et les noms de chaîne. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Oh, hé, bienvenue. Comment as-tu eu tout ça ? Donc ici, nous allons créer une condition if et nous allons vérifier un point d'entrée, obtenir la clé. Et bien sûr, obtenez keydown et puis keycode dot, je pense que B est une lettre appropriée à appuyer ou à appuyer sur pour appuyer. Et puis nous appellerons au début de la bataille. Donc les batailles commencent ou bouton Démarrer. Sûr pourquoi pas ? On peut commencer la bataille. Et ici, nous aurons besoin d'une chaîne. Nous devons envoyer un tableau de chaînes. Nous allons donc créer une nouvelle chaîne. Et nous allons ouvrir les crochets comme je vous l'ai montré sur la syntaxe, alors que les crochets bouclés. Et ici, nous allons écrire les noms des ennemis que nous voulons ajouter. Mais une petite chose à garder à l'esprit que nous avons besoin de noms 100% corrects. Donc, nous allons entrer ici et à l'unité dès que cela nous permettra de faire des cas. Merci. Où sont nos préfabs ? Mais deux personnages, ennemis, mage, le maître major, nous copions ceci, nous le collons ici, et puis encore nous copions le, Ajouter un démoniste, copier ceci, l'annonce ici, sauver ça. Et maintenant, allons dans Unity et testons ça. Donc, nous allons tout d'abord éteindre la scène de bataille. Oh, nous devons assigner toutes les variables afin que les positions du joueur. Ouvrons ceci et verrouillons cette fenêtre, sélectionnons les positions du joueur, faites-les glisser vers les positions du joueur. Sélectionnez toutes les positions ennemies, faites-les glisser dans les positions ennemies. Sélectionnez tous les préfabriqués ennemis,
faites-les glisser dans les préfabriqués ennemis, et allez aux joueurs. Et nous ferons exactement la même chose. Donc, comme vous pouvez le voir maintenant, nous avons tout mis en place ici. Et enfin, nous avons besoin de la scène de bataille. Voilà, tu y vas. C' est la scène de la bataille. Nous allons aller de l'avant et éteindre toutes
les positions de ou en fait tous les ennemis à l'intérieur d'ici, hors. On y va. Pourquoi tout est arrivé à un O ? Parce que c'est bon. Comme vous l'avez vu, parce que j'ai connecté le gestionnaire de bataille ici, quand j'ai cliqué, je pensais avoir éteint seulement les ennemis. Donc tout s'est éteint. C' est l'un des, vous pourriez penser que c'était stupide et c'était mais croyez-moi, vous tomberez pour ça une fois de temps en temps. Quoi qu'il en soit, tout a été désactivé de l'arrière-plan de la bataille. D' accord. Alors chef de la scène de bataille, je vais éteindre la scène de bataille. Je vais lancer le jeu et il y a une erreur, qui est un point-virgule. Ok, désolé pour ça dans notre jeu. Quel est le problème ici ? Je ne pense pas qu'il y ait un problème. On va diriger notre jeu. C' est une flèche qui vient d'apparaître. On y va. On se promène quand on a touché la touche B. Ok, comme vous pouvez le voir, je ne peux plus bouger. Notre scène de bataille s'est activée, mais elle n'est pas dans la bonne position. Alors allons-y et bougeons-le. Donc, au début de la bataille, nous tournons sur la scène de bataille ou séché avant d'activer la scène de bataille ici, nous allons aller de l'avant et obtenir la transformation. La position des points sera égale au nouveau vecteur trois. Quelle est la position que nous cherchons à atteindre ? C' est la caméra parce qu'on a un nombre d'adeptes. Donc, où que soit notre joueur, nous voulons mettre l'objet de jeu de gestionnaire de bataille juste au-dessus de lui. Nous allons donc accéder au domaine des points de caméra. Donc, point principal de la caméra, c'est la caméra principale et c'est celle que nous avons réellement besoin d'
accéder à la position transformée x dupliquée virgule, dupliquée. Et tu connais la perceuse. Pourquoi z et avec, je ne pense pas qu'on ait besoin de ça. Nous pouvons le garder comme la position transformée, la position de transformation z. Et en fait pas seulement ça, non, nous avons besoin, nous devons nous assurer que nous ne mettons pas le Zed de la caméra. Parce que si on retourne ici, on regarde la caméra, regarde où c'est. Donc c'est à 12.4 et la caméra principale est à moins 1.33. Alors assurez-vous que je suis dans le Zed est à moins dix. Nous devons donc nous assurer que nous n'avons pas accès au composant z ou à ce composant d'application, nous allons enregistrer cela. Eh bien eu un Enter sauver ça dans notre jeu. On dirige le jeu. Nous bougeons, passons à un autre côté. Donc nous sommes là quand nous avons touché la touche B. Ok, on ne voit rien pour une raison quelconque, alors que la caméra principale. Essayons encore une fois. Pourquoi avons-nous déplacé dans une très mauvaise position ? Donc B, C, c'est autour des caméras principales, 1013, clé NDB. Ok, donc quelque chose n'est pas correct. Position transformée de la caméra. Oh, ok, donc le problème était que si on clique sur l'arrière-plan de la bataille, vous verrez ici que l'arrière-plan de la bataille est à 11h06. Donc, ce que nous allons devoir faire est de le mettre à 0. Alors maintenant, quand nous courons notre jeu, nous bougeons notre personnage. Disons qu'on s'arrête ici, qu'on frappe le bec. Voilà, tu y vas. C' est juste en face de nous. Bien sûr, nous n'avons toujours pas de joueurs ou d'ennemis, mais nous le ferons dans la prochaine vidéo. Donc, si vous aimez le cours, si vous m'aimez en tant qu'instructeur, si vous vous
amusez, laissez-moi un commentaire. Ça m'a beaucoup aidé et je te verrai dans la prochaine vidéo.
94. Ajouter des joueurs: Bienvenue de retour, Mes développeurs de jeux préférés et cette vidéo et nous exécutons notre jeu. Vous pouvez voir que nous avons Draco et ici nous avons le gradient ici nous pouvons même le déplacer. On doit réparer ça. Nous devons également fléchir les collisionneurs sur les deux. Donc, quand on aura touché la touche B, commencez la bataille. Voilà, tu y vas. Vous pouvez voir que tous les personnages actifs de notre scène sont maintenant prêts pour la bataille. Alors ne perdons plus de temps et commençons. Oh, ok, alors il est temps de commencer à ajouter des joueurs et des ennemis. Commençons donc par ajouter les joueurs. Qui sont les joueurs ? Eh bien, ils le sont. Laissez-moi vous emmener où en tant que nos préfabs, joueurs de personnages de
combat, ce sont nos joueurs. Donc, ce que nous allons faire, c'est de créer ces joueurs dans notre jeu. Et puis nous allons les trouver en utilisant le gestionnaire de jeu et les ajouter aux statistiques des joueurs, qui est ici. Donc, nous allons les trouver, les ajouter aux statistiques des joueurs,
puis faire appel au gestionnaire de jeu, obtenir les statistiques des joueurs de lui, et les ajouter dans notre gestionnaire de combat. Donc d'abord, on va devoir aller dans les Préfabs chez le joueur. Et nous allons le mettre ici. On va ajouter le monstre sombre. Je ne sais pas quel est son nom. Oh, Draco. Draco. Il a des statistiques de joueur son nom comme Draco. Et Draco ici entrer et il a, voyons, XP actuel, je ne sais pas, peut-être 72, Max HP, peut-être 250 avec un HP actuel de 250, maxmin est 10, 10, 10. Voyons la dextérité. Je pense qu'il a plus de dextérité, a vendu 40 défenses. Il a une grosse armure, donc je suppose que c'est dix. Et c'est tout. Et plus tard, nous verrons ce qu'il peut manier, donc nous sauverons ça. Et maintenant, nous allons l'ajouter et au préfabriqué. Alors créons un dossier pour les joueurs. Eh bien, c'est le joueur et les joueurs. Et puis on va chercher Draco et l'ajouter ici et créer un préfabriqué original. Alors appuyez sur Entrée. Maintenant, nous avons Draco qui est d'ajouter un deuxième qui va être le 0. Et avant d'oublier Draco, nous avons le rendu sprite. Nous ne voulons pas avoir le script du joueur sur lui, donc nous allons supprimer le script du joueur, supprimer les deux animés, et c'est tout. Je pense que ça suffit. Et nous allons déplacer Draco ici. Donc la porte d'à côté est un peu trop grande, peut-être nos inconnus, mais pas de soucis à ce sujet ne le mettra ici. Et puis le deuxième joueur, où est-il ? Joueur ? On y va. Il est là. Ce sera le squelette. Allons chercher le squelette. Oh, et avant d'oublier, le, l'image du personnage devrait également être changé. Nous allons donc nous assurer que c'est l'image du personnage et nous allons appliquer ce changement. Ok, je pense que c'est tout ce qu'on a à faire pour Draco. Faisons la même chose pour les squelettes. Alors, où en étions nous ? Le joueur a gagné. Le sinistre. Copiez ça. Colle-le ici. Entrez. Voyons voir, nous devons choisir l'une des images. Qui devrions-nous choisir celui-là ? Et nous allons l'ajouter aussi ici, va déplacer le gramme apparaissant à côté de Draco. Et que devrions-nous ajouter ici ? Alors, quel est le maximum de PV ? Je pense que ça devrait être infini car c'est un squelette. Ou faisons une sorte de squelette magique. Donc, le PV va être faible. Donc on va faire 7070, disons 120. 120 dextérité. Disons 30 ou non, non. Faisons le 50. Et la différence est la garantie. Et voilà, on sauve ça. Et nous supprimerons également l'animateur et supprimerons le composant joueur. Et on va créer un préfabriqué de lui. Donc, nous allons entrer dans les couches et nous allons ajouter le sinistre car un ancien préfabriqué original sauvera ça. Ok, super, alors maintenant nous sommes prêts. Allons dans nos scripts, dans le gestionnaire de bataille. Et nous allons extraire cette méthode ici juste pour garder tout propre. Parce que comme je l'ai dit, sera l'un des scripts plus longs que nous allons créer. Donc ce sera la bataille de mise en place, appuyez sur Entrée, et nous pouvons même le fermer pour économiser de l'espace, garder tout très propre. Donc ici, nous allons, tout d'abord, comme je l'ai dit, passer en revue toutes les statistiques des joueurs sur le gestionnaire de jeu. Donc, nous allons créer une boucle for qui va aller et j'égale 0, je suis inférieur à v0. Instance de point de Game Manager, statistiques de joueur de point, longueur de point. Il s'agit d'une longueur de point de méthode et augmentera d'un à chaque fois. Ici, nous allons vérifier si la statistique du joueur auquel nous essayons d' accéder ou l'objet de jeu de ces joueurs qui est réellement actif dans la hiérarchie. Donc, nous allons vérifier si une instance de point de gestionnaire, point de statistiques de joueur. A la position que je point est acte ou point, objet de
jeu, point, actif et hiérarchie. Ensuite, nous allons parcourir nos préfabriqués et voir si nous avons ce personnage disponible. Donc, nous allons à nouveau créer une boucle à l'intérieur parce que nous ne voulons pas réellement instancier le préfabriqué. Nous avons le préfabriqué et laissez-moi vous montrer à nouveau. Le préfabriqué ici est différent du personnage de combat que nous sommes allés instancier. Donc nous voulons avoir le nom. Et sur la base de ce nom, nous voulons aller aux Prefabs qui sont sur le chef de bataille. Donc nous sommes z les préfabriqués du joueur. On y va. Et puis nous voulons vérifier si nous avons ce préfabriqué disponible. Et puis nous allons le mettre avec un personnage de combat sur lui. C' est donc la différence entre le joueur régulier et un personnage de combat. Donc, nous sommes, sont en boucle à travers. Donc, parce que nous utilisons déjà l'IA, nous allons utiliser j. Et vous pouvez utiliser n'importe quel type de variable que vous voulez. Vous pouvez même le nommer quelque chose de plus sophistiqué et plus indicatif de ce que nous traversons, mais je ne pense pas que ce soit nécessaire pour l'instant. Donc, pour j est égal à 0 et j est inférieur aux préfabriqués du joueur. Le joueur précrée la longueur des points. C' est parce que nous sommes en boucle à travers les préfabriqués du joueur et cela devrait être j. Nous allons vérifier si le joueur préfabriqué à la position j que nous regardons à travers, le nom du personnage point est égal au gestionnaire de jeu, par exemple, les statistiques des joueurs de points. Et je pense que nous aurions pu dire ces
statistiques de joueur quelque part ici et vraiment rendre cela beaucoup plus simple. Pas de soucis à ce sujet pour l'instant, fouillons à travers une certaine position qui va être sur les yeux. Parce que rappelez-vous, le I est en boucle à travers les statistiques du joueur sur le gestionnaire de jeu dot nom du joueur. Et s'il y en a un, alors nous allons créer un nouveau personnage de combat, un nouveau joueur. Et ça va être égal à une fin ici que nous allons instancier. Mais non seulement nous allons instancier avec précédemment instancié sans ajouter de rotation ou de position. Mais cette fois, nous avons besoin d'une certaine position pour placer notre nouveau joueur. Et donc nous allons instancier. Et instancier ouvrira les parenthèses. Appuyez sur Entrée. Nous allons d'abord
écrire le préfabriqué du joueur à la position j.
Donc, écrire le préfabriqué du joueur à la position j. si vous ne vous souvenez pas du format de l'Instantiate, vous pouvez le voir ici. Vous pouvez voir que nous avons beaucoup de variations. Nous pouvons donc ajouter un parent avec une position et la rotation et aussi un parent. Donc, nous cherchons à définir l'original. Et voici l'objet que nous voulons instancier la position que nous allons mettre comme la position que nous avons créée pour les joueurs dans la vidéo précédente, la rotation, qui va être très simple et puis le parent . Alors, quelle est la position ? Ça va être la position du joueur. À la position I, la position. Ensuite, nous allons accéder à la position du joueur à la position I dans le tableau. Et nous allons simplement le définir comme la rotation, ce qui nous donnera la rotation par défaut de la transformation. Je ne veux pas le changer. Et enfin, nous voulons définir le parent comme point de joueur. On y va. On sauve ça. J' espère que vous savez ce qu'on fait ici. Nous obtenons l'objet, le préfabriqué que nous voulons instancier. Nous le mettons à la position que nous avons définie dans notre jeu avec le réglage de la, laissez-moi vous montrer ce que je veux dire. Alors rappelez-vous quand nous avons créé les positions ici
, les positions 1, 2, 3, nous les avons ajoutées ici. Là, ils sont dans la position du joueur, donc nous les mettons comme ici, les mettant avec la même rotation et le même parent et en nous assurant, je veux dire, désolé que le parent soit la position à. Ainsi, par exemple, cela deviendra le parent du joueur que nous instancions. Ok, super. Donc ils sont désactivés. On peut même les supprimer. Nous n'en avons pas besoin, mais nous les gardons juste pour nous assurer que nous sommes dans la bonne position. Eh bien, ça a bien expliqué. Maintenant, nous voulons suivre nos personnages et pour cela nous allons créer une liste. Nous voulons donc garder une trace des personnages actifs. Et ce sera, bien
sûr, un défi pour vous. Et votre défi sera de créer une liste. Donc, créez une variable qui est une liste de caractères de combat de type. Ce sera la liste qui garde une trace
des caractères actifs et vous devrez l'initialiser. Enfin, ajoutez des couches à la liste dans la méthode que nous avons créée. Donc, créez la liste et instanciez-la en utilisant une nouvelle liste. Bien sûr que tu le sais maintenant. Et enfin, une fois que nous avons fini de créer le joueur, de configurer le joueur ou d'ajouter le joueur comme vous voulez l'appeler, assurez-vous de les ajouter à la liste des personnages. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bon, bienvenue. J' espère que ce n'était pas si dur. Se déplacera vers le haut. Et ici, nous allons, créons un champ INR, donc sérialisé. C' est une liste de personnages de combat de type. Et ça s'appellera les personnages
actifs ou célibataires actifs ou tout ce que vous voulez les appeler. Et ça va être une liste de personnages de combat. C' est là que nous avons instancié. Maintenant, il est temps d'ajouter à cette liste. Et une fois que nous avons fini de créer, d'instancier et de configurer tout, nous allons ajouter ce nouveau joueur que nous avons créé à la liste. Et nous allons le faire en appelant les caractères actifs dot add. Et cela, comme vous pouvez le voir, annonces, tout élément ou tout élément de type, personnage de combat. Donc, point ajouter. On y va. Vous pouvez le voir. Entrez ouvrez les crochets et ajoutez le nouveau joueur. Donc nous allons sauver ça. Retournons ici. Laissons notre gain et voyons s'ils instancient. Comme vous pouvez le voir, nous avons les personnages ici. Nous pouvons le déplacer parce que, parce que ceux-ci sont a encore un corps rigide, retirez-les. C' est drôle. Donc, et nous devons bien sûr changer la couleur, mais pour l'instant nous ne allons pas nous inquiéter à ce sujet. Donc, si nous allons à ce point, nous allons frapper le BP et nous avons les personnages mis à jour ici. Pourquoi c'est ça ? Parce qu'allons au chef de bataille et à la scène de bataille. Position du joueur V. Donc, la position du joueur pour une raison quelconque est là-haut. Même si ça aurait dû être là. Ça s'éteint. Arrêtez ça. Donc, la position du joueur est à 000. Voyons ce qui se passe. Donc, la position du joueur est à la position 0, mais la position 1 est ici. On va devoir changer un peu. Donc, nous allons nous assurer que la position du joueur. Voyons voir, voyons. Donc, nous mettons la transformation cette position à la position de la caméra, et c'est le gestionnaire de bataille. C' est donc tout ce gestionnaire de bataille qui est actuellement à 0. La scène de bataille est à 0, la position de combat est à 0. Donc maintenant, toutes ces trois positions doivent être déplacées ici à 0. Cela changera tous, donc nous allons simplement les déplacer comme un seul objet. Et maintenant, on y va, ils sont là. Sauvons ça. Essayons encore ça. On devrait peut-être le modifier plus tard. Donc je vais juste appuyer sur la touche B. On y va. Comme vous l'avez vu, nous devons modifier un peu plus. Et on va les poser un peu. Exécutez le jeu. Déplaçons juste pour nous assurer qu'il ne s'agit pas de la position du joueur. Nous y allons, donc ils sont dans la bonne position. On les a chargés. Et vous pouvez voir ici le sombre Draco et Jim. J' espère que ça vous plaira. J' espère que vous avez tout arrangé. Peut-être que leurs positions ont encore besoin d'un peu plus de modifications, mais je pense que c'est assez bon pour l'instant. Et la prochaine vidéo, nous allons ajouter nos ennemis au jeu. Alors je te verrai alors. Et au fait, avant que je parte, il y a un petit truc que nous pouvons faire ici. Donc, disons que nous choisissons toutes ces positions. On veut les mettre ici, d'accord, alors quelle est la position ici pour ces joueurs ? Nous pouvons choisir l'un d'entre eux ou choisir. Par exemple, laissez-moi juste voir. Cliquez ici et copiez la position. Quittez le jeu. Choisissez-les à nouveau. Cliquez ici, collez les positions. Et j'espère que cela fonctionne. Je ne suis pas sûr que ça marche. Laissons le jeu. Peut-être que vous devriez faire pour chacun d'eux avait été majuscule. Évidemment, cela n'a pas fonctionné. Donc maintenant chacun d'entre eux devrait être sur une position distincte. Et on va le déplacer un peu vers la droite, la droite et vers le haut. Dis ça encore. Au bécher. Oui, on y va. Je pense que c'est assez bon pour l'instant. Alors engagez vos changements, et je vous verrai dans la prochaine vidéo.
95. Ajouter des ennemis: Bienvenue à mes collègues développeurs de jeux pour une toute nouvelle vidéo. Et dans celui-ci, quand nous lançons le jeu, vous remarquerez que lorsque nous commençons une bataille,
00, maintenant il y a des ennemis qui résout porter. Donc maintenant, nous ne sommes plus seuls avec nos joueurs et l'arrière-plan. Nous avons aussi nos ennemis enfermés et chargés pour commencer à nous tuer, mais nous ne manquerons pas d'eux. Jusque-là. Ne perdons plus de temps et commençons. Oh, ok, maintenant que nous ajoutons des joueurs, il est temps de commencer à ajouter les ennemis. Mais avant de le faire, il y a une chose très importante que nous devons faire, c'est que nous voulons importer les statistiques des joueurs. Alors allons-y et faisons-le. Et juste après que nous avons ajouté le nouveau joueur à l'acte de personnages, nous allons nous séparer de l'importation des statistiques des joueurs. Donc ici, nous allons créer les statistiques des joueurs. Ce sera une variable que nous allons juste appeler le joueur. Nous avons besoin d'une variable pour garder une trace de tout. Donc on ne continue pas à l'écrire à chaque fois. Et ce sera égal à l'instance de point de gestionnaire de jeu, cette couche de statistiques à la position i. Donc maintenant nous avons référence aux statistiques de joueur de GameManager 1. Ensuite, nous allons tout additionner. Donc, si vous voulez, vous pouvez aller de l'avant et faire cela par vous-même, voir qui peut le faire plus rapidement. Et commençons. Donc, le HP actuel, je ne vais pas dire grand-chose parce que nous connaissons déjà la perceuse ici. Je pourrais même sauter sur l'étincelle. Ok, on y va. Nous avons donc importé toutes les statistiques. Mais comme vous pouvez le voir, nous commençons à avoir une bataille de départ très laide. Donc nous allons extraire ces lignes ici. Nous allons cliquer avec le bouton droit de la souris sur les actions rapides et le refactoring. Et nous allons extraire la méthode. Et remarquez à quel point c'est intelligent, parce que nous utilisons l'Ion ici évidemment, et le I n'est disponible que via cette boucle ici. Ce qui se passe maintenant, c'est que Visual Studio va réellement créer une méthode qui prend dans un argument I. C'est
donc super utile et nous allons appeler cela la couche d'importation. statistiques frappent Entrée, et on y va. Maintenant, nous avons les statistiques importantes des joueurs. Et encore une fois, nous allons choisir tout le code ici, non ? Cliquez sur Action rapide et refactoring, extrayez la méthode. Et cela va être les couches d'ajout. Alors, c'est cool ? Maintenant, quand la bataille commence avec la mise en place de la bataille, nous aurions dû configurer la bataille, en ajoutant des joueurs. Et puis à l'intérieur de l'ajout de joueurs,
nous passons à travers, nous choisissons les préfabriqués, nous les instancions, nous les ajoutons au personnage actif. Nous importons ensuite les statistiques des joueurs qui sont ici, et nous faisons tout cela et ainsi de suite. Donc, comme vous pouvez le voir, tout est propre, coupé et compréhensible. C' est très facile à lire. Mais l'étape suivante est de commencer à ajouter les ennemis. Et encore une fois, je suis déjà trop fatigué pour le faire. Donc ça va être votre défi, Ne vous inquiétez pas, c'est assez similaire à la façon dont nous ajoutons les joueurs. Vous aurez donc besoin de parcourir les ennemis que vous voulez. Vous devez vous assurer que le champ n'est pas vide car nous ne voulons pas de vides et d'amines. Ensuite, vous aurez besoin de créer une seconde boucle pour parcourir les préfabriqués ennemis, comme nous l'avons fait dans le précédent. Lorsque nous voulions ajouter, les joueurs devront comparer le nom du personnage préfabs, les ennemis apparaissent. Et vous aurez besoin d'instancier l'ennemi s'il y a un match et si nous,
si nous tombons pour une raison quelconque, mettons la position des ennemis au mauvais endroit, ce qui n'est jamais arrivé. Ensuite, vous devrez également les ajuster manuellement dans Unity. Mettez la vidéo en pause dès maintenant et allez faire le défi. Ok, bienvenue. Donc, nous allons commencer par faire une boucle. Égale à 0. Je moins que les ennemis engendrent la longueur des points. Donc, nous allons faire naître les ennemis ici. Et nous allons en ajouter un à chaque fois. Ensuite, nous allons vérifier si l'apparition des ennemis n'est pas vide. A la position i bien sûr, parce que nous ne voulons pas tout vérifier. Nous voulons vérifier une certaine position. Et c'est ainsi que nous vérifions si une chaîne est vide ou non. J' espère que vous n'avez pas été trébuché sur place. Ensuite, nous allons créer une boucle et un côté de j qui va boucler tous les préfabs. Et j plus. Et puis on va vérifier les caméras de la machine centrale. Si l'ennemi préfabriqué à la position j point nom de caractère est égal à l'apparition des ennemis à la position I. Cela signifie
que nous pouvons instancier un nouvel ennemi, qui va être de type caractères de combat. Et on l'appellera un nouvel ennemi. Il va être égal d'instancier dans. Puis elle porte, ouvre les parenthèses, ajoute une entrée ici. Il va l'être, l'objet va être le préfabriqué ennemi à la position j,
et la position ennemie à la position des yeux. Qu' est-ce que c'est ? Une amine ? Une amine est la position que j'ai la rotation de la position. Et enfin, les parents devraient être la position ennemie à l'œil. On y va, on sauve ça. Et nous allons aussi les ajouter aux personnages actifs. Si les personnages actifs point ajoutent comme l'ennemi, c'est le nouvel ennemi. On y va. Fermez ça, sauvegardez ça dans Unity. J' espère que vous avez compris ça. C' est presque 100% la même chose que d'ajouter un joueur. Nous passons par différents types de préfabs ennemis. Nous vérifions si c'est différent de 0 ou différent de vide. Donc parce que nous ne voulons pas ajouter quelque chose qui est vide. Et ce n'est qu'un petit chèque ici. Donc, à Unity, sauvegardez ça. Laissons le jeu. Donc on commence la bataille, mais il veut, oh, eh bien, ça a commencé la fuite. On y va. n'y a rien, il y a des ennemis ? Il y a quelqu'un dehors ? Oui, on y va. On a les Warlocks, la page principale, et rien d'autre. Et où sont-ils ? Où es-tu ? Où est-ce que c'est ? Oh, donc ils sont là-haut. Ok, OK, OK, OK. Donc, nous allons devoir déplacer tout ça vers le bas. Et voyons la position ennemie. Pourquoi il y en a ? C' est donc la position ennemie. Peut-être qu'il devrait être remis à 0. Revenons à 0, 0, non, non, non, non, ça ne devrait pas être à 0. Ou peut-être, pourquoi ne pas le faire ? Nous allons donc déplacer toute la position du joueur vers le coureur. Mais puis nous allons peut-être les déplacer vers le bas, lancer le jeu. Et cela aurait dû être plus bien organisé, mais pas de soucis à ce sujet. Déplaçons les vers le bas. Je bouge juste maintenez enfoncé, maj, cliquez sur tous, déplacez-les quelque part. D' une certaine manière, exécutez le jeu J' avais le BP. Oups, il y en a encore là-haut. Oui, on y va. C'est comme ça qu'ils devraient ressembler. Donc on va quitter le jeu. Ceux encore, déplacez-les vers le bas, mais déplacez-les vers la droite. Lancez le jeu. Ça devait être, on y va. Ce sont nos ennemis qui se tiennent devant nous. J' espère que ça vous plaira. J' espère que vous avez fait le défi. J' espère que ce n'était pas trop dur. J' espère que vous n'êtes pas contrarié par les raisons pour lesquelles elles ne sont pas très bien alignées. Peut-être qu'il y a une solution plus rapide, peut-être qu'on le trouvera plus tard. J' espère que vous appréciez, j'espère que vous engagez vos changements et je vous verrai dans la prochaine vidéo.
96. Mettre le pouvoir en place le système de combat au tour: Bienvenue à Mes développeurs de jeux préférés à une toute nouvelle vidéo et celle-ci, quand nous exécutons le jeu. Quand nous commençons la bataille, nous avons les ennemis, nous avons les boutons, nous pouvons attaquer, obtenir des objets, exécuter la magie, Très cool. Vous pouvez voir que nous avons un tour ici. Donc, quand nous avons eu l'Anki une fois, deux fois, quand il s'agit de la troisième fois, parce que maintenant les ennemis attaquent, nous n'avons pas accès à l'équilibre. Alors maintenant, seuls les ennemis nous attaquent. On y va. Et quand nous finissons, parce que nous avons cinq caractères, nous commençons le tour bien sûr à 0. Alors maintenant, quand on veut passer à cinq, on retourne à 0. Nous sommes de retour au squelette et nous pouvons à nouveau accéder à nos boutons et objets d'attaque, exécuter de la magie et ainsi de suite. Alors ne perdons plus de temps, et commençons. Ok, maintenant il est temps de mettre le tour en combat au tour par tour. C' est une mauvaise blague. Commençons. Tout d'abord, il y avait un léger problème ici quand nous préparons la bataille. On a mis cette condition à l'intérieur d'ici. Mais nous devons nous assurer, et nous devons aussi savoir que lorsque nous commençons une bataille, nous devons nous assurer qu'il y a une bataille active pour toutes ces opérations. Donc, nous allons enlever la condition d'ici. On va l'additionner ici. Et nous allons supprimer ce crochet et appuyer sur l'onglet Maj. On y va. Déplacez le nettoyage de tous les espaces ici. Et on y va. Tout devrait être correct en ce moment. Et enfin, nous allons en ajouter un de plus ici. Et tout est bon que je fais. Plus petit, vraiment. Ok, donc peux-tu voir ça clairement ? D' accord. Quoi qu'il en soit, continuons. Extrayons cette méthode aussi. Ce sont les ennemis qui ajoutent. Donc, cliquez avec le bouton droit de la souris, cliquez sur Actions et refactoring, extrait méthode ajout d'ennemis Et comme vous pouvez le voir, nous obtenons également les ennemis spawn envoyé à cette méthode et ici et même crée tout. Alors, c'est cool ? Je pense que c'est vraiment cool. Vous pouvez voir qu'ils sont tous ici en train d'importer, d'
ajouter
, de définir, etc. Maintenant, nous devons mettre le tour et le combat, combat tour par tour. Nous allons créer, tout d'abord, un entier qui conserve le nombre, donc c'est le terme actuel. Et puis nous allons créer un booléen, qui va garder la trace si nous attendons notre tour en tant que joueurs. Donc, en attendant un tour. Si nous attendons le tour, il y a quelques choses que nous pouvons faire. On va sauver ça. Et enfin, nous devons également obtenir un champ sérialisé d'un objet de jeu, qui est le porte-bouton de l'interface utilisateur. Donc bouton de l'interface utilisateur plus ancien. Et pourquoi avons-nous besoin de ça ? Eh bien, parce que quand ce n'est pas le tour du joueur, nous voulons, nous ne voulons pas que les boutons soient disponibles pour qu'ils puissent appuyer sur. C' est donc une fente que nous allons remplir. Et en passant, ces deux variables n'ont pas besoin d'être des champs sérialisés, mais nous voulons les mettre en tant que tels parce que nous voulons nous assurer que tout fonctionne correctement. Maintenant une mise à jour, nous allons vérifier si elle est active au combat. Nous sommes donc dans une bataille active. Et si nous attendons le tour, alors c'était, alors nous allons
vérifier si le personnage actif au tour actuel est un joueur. Mais nous ne pouvons pas vraiment savoir si c'est un joueur parce que le joueur ici est un champ sérialisé. Donc on peut peut-être le rendre public. Mais non, nous avons une meilleure façon. Et ce sera un défi qui est de retourner le joueur. Donc, créez une méthode dans le script de caractère de combat qui retourne si le personnage est un joueur. Alors mettez la vidéo en pause maintenant. Faites le défi. Et si vous voulez aller un mile supplémentaire après avoir fini de vérifier si le personnage actif sur la poupe. En tant que joueur, puis allumez les boutons. Si ce n'est pas le cas, éteignez-les. Bienvenue de retour. C'était un défi assez simple, je crois que nous allons créer un bool public. Est joueur, retour, est joueur. De retour ici. Est joueur. Si c'est vrai, c'est juste. C' est ça. Et si c'est vrai, alors le support de bouton de l'interface utilisateur 0 vrai. Support de bouton d'interface utilisateur Else. Mais triste, active, fausse. Sauvegardez ça. Ok, génial avec cela fait l'étape suivante est d'avoir un moyen manuel d'ajouter un virage. Donc, nous allons finir ici, vérifier les entrées. Si entrée, mais obtenir la clé vers le bas. Code clé, dont le code clé n'a pas encore été utilisé. Et je crois que nous n'avons pas utilisé et cela représentera le prochain terme. Alors ici, qu'est-ce qu'on fait chaque fois qu'on passe au prochain mandat ? En fait, créons la méthode. Alors ensuite, tournez. Et nous allons le créer ici. Où devrions-nous ajouter le début de la bataille ? Ça devrait rester avec ces quatre. Ajoutons-le ici. Donc ça va être privé ou peut-être public. Gardez-le privé si nous en avons besoin et un autre script, nous pouvons facilement le rendre public, mais je ne pense pas. Si privé, vide. Prochain tour. Et qu'est-ce qu'on fait ici ? Eh bien, tout d'abord, nous devons définir le terme actuel plus, plus. Nous l'augmentons d'un seul. Mais il y a une autre chose dont nous devons garder une trace. Et c'est si le tour actuel pour obtenir un peu plus grand que les caractères actifs comptent. Donc, si le tour actuel s'il vous plaît, est supérieur ou égal à l'acte de nombre de points de caractères. Qu' est-ce qu'on va faire maintenant ? Nous le remettrons à 0. Alors que se passe-t-il dans tout ça ? Tout d'abord, nous commençons par vérifier si nous sommes dans une bataille active et nous attendons notre tour. Donc, attendre le tour peut être appliqué à la fois aux personnages actifs, qui sont des joueurs et des ennemis, afin qu'ils n'attaquent pas, ils attendent leur tour pour y arriver. Nous vérifions l'acte des caractères sur le terme actuel. Donc, le terme actuel passe par tous les joueurs puis tous les ennemis. Pourquoi ? Parce que nous sommes d'abord, je pense que les joueurs, et nous les ajoutons ici dans la liste des personnages actifs. Ensuite, nous ajoutons les ennemis, ce que nous ferons plus tard. Donc, tout d'abord, nous avons une liste de tous les joueurs. Puis sous eux, immédiatement nous avons tous les ennemis. Donc, nous les traversons. Nous vérifions en utilisant le virage actuel. Récupère le personnage actif. Si c'est un joueur, alors nous avons le porte-bouton. Si ce n'est pas un joueur, c'est un ennemi, on ne peut pas attaquer. Nous ne devrions pas voir le support de boutons pour éviter tout problème. Et nous passons au tour suivant à chaque fois. Comment pouvons-nous le faire en l'augmentant d'un ? Et si ça dépasse une certaine limite, on s'arrête. Une autre chose que nous devons prendre en compte est que lorsque nous commençons notre jeu, lorsque nous commençons la bataille, nous devons nous assurer qu'attendre le tour est vrai. Et que le terme actuel est. Maintenant, ici. Vous pouvez dire que c'est 0. Alors on y va. Nous commençons immédiatement avec un joueur avec le personnage principal, le joueur principal. Ou nous pouvons créer une plage aléatoire. Donc aléatoire cette plage, et ainsi de suite. Ce sera entre 0 et le characters.com actif. Maintenant, je crois que c'est une meilleure façon de commencer une bataille et quand il s'agit du jeu réel. Mais à des fins de test, je préférerais qu'il commence à 0. Donc, nous pouvons toujours nous assurer que nous pouvons appuyer sur la touche Fin pour aller où nous voulons et pas seulement l'avoir commence quelque part au hasard. Donc avec cela fait, nous allons sauver, je vais garder ceci ici comme un commentaire pour ceux d'entre vous qui
veulent avoir un personnage aléatoire commence à attaquer quand la bataille commence, nous allons aller dans Unity. Je vais prendre une respiration. Ok, maintenant on va diriger notre jeu. On va aller voir le chef de bataille. Nous avons le terme actuel comme 0. Nous n'attendons aucun mandat. On a le bec. Maintenant, nous attendons un tour. Quand nous avons frappé l'Anki, nous allons tourner numéro un, puis numéro 2345678. Et évidemment, nous ne voyons pas la toile de bataille parce que nous l'avons éteint. Voilà, tu y vas. Alors maintenant, essayons à nouveau. On n'a pas ajouté le support. Pourquoi la bataille Canvas a été désactivée que je viens de remarquer ce menu. Allons sur la toile de bataille. Scène allumé et les États-Unis, tandis que le menu. Donc c'est le menu, il a tous les boutons. Maintenant, nous pourrions désactiver le menu entier, mais je pense qu'il vaut mieux simplement créer un objet de jeu. O, mais nous avons le menu qui a la grille, non ? Ok, donc la disposition de la grille, éteignons le menu entier. Ce n'est pas grand. Et ajoutons simplement le menu quand c'est à notre tour, les managers disparaissent. Vous pouvez cependant, mais vous devez déplacer la disposition de la grille, assurez-vous que vous le faites. Donc, nous allons sauver ça. Nous allons tourner la scène de la bataille, diriger notre jeu. Va à la bataille. Voilà, tu y vas. Alors maintenant, où est le directeur de la salle de bain ? Alors tournez à 0. Quand on en aura un, on est à peut-être qu'on a commencé au squelette maintenant qu'on est à Monsieur, je ne sais pas. Puis un Jimmy, puis on y va. Nous ne pouvons plus cliquer sur les boutons. Encore une fois. On passe par ces deux-là. Nous sommes de retour à 0 au squelette et nous pouvons utiliser notre bouton. Donc tout fonctionne. J' espère que vous apprécierez ce cours. J' espère que vous apprendrez une leçon précieuse aujourd'hui. Je ne suis pas sûr de ce que c'était. Quelque chose à propos des virages en mouvement. Quoi qu'il en soit, nous allons engager nos changements. Maintenant. Nous le tour à tour basé combat, combat de nos changements. Et je te verrai dans la prochaine vidéo.
97. Prendre des tours: Bienvenue, mes collègues développeurs de jeux. Je n'ai rien à te montrer. On fait juste quelques choses. Nous mettons à jour le combat, nous vérifions si les joueurs sont que nous perdons si les ennemis ou que nous sommes allés et nous ne pouvons pas encore implémenter parce qu'aucun de nous ne peut attaquer. Mais dans la prochaine vidéo, nous veillerons également à ce que l'ennemi puisse attaquer et à ce qu'il fonctionne. Mais c'est une vidéo très cruciale et qui nécessite beaucoup de concentration. Alors mettez vos bouchons de réflexion, mettez votre zone de gène de concentration. C' est même un mot ? Et commençons. Oh, ok, alors maintenant nous allons de tour en tour. Mais que se passe-t-il réellement ? Eh bien, rien. Que faisons-nous entre les tours actuellement rien. Mais nous allons à chaque terme mettre à jour la bataille. Allons-y et mettons-nous à jour la bataille. Qu' est-ce que je veux dire par bouton Mettre à jour ? Nous passons par tous les actes de personnages. Nous vérifions qui a un HP actuel qui est 0. S' il a 0, on va tuer ce personnage. Et puis nous allons également vérifier si tous les,
disons que les ennemis sont morts, alors nous gagnons la bataille. Si tous les joueurs sont morts, alors nous perdons la bataille. Alors commençons. Nous allons ouvrir notre script. Et ici, dans le prochain terme est l'endroit où nous mettons à jour la bataille. Mais avant de le faire, nous devons nous assurer que l'attente du virage est réglée sur vrai. Nous attendons donc un tour. Et puis nous allons mettre à jour la bataille, fermer ça. Et maintenant, nous allons générer cette méthode. On y va, mettre à jour la bataille. Alors, qu'est-ce qu'on fait ici ? Tout d'abord, nous allons créer deux variables. Et je vous le dirai quand nous les créerons ou ils le sont. Alors, enfermez des ennemis ou appelons tout ça. Les ennemis sont cela et c'est égal à vrai. Et une seconde. Tous les joueurs sont ça. Alors, pouvez-vous quitter le chemin s'il vous plaît ? Merci. Tous les joueurs sont endettés. Et pourquoi est-ce vrai ? Eh bien, en faisant défiler vers le bas, il verra à la fin de cette bataille de mise à jour, ce sera une méthode assez importante. Vous verrez que nous allons passer par tous les HP des personnages actifs. Et si l'un d'eux a un HP qui est différent de 0, alors nous allons définir l'un d'entre eux sur false et nous n'allons pas entrer dans la condition. Nous verrons à quoi ça ressemble pendant que nous continuons pour l'instant. Tu devras me faire confiance. Donc, nous allons créer une boucle for, qui est un int de 0 inférieur à la longueur des points de caractères actifs, nombre de
points parce que ce n'est pas un tableau, c'est une liste. Et nous allons en ajouter un à chaque fois. Ensuite, nous allons vérifier si les caractères actifs à la position I, le HP actuel, est inférieur à 0. Si c'est le cas, alors nous allons le mettre à 0. Pourquoi on fait ça ? Eh bien, parce que si on regarde ici, rien ici en fait, toi, quand on allume le panneau, tu te souviens qu'on a la barre des joueurs. Nous ne voulons pas que ça devienne négatif. Donc, nous voulons nous assurer que quand il atteint moins de 0, parce que parfois les dommages que nous appliquons peuvent amener le HP à moins de 0. Nous voulons le ramener à 0. Caractère donc actif à la position I, qu'est-ce qu'il y a toujours
l'API parce que les crochets à côté de lui ne peuvent pas HP est égal à 0. Ensuite, nous continuons sur f V, point de caractère
actif AHP est égal à 0. Ensuite, nous allons tuer le personnage ici. Donc, je vais juste ajouter un commentaire, tuer des personnages ou un personnage ou autre. D' accord ? Mais si ce n'est pas le cas, donc si le point de caractère que je point HP actuel n'est pas égal à 0, alors nous allons créer un autre ici. Et nous allons vérifier si ce personnage qui n'a pas de H B égal à 0 est un joueur. Donc, si le point de caractère actif je point est joueur, nous allons définir v tous les joueurs que faux. Et si c'est le reste, si S est l'ennemi, que tous les ennemis sont égaux à faux. Ils ne sont pas tout ce qu'il y en a encore un vivant. Alors pourquoi nous traversons tous ces ennuis ? Parce que nous, nous ne voulons pas
traverser tous les ennemis à chaque fois et vérifier qu'ils sont tous vivants. Nous pensons qu'ils sont tous morts. Et puis si l'un d'eux est vivant, alors ils ne le sont plus. Et nous pouvons continuer le jeu parce que nous devons soit avoir tous les joueurs que pour perdre le jeu ou tous les ennemis que pour le gagner. Ok, donc encore une fois, allons une fois comment ce code fonctionne. Nous passons par les personnages. Nous sommes tout d'abord, vérifiant si elle est inférieure à 0, nous le mettons à 0. Nous ne voulons pas de chiffres négatifs. Je vais enlever les crochets, garder ça simple. Ensuite, nous vérifions si elle est égale à 0. Donc cette condition a dû passer par là. Ou par exemple, peut-être que pour une coïncidence, il ne passe pas en dessous, c'est exactement 0. Pas de soucis à ce sujet. Nous tuons le personnage. Sinon. Si ce n'est pas ça, nous vérifions si c'est un joueur ou si c'est un ennemi. Si c'est un joueur, nous avons dit que tous les joueurs sont dans cela encore, si c'est un ennemi, que tous les ennemis sont dedans. Pourtant. Maintenant, ici, fois que nous avons fini de faire une boucle, nous devons vérifier les ennemis et les joueurs, puis décider si nous avons gagné ou perdu. Et ça va faire partie de votre défi. Vérifiez la dette. Et tout d'abord, vous devrez créer une condition qui vérifie si tous les ennemis ou tous les joueurs sont que, alors vous devrez imprimer un message gagnant ou perdant. Et je vais vous donner un indice sur comment pouvez-vous ajouter un ou. Vous devrez vérifier tous en utilisant ces deux symboles. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Donc, tout d'abord, nous vérifions si les ennemis sont que ou tous les ennemis sont morts, ou tous les joueurs ou cela. Ensuite, nous entrons dans cette condition. Nous vérifions si c'était tous les ennemis, puis nous allons imprimer nous avons gagné. Sinon. Ça veut dire que ce sont tous les joueurs. Nous allons imprimer. On a perdu. Ou nous pouvons aussi, je pense que d'autre si tous les joueurs sont que, alors nous allons imprimer nous avons perdu. C' est juste pour une étape supplémentaire de sécurité. Et enfin, que se passe-t-il après avoir fini ? On va sortir dehors de toi. On va accéder à la scène de bataille et on l'éteint. Nous devons donc ajouter le point-virgule. Scène de bataille. Les points sont actifs, faux. Et nous allons accéder au gestionnaire de jeu et nous assurer que le joueur peut marcher à nouveau. La bataille est active comme égale à false. Alors maintenant, le joueur peut marcher à nouveau. Et enfin, la bataille est active est définie sur false. Super, alors sauvegardons ça. Et malheureusement, il n'y a pas encore moyen de tester cela jusqu'à ce que l'un de nous, soit nous ou l'ennemi attaque. Donc, dans la prochaine vidéo, nous allons nous assurer que l'ennemi peut attaquer. Je te verrai dans cette vidéo et je m'assurerai de valider tous tes changements et au revoir.
98. Attacking avec des ennemis: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons rendu le combat au tour plus automatique et dynamique. Donc, quand nous commençons la bataille, nous pouvons voir que le terme 0 tourne un déterministe à maintenant quand détermine 3, il s'éteint et vous pouvez voir que le tour passe par lui-même, puis à nouveau par son propre et remonte à 0 parce que les ennemis ont a fini d'attaquer. Alors, c'est excitant ? Il l'a fait ? Je sais, je sais. Ne perdons plus de temps et commençons. Donc nous voulons attendre entre chaque attaque ennemie. Cela signifie que nous avons besoin d'un co-working. Pourquoi on fait ça ? Eh bien, parce qu'on ne veut pas attaquer l'ennemi comme popup, pop et puis c'est parti. Non, on veut un popup. Maintenant, nous voulons avoir pape que de réaliser ce qui se passe. Voir notre vie devient un peu plus petite, voir où les dégâts ont été infligés. Et encore 10. C' est ce qu'on veut faire. Pour cela, nous allons devoir créer une co-routine. Et pour ça, je vais vous lancer un défi. Et votre défi est de créer un revêtement. Donc, configurez la pondération pour tourné à faux. Ceci définit la pondération appelée false. C' est au début de la coroutine. Ensuite, vous devrez attendre 1 seconde. Ensuite, vous devrez appeler la méthode d'attaque ennemie sont créés plus tard. Ensuite, vous devrez attendre une autre seconde et vous appellerez le prochain terme. Donc, avec toutes ces informations, arrêtez la vidéo dès maintenant. Vous pouvez même ajouter un point de plus ici. Et si vous voulez penser à une étape supplémentaire que vous voulez faire, où appelez-vous cette cour ? Quoi qu'il en soit, pour l'instant, votre défi est de créer la routine de score. Mettez la vidéo en pause
et allez faire le défi. Bon, bienvenue. Alors, où sommes-nous ? Nous allons fermer le prochain mandat, fermer la bataille de mise à jour. Et ici, nous allons créer la coroutine. C' est donc un énumérateur public. Et ça va être l'ennemi bouger co-routine parce que c'est le mouvement de l'ennemi. Donc, nous allons tout d'abord, définir la pondération à faux. Ensuite, nous allons céder, revenir. Nouveau. Attendez quatre secondes, 1 seconde. Ensuite, nous allons à NMI, qui va le créer et juste un peu. Ensuite, nous rendrons le rendement, attendons de nouveau. Et puis nous allons passer au prochain terme. Ok, super. Allons de l'avant et extrayons ceci ou générons cette méthode. Donc, ici, nous allons faire quelques choses. Tout d'abord, nous voulons une liste de tous les joueurs que nous pouvons attaquer. Nous allons donc créer une liste de type. Et parce que nous examinons les index pour l'instant, je vais vous montrer ce que je veux dire dans un peu. Donc, les joueurs équivaut à une nouvelle liste d'int. Et maintenant, nous voulons aller à une plage aléatoire. Maintenant, nous ne voulons pas aller, par
exemple, toujours au 0. Nous voulons donc avoir une gamme aléatoire de joueurs. Nous allons donc créer une variable ici qui sera
la couche sélectionnée à attaquer. Et ça va être égal aux joueurs que nous avons à une plage de points aléatoires. Aléatoire cette plage. Pourquoi tu ne me donnes pas la gamme ? L' espoir. Bon, bienvenue. Donc random.randrange. Je l'ai fait fonctionner par la force. Quel est le problème ici ? Il était confus entre, comme vous pouvez le voir, point de moteur
Unity aléatoire et le système utilisant, System.Out aléatoire. Donc, je viens de commenter le système avec espoir que cela n'aura pas beaucoup de problèmes. Continuons sur random.randrange. Nous avons le minimum. Alors quel est le minimum ? C' est le 0 parce que nous commençons à 0 à partir du nombre de joueurs, puis les joueurs. Mais comptez. Et nous fermons ça et si vous avez oublié ce qu'est les joueurs, où est-il ? Nous l'avons mis quelque part ici où nous avons créé la liste. Ok, Donc la liste ici, nous choisissons parmi les joueurs que nous avons. Et maintenant, ce que nous allons faire, c'est passer par une boucle for. Et ça va passer par les personnages actifs, le nombre de
points, augmentant I à chaque fois. On va vérifier si c'est un joueur. Personnage donc actif à la position i point en tant que joueur, et son HB est supérieur à 0. Ensuite, nous allons ajouter aux joueurs VI. Alors qu'avons-nous maintenant ? Nous avons une liste de joueurs que nous pouvons choisir au hasard pour attaquer en ajoutant leur position à cette liste d'entiers, puis en sélectionnant l'un d'entre eux pour être attaqué. Avec cela fait, la dernière chose que nous devons nous assurer est que nous appelons réellement la co-routine ennemie. Et ça va arriver ici. Après avoir réglé le bouton pour être faux, nous pouvons aller de l'avant et ouvrir les crochets bouclés ici. Et nous allons aller de l'avant et appeler le revêtement. Alors commencez le mouvement ennemi de routine, courtiser. Donc, quand nous éteignons le bouton, nous avons le revêtement et nous allons extraire cette méthode juste pour garder tout propre. Il s'appellera les boutons Activer le calque. C' est un bon nom ? Ou vérifiez si les boutons du Lecteur sont activés ou les détenteurs de boutons de vérification, vérifiez que les détenteurs de boutons de couche étaient entrés. Et je vais déplacer cette méthode. Où dois-je déplacer un ou dois-je le garder ici ? Gardez-le ici. Gardez-le ici. Nous avons la bataille de départ, l'ennemi bouge, Curtin, sauve tout ça. Ok, alors allons dans notre jeu et nous allons tester ça. Nous ouvrons la bataille. Et le, Par ailleurs, nous pouvons également créer une sorte d' avoir une sorte de musique jouer différemment quand nous entrons dans une bataille. Essayons donc d'aller au prochain terme, 1, 2, et maintenant garder une trace du terme actuel. Donc, quand nous avons eu les trois, nous avons attendu un peu, 1, 2, travailler aussi quelque chose a mal tourné car double-clic ne doit pas être négatif. Ok, Donc index hors plage, index doit non négatif et inférieur à la taille du paramètre. Je peux savoir s'il vous plaît ? Où voulez-vous dire ? Oh, ok, donc je sais quel est le problème. Le problème était ici. Donc nous créons une liste, elle est vide, et ensuite nous essayons de passer par une plage dans le compte. C' est un grand non-non. Donc ce qu'il faut faire, c'est le mettre ici. Et maintenant, quand nous faisons notre jeu, nous n'avons plus ce problème. Lancez le jeu, frappez le geeky. Et maintenant vous pouvez voir, alors tournez un 0, nous l'augmentons de 1, 2 ,
3, il sort, cherche, puis revenons à 0. C' est cool ? Alors maintenant, nous sommes de retour en attendant leur tour, donc nous attendons de jouer. Donc j'espère que vous avez apprécié et j'espère que vous créez la coroutine. Ce n'était pas trop dur. J' espère que tout ce code n'est pas trop confus. Si c'est, je recommande le vrai retour sur un chèque chaque ligne, assurez-vous que vous comprenez ce qui se passe parce que nous avançons, les
choses vont devenir de plus en plus complexes. C' est très important pour comprendre ce qui se passe. Pourquoi appelons-nous certaines choses et certaines positions ? Pourquoi on appelle cette fin ici ? Eh bien, parce que c'est l'endroit idéal pour l'appeler, nous pouvons immédiatement démarrer la coroutine dès que le bouton est désactivé. Donc je vous vois dans la prochaine vidéo où nous comprenons vraiment où l'ennemi attaque en créant des
effets sur les joueurs qui sont attaqués. Alors je te verrai là-bas.
99. Effets d'attaque: Bienvenue à mes collègues développeurs de jeux. Et dans cette vidéo, nous allons créer des effets d'attaque. Donc nous avons l'éclaircissement, nous avons le feu bleu, et nous avons une barre oblique. Oui, ce sont les attaques que je vais créer le reste. Je vous laisse trouver votre propre attaque. Fats, créez-les tous, et ne perdons plus de temps. Tous ces éléments sont disponibles sur l'art de jeu ouvert et commençons. Bon, maintenant nos ennemis attaquent. Ils choisissent le joueur qu'ils veulent attaquer. Mais il n'y a pas d'effet, et nous avons besoin d'une sorte d'effet pour que notre jeu soit bon. Alors allons de l'avant et créons quelques effets. Donc, nous pouvons voir ici et les personnages ennemis, sprites que nous avons déjà cette balle majeure et ces tentacules que nous pouvons utiliser et les boules de feu sont particulièrement agréables. Donc, je vais les utiliser et je vais aussi aller dans les sprites et créer un nouveau dossier ici. Ça va être les effets d'attaque. Et je vous ai fourni quelques effets d'attaque comme toujours, ils
sont tous issus de jeux ouverts, donc je vais ajouter celui-ci ici. C' est pour la barre oblique régulière, pour l'attaque régulière. Ensuite, nous avons la boule de feu étincelante, et nous allons utiliser celle-ci. Ajoutons-le ici. C'est un peu grand. Donc, nous pouvons dire que c'est la foudre parce que nous avons déjà peut-être le feu ou nous pouvons utiliser différents effets aura je pense que le feu. Voyons voir. Qu' est-ce qu'on a ici ? Donc les personnages, laissez-moi tout sortir. Donc celui-ci feu et celui-ci est feu. Pour qu'on puisse les utiliser. Si tu veux. Vous pouvez créer une taxe pour les ennemis séparément et 40 joueurs séparément. Je pense que nous pouvons utiliser les deux peut être certains spéciaux comme le mage ou les tentacules peuvent être utilisés juste pour les ennemis et les autres peuvent être entrelacés. Tu sais ce que je veux dire ? Alors allons de l'avant et déplacons-les vers les sprites du fait de l'attaque. Alors on y va. Ici, nous avons ces boules de feu. Nous allons les mettre tous sur une seule ligne pour créer une animation. Alors allons-y et faisons-le. Et si je mets ça, oups, allons sur la scène. Et ça ressemble au joueur. Ajoutons ceci ici. Et c'est, faisons-en l'arrière-plan. Et c'est un peu petit. Donc je vais choisir toutes ces choses et en faire 32. Voyons voir à quel point c'est grand. Ouais, c'est assez grand, je crois. Maintenant, allons de l'avant et créons une animation. Alors on va dans notre fenêtre. Ou nous allons créer un objet de jeu vide ici. Ou, vous savez, gardons cette animation barre oblique. Ou juste couper ce que vous voulez. Il est sur le fond, il devrait être sur l'arrière-plan de la bataille ou le personnage de combat, le personnage de combat un. Sauvegardez cela parce que nous voulons que ces attaques soient au-dessus des personnages. D' accord ? Nous allons donc aller à la fenêtre, aller aux animations. Les animations seront le dossier à côté de notre jeu. Et ici, nous allons cliquer sur celui-ci, cliquez sur Créer. Si nous allons aux animations Assets, passé un moment depuis que nous sommes allés aux animations. Animations, vous devriez probablement faire vos devoirs en ce moment. Donc, faites une barre oblique et assurez-vous de vous souvenir du fonctionnement des animations. Nous créons donc une animation de barre oblique. Nous allons sélectionner tous ces éléments et nous allons les traîner ici. Alors maintenant, quand on le dirige, oui, on y va. C' est notre animation. Peut-être le rendre un peu plus lent. Alors voyons. Ouais, je pense que c'est assez bon maintenant il y en a beaucoup d'autres que vous pouvez ajouter. Donc, ici, vous pouvez voir qu'en plus la boule de feu et tout il ya ces alternatives, différentes couleurs, différents types de barres obliques. Il y a le classique, j'utilise le classique. Il y a celui-ci et ceux-là et les autres utilisent celui que vous trouvez qui vous convient. C' est purement pour la démonstration et je pense que c'est un bon exemple. Mais il y a encore une chose que nous voulons faire, et c'est à la fin que vous pouvez voir ici. Donc, ce premier 1, deuxième ,
1 troisième, quatrième et cinquième. Et puis je veux l'éteindre. Donc, à ce stade, je veux appuyer sur le bouton Enregistrer et je veux que le rendu
sprite sur cette barre oblique soit désactivé. Alors, comment ça a l'air ? Donc, quand nous lançons notre jeu, comme vous pouvez le voir à la fin, il est désactivé et ensuite nous allons tout recommencer. On y va. Et maintenant, nous pouvons aussi aller aux animations et je veux m'assurer que ce n'est pas en boucle. Donc, la barre oblique ne bouclera pas, enregistrez cela. Il court. On y va, et il s'éteint à la fin. On y va. Ok, super. Maintenant, la prochaine chose à faire est que nous voulons ajouter un script à ces attaques. Donc, on va aller dans les scripts. Et je viens de remarquer à quel point on a déjà fait ça, tellement incroyable. Donc, quand le système de combat, nous allons créer un script C-Sharp appelé Tech fact. Tu te souviens quand on n'avait que quelques dossiers ? Seulement quelques dossiers, quelques scripts C Sharp. Maintenant, regardez combien nous avons et combien nous avons organisé et combien nous avons ajouté aux maîtres. Je veux dire, regarde combien nous avons besoin de faire défiler vers le bas. Je me sens très fier de moi-même et de mon point de vue bien sûr. Mais de toute façon, revenons aux affaires. Nous allons attacher l'attaque,
affecter la barre oblique d'animation. On va double-cliquer. Et là, nous allons faire quelques choses. Donc, nous allons sérialiser un champ, et ce sera le, un flotteur qui va être le temps d'effet. Alors combien de temps il y a et quand nous le détruisons. Donc nous ne voulons pas garder l'animation là dedans. Nous voulons le détruire une fois que le temps d'effet est terminé. Cela sera unique à chacune des animations. Ensuite, nous allons ajouter un autre champ sérialisé 40 effet sonore à jouer. Donc, lorsque l'enseignant affecte le nombre à jouer, parce que bien sûr, chaque animation nécessitera une sorte d'effet sonore. Et au début, nous allons accéder à l'instance du gestionnaire audio Door. Le laïc affecte le nombre S f x à jouer. Et je ne pense pas qu'on ait des effets sonores pour toutes les attaques. Je suis sûr que vous les trouverez tous. Ensuite, nous allons aller et mettre à jour. Et nous allons détruire l'objet du jeu, mais pas seulement le détruire, nous allons frapper une virgule. Et vous verrez que si nous ajoutons un T, c'est un délai facultatif pour retarder avant de détruire l'objet du jeu, et ce sera le temps de l'effet. Alors pourquoi on fait ça ? Parce que nous ne voulons pas que l'objet du jeu slash reste à traîner. Nous voulons l'instancier, l' éteindre à un moment donné après avoir fini. Donc je vais déplacer ça à 25 ici. Et je pense que nous voulons juste garder le temps d'effet. C' est combien ? Comment connait-on amature ? 25. Donc 30 est le milieu, donc c'est 1234. Je ne sais pas. Gardez-le juste pendant, je ne sais pas, 0,5 seconde. C' est, je pense que 30. Donc c'est 1 seconde à 35 et c'est un peu moins. Et c'est l'attaque de slash. Avons-nous des attaques de barre oblique et les effets sonores AudioManager ? Voyons voir les monstres du dialogue cicatrice, sort. Vérifie. Je pense que nous devrions vouloir, utilisons le dialogue pour l'instant. Quel est le dialogue ? Pour qu'on puisse le jouer ici. Donc, c'est le modificateur d'attaque, ce qui est très agréable, dissiper l'attaque, ce qui est très agréable. On l'utilisera pour le mage. Je sens que c'est plus effrayant. Mais comme ça, c'est le monstre. On peut l'utiliser. Et la transition de la zone, nous pouvons l'utiliser. Et je vais utiliser le dialogue ou l'attaque slash. Comment pratique, vous pouvez aller à Open jeu ofs et télécharger le vôtre. S' il vous plaît, n'utilisez pas ce que je fais. Je suis un TUV de l'école d'élite. Alors que les effets sonores de fond, le dialogue aussi. Donc, c'est un élément à couper, pour sauver cela. Ok, super. Maintenant, je vais lancer un défi. Et ce défi est d'aller de l'avant et de créer tous les autres effets. Définissez donc tous les autres effets que vous pourriez vouloir ajouter à l'attaque. Et c'est tout. C' est tout ce que vous devez faire dans ce défi. Le feu, les sorts,
les attaques majeures, tout ce que vous voulez, créent autant de conjoints que vous voulez. Et mettez la vidéo en pause maintenant, passez au défi. Ok, bienvenue de retour. Maintenant que nous avons l'effet de barre oblique, nous allons aller aux préfabriqués. Et rappelez-vous ce que j'ai dit, à quel point je suis heureux. Je suis un peu ennuyé. Nous allons créer un nouveau dossier ici pour les infos techniques. Et nous devrions probablement gérer tous ces éléments, mais pas maintenant, nous allons ajouter la barre oblique. Appelons ça la barre oblique sans animation, donc barre oblique. Et maintenant, nous allons créer un, un autre effet. Donc on va aller aux sprites près. Et les faits d'attaque, et voyons ce que nous avons. Double-cliquez. C' est celui qu'on vient de faire. Donc, les faits d'attaque, faisons la boule de feu à plusieurs plis Sprite Editor. Et voyons comment on devrait trancher ça. 64, c'est trop grand. 32 par 32 tranches vers le haut. On y va, postuler. Maintenant, nous avons nos pare-feu. Nous allons nous assurer que c'est un filtre. Aucun point ne nous donne une meilleure qualité. On va traîner celui-ci ici. C' est très petit. Et nous allons le mettre sur les personnages de combat un. Et tournez. Bleu pour balle, bleu, balle. Appuyez sur Entrée. Rendons celui-ci plus grand. Donc je pense que celui-là a besoin de 16. Appliquer. Oui, on y va. C' est 16. On va ajouter un, comment ça s'appelait ? Le il a été appelé les effets d'attaque F. Oh, oui, effet d'attaque. Et créons une animation. Où êtes-vous allé ? Animations I, animations d'attaque. Bleu, boule de feu. Sauvegardez ça. Jag. Celles-ci. Mettez-les ici. Allons le faire trop vite. 20, lent 15. Oui, on y va. Je pense que c'est suffisant. Et sur le dernier, donc on va 5555, on accède à l'objet du jeu et on éteint le sprite. Et nous allons définir le temps d'effet à 0,4 seconde, et l'effet à jouer sera l'AudioManager, le fait de feu quatre. Alors quatre, sauvegardez ça. Et o préfabriqué tout à la fin. Qu' est-ce qu'on a d'autre ? Celle-là ? Et voici le, appelons-le l'éclat ou éclaircissant plusieurs plis Sprite Editor tranche. Celle-ci est une grande image que vous pouvez voir ici. Donc je pense que nous avons besoin de la tranche 256 par 256. Oui, on y va. Joli devine. Et nous allons ajouter ce parc ici. Je vais le mettre ici. Où est la boule de feu ? Oh, attendez. On a fait quelque chose de mal ? Oui. On a éteint le sprite sans vraiment toucher le record. Éteignez cela et enregistrez cette course d'arrêt. Alors, éteignez à la fin. Ok, Excellent. Donc, la dernière image s'éteint. Nous devons nous assurer que toutes les animations ne boucleront pas. Donc l'arrière-plan de la bataille de feu étincelant, un, 32. Oui, on y va. C' est un bel effet de foudre. Donc l'effet de foudre. Nous allons créer l'animation. Lightning tout en éclaircissant effet. Gardez-le à la foudre. Choisissez tous ces éléments et faites-les glisser ici. Alors voyons. Est-il capable d'abord, faisons-les 1 seconde. Oui, on y va. Je pense que c'est sympa. Je vais ajouter l'effet d'attaque. L' attaque affecte le temps sera 1 à l'audio, sonnera le feu aussi. A quoi servait le feu ? N' est-ce pas ? Ouais, pour quatre et sur le dernier, qui est
à peu près ici, ici, par ici, et on s'éteint. Arrêtez l'enregistrement, sauvegardez ça. Donc, il s'éteint sur le dernier. Mettons-le ici. Maintenant, nous avons l'effet éclaircissant. Que devrions-nous ajouter d'autre ? Les tentacules ? Nous savons donc qu'il y en a quelques autres que nous voulons ajouter. Chacun aura son propre temps d'effet, chacun aura son jeu d'effet sonore. Je vais les faire hors écran juste pour ne pas perdre plus de temps. Et je te verrai dans la prochaine quand on commencera à les utiliser sur les joueurs. Alors je te verrai alors.
100. Sélectionner des attaques: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous avons fait beaucoup de taxes qui fonctionnent réellement. Donc, quand nous avons eu l'apiculteur, nous commençons la bataille. On a attaqué le N et les ennemis. On y va. Donc, comme vous l'avez vu, ils choisissent des joueurs aléatoires. Donc, chacun des chaussures de l'ennemi, joueurs
aléatoires et choisir des attaques aléatoires. Essayons encore une fois. Oui, on y va. Joueur aléatoire. Un joueur aléatoire. Essayons encore ça. Voilà, The Lightning, à quel point c'est cool ? Donc nous utilisons la barre oblique, l'éclaircissement, les attaques violettes. C' est tellement incroyable. C' est tellement cool. Nous choisissons des joueurs aléatoires. C' est très amusant. Alors ne perdons plus de temps. Cette vidéo est assez longue et commençons. Les animations ont toutes un temps de boucle de 0 ou j'ai décoché le temps de boucle. Maintenant, nous pouvons aller de l'avant et les supprimer tous. On va sauver tout ça. Ensuite, nous allons aller de l'avant et créer un nouveau script qui s'appelle les mouvements de bataille. Donc, dans nos scripts, dans la section de combat et le système de combat, nous allons créer un script « C Sharp ». Bataille, se déplace, frappe, Entrée, attendez qu'il compile. Et ce sera un cours très spécial parce que nous n'avons pas encore fait un de ces
cours. Nous allons supprimer le comportement du matin. Donc, vous verrez en ce moment que la mise à jour et le démarrage ne peuvent plus abuser. Ce sont des fonctions régulières et nous allons les supprimer. Pourquoi on fait ça ? Parce que nous ne voulons pas vraiment attacher, mais se déplace à n'importe quoi. Nous voulons simplement la conserver comme source d'information. C' est un peu comme les éléments actifs que nous avons créés. Donc quelque part ici, les éléments Actifs, vous pouvez voir, bien que nous ayons le début ici, donc c'est un peu différent,
mais les mouvements de bataille ne seront attachés à rien. Il sera juste utilisé pour, euh, faire quelques choses. Et nous allons ajouter ici que c'est un point système sérialisable. Et cela indiquera que nous pouvons l'utiliser n'importe où. Nous allons donc créer une attaque publique String Move. Nous allons dupliquer cela quatre fois parce que nous aurons quatre types de variables. Et ici, nous allons avoir un entier pour la puissance MOOC. Nous allons avoir un entier pour le coût de mana. Parce que rappelez-vous que tous ces sorts sont mono, pas l'attaque même si nous allons définir que c'est 0. Et enfin, nous aurons ici l'effet que nous voulons utiliser. Alors, l'effet de combat, où est-il ? Bataille, bataille, bataille. mouvements de combat que nous appelons ça des mouvements ou des effets de combat ? Non, on y va. Là, il est la lutte contre les faits. Donc effet de bataille publique ou un fait de balise. Désolé pour ça. Oh mon Dieu. Ok, donc l'effet à utiliser, et nous allons l'ajouter. Revenons dans le chef de bataille. Où est le chef de bataille ? Où est-ce qu'il est allé ? Sérieusement ? Où est-ce qu'il est allé ? Donc, mais Manager, nous
voilà pour une raison quelconque avec fermer ça. Donc, nous allons à la plupart des mathématiques à nouveau et ils commencent, mais aussi. Et ici, nous allons créer un champ sérialisé, qui va être les mouvements de bataille. Et ça va être une liste de mouvements de combat. On y va. Maintenant, si on va à Unity, va voir le chef de bataille. Vous pouvez voir en ce moment que la bataille se déplace lorsque nous cliquons sur eux. Lorsque nous ajoutons un élément, cet élément a plusieurs variables à l'intérieur de celui-ci attendent déjà que nous l'ajoutions. Donc nous allons faire juste ça, va verrouiller ça. On va dans les Préfabs. L' attaque bouge, et nous allons aller de l'avant et ajouter le feu bleu. Donc ce sera la boule de feu bleue, la puissance de mouvement, disons que c'est 15. Je ne sais même pas quels seront ces chiffres. Ceux-ci doivent prendre beaucoup de temps et s'assurer que tous sont corrects. Donc on en a six. Donc le laser Move Power, disons que c'est dix, le coût de
mana est six. Et je pense que les manacles devraient être beaucoup plus. Donc le coût de mana sera de 100. Et la boule de feu bleue, les coûts de mana devraient être de 200. Le lourd aller. La boule de feu bleue. Voyons voir, nous avons l'éclaircissement. Et je crois que j'ai mal écrit la foudre. Et l'attaque sera, disons 25. Et le coût en mana sera de 120. Et ce sont des chiffres très bizarres. Je ne suis pas sûr qu'ils vont être bons quand nous essayons de les utiliser. Et je vais ajouter la barre oblique et les tentacules. Et on va ajouter ici violet. Donc, les tentacules violettes auront un pouvoir d'attaque. Tout ce que je fais vraiment tout ça sur le dessus de ma tête. Un coût de 300, la barre oblique un plus, disons 10 et le montant du coût de 0. Et le mouvement des tentacules aura une puissance de déplacement de six avec un coût de mana de 360. Ok, super, donc maintenant nous avons toutes nos attaques correctement préparées. Sauvons ça. Donc maintenant, ce que nous allons faire est de simplement supprimer dix points de santé du joueur sélectionné et l'attaque ennemie, nous allons réellement accéder à notre personnage actif sur le tour actuel va générer une attaque aléatoire que l'ennemi réel a. Donc, si nous allons à l'un des
préfabriqués ennemis et ici vous pouvez voir que nous avons les attaques disponibles. Donc maintenant, nous pouvons aimer les éléments et ajouter les noms des attaques que nous avons disponibles. Choisissez l'un d'entre eux pour attaquer l'ennemi, pour attaquer le joueur avec, et il choisira au hasard. Alors allons-y. Tout d'abord, nous allons créer le code pour cela. Nous allons revenir dans nos scripts et sur l'attaque ennemie. Après avoir sélectionné un certain joueur, nous allons créer un autre entier ici et ce sera l'attaque sélectionnée. Et ça va être une plage de points aléatoires. Et ce sera entre 0 parce que nous commençons à 00 et les personnages actifs au tour actuel, nous bouclons parce que nous voulons le caractère actif actuel, donc l'ennemi actuel que nous utilisons et nous allons accéder à la attaque se déplace. Donc, attaque coups disponibles n'est pas accès à nous parce que c'est aller aux personnages de combat ici, nous voulons revenir. Nous allons donc créer une méthode,
un tableau de chaînes publiques appelé les taupes d'attaque défaillantes. Et ici, nous allons simplement retourner les coups d'attaque disponibles. Retournons dans le chef de bataille. Donc attaque se déplace disponible, la longueur. Donc, il va choisir entre 0 et le nombre d'attaques déplacées que nous avons. Ensuite, nous allons créer une boucle. Nous allons donc parcourir la liste des mouvements de combat. Donc, quand j'égale 0, je suis inférieur à la liste des mouvements de combat que nous venons de créer. Longueur I plus, plus. Et puis ici, nous allons vérifier si la bataille se déplace moins à la position que je point déplace le nom ne serait pas ajouter un nom de mouvement. C' est donc le nom de Déplacer. Pourquoi est-ce que j'ai appelé ça l'attaque de mouvement ? Je ne connais pas le nom du mouvement et ça va être la lune. Déplacer le nom. Merci. Donc, je suis un peu hors de mon jeu. Pas de soucis à ce sujet. Michael, allez, concentrez-vous. Nous allons accéder au personnage actif sur le tournant
actuel avec le mouvement d'attaque disponible. Donc je vais copier cette ligne. Colle-le ici, et à quelle position allons-nous y accéder ? Ça va être à l'attaque sélectionnée. Donc, s'il y a une similitude entre eux, donc nous cherchons l'attaque aléatoire que nous avons obtenue de ces attaques sélectionnées au hasard, et ensuite nous la comparons. Est-ce que nous avons cette bataille à l'intérieur de notre gestionnaire de bataille ? Si oui, alors nous allons instancier. Et on va ouvrir ça. Nous n'avons pas besoin de l'assigner à une variable. Et nous allons accéder à la liste des mouvements de bataille à la position que je point l'effet d'utiliser commun. Ce sera l'objet. Maintenant, la position et la rotation de caractère actif v Joueur sélectionné pour attaquer la transformation de la position et transformer la rotation. Donc, cela va trouver, et nous ne voulons pas ajouter de parent,
nous n' avons vraiment pas besoin de le faire. Alors que se passe-t-il ici ? Nous sélectionnons au hasard un joueur. Nous sélectionnons au hasard une attaque. Nous parcourons toutes les attaques disponibles que nous pouvons avoir. Nous vérifions si nous avons l'attaque et la bataille se déplace attaque quand nous la trouvons, puis nous instancions cet effet sur la position du joueur avec sa rotation. Alors sauvegardons tout ça. Retournons à Unity. Et nous utilisons les seigneurs de guerre et la page principale quand nous commençons une bataille. Laisse-moi vérifier que nous sommes oui. Oh, le maître mage. Donc, le maître majeur, maîtrise mon âge. D' accord. Alors quel genre de mouvements le maître mmh a-t-il ? Nous allons aller aux effets d'attaque Prefabs. Qu' est-ce que tu crois qu'un maître a enfermé ? Je crois qu'il a des tentacules. Il a la foudre et il a probablement aussi le laser. Donc parce qu'il est une image de maître, je vais regarder combien hème a mono et je pense que le violet est aussi quelque chose qu'il a, les tentacules violettes. Ok, donc on va sauver ça. Et puis nous allons choisir un autre majordome, l'ennemi, les démonistes. On va les enfermer. Et plus la chance devrait avoir un peu moins d'impôt. Donc les préfabriqués, il aura le bleu loin, mais bien sûr, il n'a pas la foudre, n'a pas le laser, vous aurez les tentacules. Et disons qu'il a aussi la barre oblique, copiez-la ici. Donc il a aussi la barre oblique même si je pense qu'on n'a pas besoin de la boue, gardez-la ici. On va sauver ça et on va essayer nos batailles. Donc on va lancer le jeu. On va commencer une bataille. Nous allons voir le chef de bataille pour voir ce qui se passe ici. Fermez ça. Donc on a touché les touches N à trois. Ok, donc rien ne se passe. Oh, affaire. Donc, le problème est que lorsque nous avons changé d'attaque de mouvement pour une raison quelconque en raison de mon manque de concentration, j'ai nommé cette variable ici et commence le nom déplacé, l'attaque de déplacement. Nous avons donc changé le nom de la variable et en changeant le nom de la variable, nous avons supprimé le nom ici. Donc, quand nous sommes à la recherche et le gestionnaire de bataille et ici, donc le nom du mouvement de bataille, est-il égal à l'un des disponibles ? Bien sûr, pas parce que les disponibles sont tous, ou le nom des points de bataille se déplace sont toutes des chaînes vides. Donc, nous devons recommencer. Et allons dans les préfabriqués et copions et collez tout cela. Donc l'attaque bouge. Allons voir le manager, va verrouiller ça. Boule de feu bleue, le laser, l'éclaircissement. Nous devons nous assurer qu'ils sont exactement les mêmes. Sinon, il ne les trouvera pas. Comme vous le savez, nous travaillons en utilisant des références de chaîne. Sauvegardez cela et maintenant je suis presque sûr à 100% là. Donc, je voulais vous dire comment je débogue réellement ceci. Donc j'ai fait une impression ici et j'ai traversé. Donc je voulais juste m'assurer que nous n'arrivions pas à ce point et ici. J' ai donc ajouté une empreinte. J' ai vu que oui, nous allons en fait dans la boucle. J' ai donc ajouté une deuxième impression ici que nous instancions ou instancions. Peu importe ce qui convient à vos besoins. J' ai donc vu que nous n'entrons pas réellement dans cette condition. Alors j'ai immédiatement su que la condition ici n'était pas remplie. Pourquoi ? J' ai regardé autour de moi et j'ai remarqué qu'ils étaient vides. C' est donc un petit conseil pro pour vous. Maintenant, nous devrions tout faire fonctionner en douceur. Alors, lancez notre jeu. Le bec est quelque chose de hors commande ici. Double-cliquez, Quel est le problème ? essayer de passer trois hanches le LIGO, le Laser. Oui, on y va. Et ils ont tous les deux attaqué le squelette. Tellement gentil. Comme vous pouvez le voir, tout fonctionne correctement avec ses effets sonores. Il y a un peu de problème ici. Dès que nous commençons le jeu au réveil. Je pense que ce n'est rien de trop effrayant. Oui, je pense que ce n'est probablement rien de trop effrayant. J' espère que vous avez apprécié cette vidéo. J' espère que vous apprécierez de voir les erreurs que votre instructeur fait, le manque de concentration et où il peut vous conduire tout en développant le jeu. Donc si vous appréciez les scores, vous connaissez l'exercice, laissez-moi un commentaire. Ça m'aide beaucoup. Et je vous verrai dans la prochaine vidéo où nous commençons à attaquer avec nos joueurs.
101. Section 15 : Quantité des dommages: Bienvenue, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons en fait ajouter des dégâts des ennemis aux joueurs. Alors quand nous lançons notre jeu, appuyez sur la touche B, allez à l'ennemi Stearns. On y va, une attaque, des attaques. Et vous pouvez voir ici que nous avons eu un coup critique. Donc au lieu de 127, on en a 254. Et vous pouvez voir ici tous les dégâts qui causaient du bien. Donc, tout d'abord, nous avions le maître qui a traité 127, puis le seigneur de guerre 93. Mais au lieu de cela, parce qu'ils ont eu des coups critiques, ils sont doublés. Alors ne perdons plus de temps et commençons. Oh, ok, donc maintenant avant de passer aux joueurs qui attaquent, nous devons établir un contrôle des dégâts. Nous devons donc nous assurer que nous avons un moyen d'infliger des dégâts à l'ennemi, au joueur, et ainsi de suite. Alors, comment est réellement endommagé coq pour travailler ? Laissez-moi vous montrer et vous parler un peu du calcul du montant des dégâts. Nous avons deux variables pour les dégâts. Nous avons la dextérité et nous avons les armes, pouvoirs, l'arme raide que nous ramassons. Il a une sorte d'attributs. Nous pouvons l'utiliser avec la dextérité qui est déjà disponible sur le joueur, ce qui augmente chaque niveau. Ensuite, nous avons aussi deux variables pour la différence. Nous avons la défense, qui est sur tous les joueurs. Il pourrait s'agir de la peau qu'il a, vêtements qu'il porte, du type de construction qu'il a, et cetera. Et nous avons la défense de l'armure, donc c'est l'armure qu'il ramasse. Quelle est la différence à ce sujet, et cetera. Ne compliquez pas les choses, ajoutera juste la puissance et la différence. On n'y va pas trop. Ainsi, le montant des dégâts sera la puissance divisée par les temps de différence que le MOOC alimenté. Donc parce que nous avons dit que chaque sort ou barre oblique ou quoi que ce soit, nous aurons un certain pouvoir de mouvement. Donc, nous ajoutons ceci en compte, et ensuite nous allons juste ajouter une sorte de constante aléatoire. Enfin, nous ajouterons également une petite quantité de dégâts
critiques avec un certain pourcentage de travail. Alors allons-y et faisons-le. Donc on va aller dans le chef de bataille. Ouvrons les scripts et nous allons créer une méthode pour infliger des dégâts. Alors je vais fermer l'ennemi. Regarde comme notre méthode a déjà grandi. Je veux dire, notre script l'a déjà. Donc ici, je vais créer un vide privé, infliger des dégâts aux personnages. Et cela va être utilisé à la fois sur l'ennemi ou utilisé par l'ennemi et les joueurs. Donc, nous allons tout d'abord obtenir un paramètre qui va être le personnage sélectionné à attaquer. Donc, cela va nous donner l'ennemi que nous avons effectivement déjà joueur que nous avons réellement besoin d'attaquer. Et un autre entier qui va être la puissance de déplacement. Alors, quelle est la puissance du mouvement que nous utilisons pour
infliger des dégâts à un certain personnage est réellement. Donc maintenant, nous allons tout d'abord calculer la puissance d'attaque. Donc on va faire flotter la puissance d'attaque. Et il va être égal aux personnages actifs, qui est sur le tour actuel, la dextérité. Nous prenons donc en compte la dextérité. Ensuite, nous prenons aussi une puissance d'armement du comté qu'il a. Caractère si actif, terme actuel de puissance d'arme point. Sauve ça. Maintenant, nous allons calculer le montant. Donc flotter le montant juste, je voulais dire le montant de la différence. Donc nous allons calculer le montant de la défense que nous avons. Nous allons donc vérifier les caractères actifs. Mais cette fois, nous utilisons le personnage sélectionné pour attaquer. Nous avons donc l'acte de personnages dans la bataille. Nous choisissons le personnage sélectionné que nous voulons attaquer. Donc, à cet endroit, si on attaque avec un joueur, alors on veut attaquer un ennemi. Si nous attaquons avec l'ennemi, alors nous voulons attaquer un joueur. Nous allons donc calculer la défense
du joueur ou du personnage que nous voulons attaquer. Et nous allons également prendre en compte, je pense que vous savez déjà ce que nous voulons prendre en compte. Et c'est la défense d'armure qu'il a sur Nope. Défense de l'armure. D' accord. Comme vous pouvez le voir maintenant, nous avons l'attaque, nous avons le pouvoir. Maintenant, nous devons calculer le montant des dommages. Donc le montant des dégâts, et ce sera égal à la formule que nous avons établie. Donc, ce sera la puissance d'attaque divisée par la différence que nous avons. Nous allons ensuite le multiplier par le pouvoir de mouvement. Et nous allons aussi le multiplier par une plage aléatoire. Et ici, ça dépend vraiment de toi. Quelle quantité de hasard voulez-vous ajouter ? Je pense que 0,9 F et 1,1 f est une bonne quantité. Donc, cela nous donnera environ 90 pour cent ou 110 pour cent. C' est donc la gamme de base des dégâts que nous faisons. C' est un peu aléatoire. C' est bien parce que nous prenons en considération, par exemple, disons que le MAE fait une sorte de magie et ne frappe pas complètement le joueur. Donc c'est une belle touche, je crois. Et vous pouvez changer la formule si vous pouvez trouver une meilleure formule. C' est l'un des types les plus basiques de formules que vous pouvez également, si vous avez vos propres statistiques de joueur, vous pouvez ajouter les vôtres dans ce. Alors, qu'est-ce qu'on veut faire maintenant ? Nous voulons convertir ce montant de dégâts en un entier parce que nous l'avons comme un flotteur. Donc, nous allons taper la variable, ce qui va être le dommage à donner. Et nous allons le convertir en un entier. Et pourquoi je fais ça sur une ligne séparée ? Parce que je crois que c'est beaucoup plus clair au fur et à mesure que nous avançons. Donc, vous comprenez que nous calculons l'attaque, calculons la défense, calculons le montant des dégâts et calculons les dégâts que nous voulons donner. Ok, super. Maintenant parce que nous n'avons aucun moyen d' indiquer comment nous allons faire ou combien de dégâts nous infligeons. Nous allons utiliser le journal des points de débogage. Donc déboguer le journal de points. Et nous voulons savoir quel personnage inflige les dégâts. Donc, l'acte de caractère sur le terme actuel, le nom du point. Et nous allons concaténer et dire qu'il a traité, traité, traité. C' est comme ça que tu écris Delta, je crois. Oui. Et puis nous allons le concaténer avec le montant des dégâts. Et nous allons aussi montrer à
quel point les dégâts vont vraiment avoir un effet. Donc je veux dire, par là, nous allons concaténer aussi les dégâts à donner. Et nous allons le fermer entre ces deux crochets. D' accord ? Et nous allons aussi ajouter ici quelque chose de plus que j'ai failli oublier. Et nous le dirons ici aussi. Ainsi, par exemple, le dragon vient d'infliger un certain nombre de dégâts à. Et puis nous avons de nouveau concaténé avec le personnage ou les caractères actifs, le personnage sélectionné à attaquer. Maintenant, nous pouvons voir clairement quels sont les dommages, qui les inflige et à qui ils sont infligés. Enfin, nous allons prendre des dégâts. Est-ce que nous avons cette méthode et nos personnages, les personnages de combat ici devront créer une prise de dégâts. Donc public, vide, prendre des dégâts de HP. Et ce sera le nombre entier de dégâts à recevoir. Et ici, nous allons simplement supprimer les endommagés du HP actuel. Donc, le HP moins actuel est égal aux dégâts à recevoir. Et évidemment, lorsque le HB actuel, si le HB actuel est inférieur à 0, alors nous allons définir le HP actuel pour être égal à 0. C' est ça. On sauve ça. Je pense que nous avons un endroit pour s'occuper de cela, mais nous allons juste nous assurer que nous ajoutons cette condition ici, juste au cas où nous ne voulions pas aller en dessous de 0 avec notre HP actuel. Donc, enfin, nous obtenons l'acte de personnages. Nous allons au personnage sélectionné pour attaquer. Nous prenons les dommages HP et les dommages que nous voulons recevoir comme dommages à donner, qui est un entier parce que nous nous sommes assurés que le paramètre ici est un entier parce que le HB actuel est un entier. Et enfin, nous allons appeler cette méthode. Et où est-ce qu'on appelle ça ? On l'appelle après avoir fini d'attaquer. Donc ici, nous devrons infliger des dégâts
au personnage que nous devons envoyer au personnage que nous voulons attaquer. Donc, nous l'avons déjà ici, le joueur sélectionné à attaquer. Alors sélectionnez le joueur à attaquer et quelle est la puissance de mouvement ? Eh bien, on va le mettre ici après l'instanciation. Donc, nous allons créer une variable qui va être un entier. Le mouvement. Pouvoir. Et mettons-le à 0 pour l'instant. Et après avoir vérifié, nous nous assurons que le mouvement est disponible que le plus de puissance, il va être égal à la liste des mouvements de combat. À la position, je pointe la puissance de mouvement. On sauve ça. Nous envoyons la variable ici, nous sauvegardons cela. Et maintenant, allons de l'avant et testons tout ça. Revenons dans notre jeu. Et actuellement, la puissance ou l'attaque ne fonctionne que sur le, en utilisant l'ennemi sur le joueur. Alors on va aller de l'avant et commencer la bataille. Et nous allons passer au prochain tour. Et pour une raison quelconque, nous n'avons pas la toile qui montre. Donc, la scène de bataille du gestionnaire de bataille, la toile de bataille. Quand nous lançons notre jeu, c'est juste voir où est le problème,
c'est le BK, alors que la scène de bataille, où est le menu ? Donc encore une fois, si jamais vous rencontrez un tel problème où tout est détruit, nous devons entrer ici et nous assurer qu'il est 19 par 20, 1920 par 1080. Laisse-moi éteindre cette scène de bataille. On y va. Lancez le jeu. Appuyez sur la touche B. On y va. Allons voir le chef de bataille. Cela dit le N, et maintenant les ennemis attaquent. Oui, on y va. Donc on a déjà perdu parce qu'on a été tué pour une raison quelconque. Ce n'est pas très bon. Laissez-moi revenir ici dans la console, arrêter le jeu de courir et regardons ce qui se passe. Donc, le maître majeur a traité 128 au gramme, qui est le personnage de combat. Et puis les Warlocks del 251 à Draco. Ok, alors et puis on a perdu. De toute évidence, nous avions encore un d'eux disponible. Il y a quelque chose qui ne va pas, nous allons réparer ça plus tard, mais pour l'instant nous infligons des dégâts était juste très bon. Donc, la prochaine chose à faire est d'aller de l'avant et d'ajouter une sorte de dégâts critiques. Donc, dans le gestionnaire de bataille, nous allons fermer la bataille de mise à jour. On doit y retourner et vérifier pourquoi on est morts comme ça. Nous devons maintenant créer un peu de calculs de dégâts ou de dommages critiques. Et ça va faire partie de votre défi. Votre défi est de créer des dégâts critiques. Vous devrez créer une méthode qui renvoie une fin pour calculer les dégâts critiques avec un argument, vous devrez utiliser la valeur de point aléatoire à l'intérieur d' une instruction if et retourner la valeur endommagée fois 2. Donc, les dégâts critiques sont un dommage qui est fois 2. Enfin, imprimez le montant et le journal des points de débogage et vous devrez, bien
sûr, l'appeler d'infliger des dégâts et l'affecter à une variable. Alors arrêtez la vidéo dès maintenant et allez créer une méthode de dégâts critiques. Ok, alors d'abord, où calculons-nous les dégâts ? Eh bien, et ici nous voyons que nous avons les dégâts à donner. Nous pouvons en fait en dessous, aller de l'avant et dire que les dommages à donner va être égal à calculer Critique. Et nous allons lui donner les dégâts à donner. Maintenant, continuons et créons cette méthode. Donc, nous allons générer la méthode. Et ici, ce que nous allons faire, c'est que nous allons créer ce f, qui va aller à une valeur aléatoire. Et vous pouvez voir que cela renvoie une valeur aléatoire comprise entre 01. Donc, cela nous donnera, si vous voulez un certain pourcentage et si c'est inférieur à, disons 0,1 f. Donc nous avons 10 pour cent de chances de ce travail. Nous allons utiliser le journal des points de débogage heures. Et nous allons dire ici, le coup de chatouille de carrière. Au lieu de dégâts pour donner des points. Combien de points ou combien de points de dégâts nous infligeons ? Nous avons infligé des dégâts à donner fois 2. Et appuyez simplement sur la touche Entrée ici, puis recommencez à concaténer. Était-ce là nous y sommes allés. Donc, les dégâts critiques au lieu des dégâts réguliers à donner ou des points, les dégâts à donner fois 2 ont été infligés. Et nous allons retourner des dégâts pour donner des temps 0 fois pour sauver cela. Et mettons-les entre parenthèses juste parce que 44 pour s'assurer que cela fonctionne. Sinon, si ça ne marche pas, alors nous allons simplement retourner les dégâts à donner. Donc ce qui se passe ici, c'est qu'on vérifie. Nous obtenons une valeur aléatoire. Et si cette valeur est inférieure à 0,1, valeur de point
aléatoire nous donne, comme nous l'avons dit, un nombre compris entre 01. Donc, si elle est inférieure à 0,1, cela signifie
qu'elle a 10 % de chances de fonctionner, alors nous allons retourner les dégâts pour donner le temps 2, et nous allons l'assigner ici aux dégâts à donner. Sinon. Si ce n'est pas moins de 0,1, alors il retournera simplement les dégâts à donner. Et pour des tests, nous allons régler cela à moins de 0,8. Cela nous donne 80 pour cent de chances. Et nous dirons ici, cela doit changer à un point zéro 1 f. Sauvegardez ça. Retournons à notre jeu. Laissons le jeu. Allons sur la touche B qui est à la fin. Et d'accord, alors on y va. Tellement critique, on a juste une tête critique. Alors, au lieu de 211 points, 422, c'était bien ? Très bien. J' espère que vous avez apprécié. J'espère que vous comprenez comment tout fonctionne et je vous verrai dans la prochaine vidéo. Nous avons aussi eu un coup critique ici. Je te vois dans la prochaine vidéo.
102. Quel ennemie, attaque: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons en apprendre davantage sur systèmes de
particules et nous allons réellement les utiliser. Donc, quand nous courons notre jeu, rappelez-vous quand un des ennemis a attaqué et nous ne savions pas lequel attaque. Bien sûr, en utilisant la console que nous aurions pu connaître, mais visuellement, comment savons-nous ? Eh bien, comme vous pouvez le voir, maintenant nous savons que l'ennemi qui attaque a une petite lueur rouge autour d'eux. Ce n'est pas parfait. C' est assez sympa et ça nous donne un moyen de savoir. Ainsi, par exemple, le major attaqué en premier que la guerre manquait d'attaque en second lieu. Alors ne perdons plus de temps. Envoyez vos modifications à la fin de cette vidéo et commençons. Oh, ok, bienvenue. Donc, nous sommes morts précédemment, si vous vous souvenez dans la vidéo précédente trop vite ou nous avons perdu trop vite, C'est parce
que le joueur, Jimmy a un HP actuel de 0, donc nous allons le mettre à 100. Et aussi les dés squelette et un coup. Alors peut-être qu'on devrait les augmenter à 200 par 200. Et nous le faisons aussi pour le gramme. Donc, nous allons régler ça à deux cents, deux cents, sauf ça, appliquer les modifications. Et c'est tout ce qu'il nous faut faire. Alors gardons ça et revenons au vrai problème ici. Et c'est que nous ne voyons pas visuellement quel ennemi attaque notre joueur. Comment va-t-on le savoir ? Eh bien, il y a un moyen très simple et c'est de créer peut-être un petit cercle ou une étincelle ou peut-être une sorte de gens autour de l'ennemi qui vient d'attaquer l'un des joueurs. Comment allons-nous faire ça ? Eh bien, nous allons utiliser le système de particules de l'unité pour créer un effet. Je ne vais pas aller trop loin dans les systèmes de particules parce qu'ils peuvent être un cours tout seul. Je vais juste passer en revue les bases et vous montrer un système de particules prédéterminé qui ne sont pas nécessairement créés, mais qui a eu l'idée de. Donc je vais faire un clic droit ici. Je vais aller à l'usure résistant aux effets et au système de particules. On y va. Ainsi, comme vous pouvez le voir, nous avons déjà un système de particules définira la position de l'ensemble à 0. Et si nous décliquons le 2D, vous pouvez voir que ce sont nos particules et je
vais les déplacer à l'avant. Alors, voilà. Vous pouvez voir maintenant que nous avons ces particules qui sortent, laissez-moi simplement les déplacer plus et voilà. Donc je vais agrandir ça et nous allons jeter un oeil à ces particules. Ainsi, comme vous pouvez le voir, ils ne sont pas rendus à l'avant car ils trient la couche est différente. Rendu, nous pouvons choisir la couche de tri sur laquelle ils sont. Donc, triant le calque, mettons-les sur
les personnages de combat et la couche d'ordre un afin que nous puissions les voir clairement. Donc, comme vous pouvez le voir, ce sont nos particules. Et la façon dont ils fonctionnent, c'est que nous nous déplacons, vous pouvez voir que ce sont de petites images 2D qui font toujours face à notre façon de regarder, ce soit en mode Scène ou dans l'ambiance du jeu. Et c'est parce qu'ils veulent économiser un peu de mémoire et espace et rendre tant de particules est très, très déroutant et coeur. Alors allons voir l'inspecteur et faire quelques choses. Comme vous pouvez le voir, il y a des centaines et des centaines de choses que vous pouvez changer le genou du bruit aux forces externes à la rotation de la vitesse et tout cela. Et comme je l'ai dit, je ne vais pas entrer dans chacun d'entre eux, mais je vais essayer d'expliquer ce que nous allons faire. La première chose à faire, c'est que nous allons en faire une émission d'éclatement. Donc ici, nous pouvons ajouter la rafale. Vous pouvez voir le taux d'émission supérieur. Vous pouvez voir qu'on peut le diminuer, l'augmenter et ainsi de suite. Je vais ajouter une rafale. Je vais aller aux formes et en faire un cercle pour que nous puissions changer les formes en une sphère, par
exemple, je vais en faire un cercle. Je vais bien sûr essayer de le faire tourner. Pas de ports qui imprime Warm, Pas besoin de ça pour l'instant. Je vais le faire tourner. Donc on y va ou on peut le mettre à 0. Donc maintenant, c'est un peu éclatant comme vous pouvez le voir. Quand on le voit dans un peu. Oui, on y va. C'est l'éclatement. On peut changer l'éclatement des cycles et des comptes. Voyons le taux au fil du temps. Maintenant, on peut voir une rafale. On y va. La probabilité, l'intervalle peut être un. Et ça n'a pas vraiment d'importance parce que nous allons le faire apparaître une seule fois et ensuite disparaître. On ne veut pas être tout le temps. On peut ajouter 60 particules et ainsi de suite. Nous verrons plus tard comment tout cela va changer. Donc 60, autour 60, l'éclatement, et ensuite nous allons passer à la taille au cours de la vie. Donc ici, nous avons une option. Quelle est la taille au cours de la vie. Assurez-vous d'activer cette case à cocher et cela déterminera la taille pendant la durée de vie. Nous pouvons cliquer sur le graphique juste ici. Et nous pouvons déplacer ce système de particules. Et ici, nous avons cette option. Lorsque nous cliquons sur le graphique, nous pouvons choisir ce que la taille sur la durée de vie que nous pouvons le diminuer, augmenter, rendre le y plus grand ou plus petit, comme vous pouvez le voir comme ils se déplacent. Et c'est la vitesse à laquelle ils ont changé la taille. Donc, si nous mettons quatre ici, par
exemple, Nous y allons. Si nous l'augmentons, ils prennent du temps jusqu'à ce qu'ils deviennent plus petits. Mais ce qu'on va faire, c'est qu'on va le faire. Alors. Alors on y va. Ils commencent à un très gros, puis ils deviennent plus en plus petits jusqu'à ce qu'ils atteignent environ 0 à la minute. Oui, on y va. Je pense que c'est assez bon. Je vais fermer ça. Ensuite, nous allons définir la durée. Donc, ici, nous avons des options qui sont très, très petites. Donc, la durée ici, nous voulions moins juste une minute. Alors on y va. Maintenant, nous avons une sorte d'éclatement de pâte. Ensuite, nous devons définir la durée de vie de départ. Donc, nous allons définir la durée de vie de départ à deux. Et voilà, vous pouvez voir qu'ils disparaissent plus rapidement. On doit régler la vitesse de départ. On va peut-être le mettre à 0 ce C. Donc, comme vous pouvez le voir, ça devient une sorte de bouffée de fumée. Et quand nous l'avons réglé sur 0, vous verrez que cela arrive juste sur la position que nous voulons. On ne veut pas qu'elle éclate partout. Quand un personnage fait quelque chose, nous allons ajouter une action d'arrêt à détruire. Donc, ici, nous avons l'action d'arrêt et cela va être détruit. Cela va détruire l'objet entier parce que nous ne voulons pas le garder et toujours l'avoir répété et répété sur le joueur qui sont
l'ennemi qui vient juste de faire le mouvement ou quelque chose comme ça. Et enfin, vous pouvez changer les couleurs. Donc nous pouvons le mettre en rouge, par exemple, si vous voulez ou une sorte d'orange, peut-être rougeâtre. Et je recommande que la chaussure s'arrête maintenant et regardiez tout votre système de particules. Il y a tellement de choses avec lesquelles jouer et s'amuser. Il y a les lumières, le bruit de collision. Il y en a tellement. La couleur au cours de la vie est l'un de mes préférés. Vous pouvez changer les couleurs au cours de la durée de vie entre deux valeurs, par
exemple, ce qui est
très, très agréable et pourrait vraiment être utile dans ce cas, je le fais. Si vous le souhaitez, vous pouvez également créer un de ces systèmes de particules et me les envoyer en utilisant les vidéos sur Google Drive. J' adorerais, j'adorerais voir ce que vous venez avec parce que je ne suis pas une personne très créative. J' arrête ce travail, puis je laisse les parties créatives aux gens qui savent faire ça. Donc, je vous recommande de vraiment vous écarter de votre chemin. Prenez votre temps si vous êtes au rythme de la personne et créez quelque chose de vraiment agréable. Mais pour l'instant je pense que cette bouffée de fumée, lire une bouffée de fumée me suffit pour l'instant pour que nous puissions démontrer comment cela fonctionnera. Je vais changer cela, vais juste le garder au nom du système de particules ou peut-être le nommer au personnage. Attaquer les particules. Maintenant, nous allons le préfabriquer. Alors on va dans les Préfabs. Rendons ça un peu plus grand. Les faits d'attaque, et nous l'ajouterons ici et les faits d'attaque, nous sauverons ça. Et je vais vous lancer un défi et c'est d'instancier les particules. Vous devrez donc obtenir une référence au système de particules. Utilisez la variable appropriée qui est à vous de comprendre. Ensuite, vous devrez l'instancier avant d'infliger des dégâts. Et je vais vous donner quelques indices. Position et ou si vous voulez le faire par vous-même, oublié. Quoi qu'il en soit, la position et la transformation devraient être celles
du caractère actif sur le terme actuel. Donc, ce système de particules indique quel caractère attaque, donc nous avons besoin de l'instanciation au-delà de ce caractère. Si vous voulez un peu de rafraîchissement sur l'instanciation, allez le chercher dans les chiens de l'unité avec cela dit, pause la vidéo dès maintenant et aller faire le défi. Bon, bienvenue. Donc on va faire défiler ici. Nous allons créer un champ sérialisé qui va être de type système de particules. Et ce sera le fait d'attaque ou le fait de caractère. Nous allons faire défiler vers le bas et l'ennemi attaque ici. passant, il y a quelques choses que nous pouvons réellement refactoriser et ici, donc par exemple, le choix du mouvement et la sélection du personnage sont très importants à devenir, ou nous pouvons le garder comme une seule méthode. Voulez-vous que votre jeu soit votre temps pour créer votre propre code ? Et ici, nous allons aller de l'avant et instancier. Et instancier l'attaque ou l'effet d'attaque de personnage. Nous allons l'instancier sur l'acte du courant de caractère, tourner la transformation, cette position. Et l'acte de caractères courant tourner la rotation de la transformation. Et nous n'avons pas besoin de faire un enfant de quoi que ce soit. C' est juste assez bien. Et nous dirons ici, instancier le fait. Caractère de frappe. Sauve ça. De retour dans notre jeu, nous allons supprimer ceci. Et avant, ok, on a supprimé et ensuite on ira
au personnage ici qui est réceptif ici à 0. Alors que le chef de bataille, le fait, nous y allons, nous gardons ça. Nous menons notre jeu. On l'a fait paraître plus grand. Nous commençons la bataille. Et allons-y et frappons l'Anki. Anki. Anki. Oui, on y va. Mais comme vous pouvez le voir, continue de boucler et de boucler et de boucler. Alors, quel est le problème ici ? Donc, je vais aller dans le personnage et voir quel est le problème. Eh bien, bouclant, sauvez ça, exécutez notre jeu, appuyez sur la touche B. quel point ça a l'air cool ? Du point de vue 3D ? C'est sympa. Et des attaques. Et ça disparaît. Et vous pouvez voir l'ennemi attaquer la particule. Il est détruit au Sud après 1 seconde. Alors maintenant, nous savons quel personnage attaque. Encore une fois. C'est le prêtre ou la mange, puis la serrure de guerre à nouveau. Donc, comme vous pouvez le voir, parce que nous avons fait le Jimmy avoir HP actuel, il ne fait pas immédiatement. En fait, il est aussi attaqué. Et on y va. J' espère que vous avez apprécié l'entrée du système de particules. Si vous voulez un prochain défi de structure, je vous recommande d'aller de l'avant et d'extraire tous ces éléments dans des méthodes distinctes. C' est vraiment amusant. Il vous donne une idée de la façon dont tout fonctionne et vous donne un subconscient organisationnel. Je ne sais pas ce que ça fait de toute façon, j'espère que ça vous plaira et je vous verrai dans la prochaine vidéo.
103. Visualiser la quantité des dommages: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, quand nous lançons notre jeu, nous pouvons commencer la bataille. On peut. On y va. Donc, comme vous l'avez vu en ce moment, non seulement nous savons quelle couche est attaquée, non seulement nous savons quel ennemi attaque,
mais aussi quel est le nombre de dégâts
infligés au personnage attaqué. Alors je te montrerai à nouveau. 109 dégâts ont été infligés, 73 dégâts ont été infligés. Et nous pouvons le confirmer depuis la console juste ici. Donc, nous n'avons plus besoin d'un journal de points de débogage. Quelque part ici. Nous le supprimerons plus tard. Mais pour l'instant, ne perdons plus de temps et commençons. O k. Alors maintenant que nous visualisons quel ennemi attaque, l'étape suivante consiste à visualiser le montant des dégâts infligés. Donc, pour ce faire, nous allons créer une petite toile. Nous aurons un texte à ce sujet. Et nous allons préférer peu. Et chaque fois que nous sommes endommagés par un joueur ou un ennemi, nous allons créer ce texte instancié dans l'air à un peu de gigue et de mouvement vers le haut, puis le faire disparaître. Alors allons-y et faisons-le. La première chose que nous devons faire est de créer une toile. Donc, je vais cliquer avec le bouton droit sur la toile de l'interface utilisateur et nous allons l'appeler les dégâts subis. Comment allons-nous le rendre petit ? On va aller à la Canvas et on va à l'espace du monde des chaussures. Et de cette façon, nous pouvons le rendre aussi petit que nous le voulons. Assurez-vous de changer les dégâts ici, pas les dégâts. Je veux dire, la toile des dégâts subis. Laisse-moi appeler ça la toile de pensée endommagée. Et nous allons le réduire à 0.010.01. Double-cliquez ici, ou c'est ce que, déplacez-le vers le bas à côté des joueurs. Double-cliquez dessus à nouveau. Montez, faites pivoter. On y va. Donc ce sera notre toile. On peut même le rendre plus petit. Mais pour l'instant, allons de l'avant et ajoutons un texte. Ce que je ne vais pas ajouter le texte Mesh Pro parce que ce seront des nombres. Donc un texte régulier, je pense que c'était Phi. Et nous allons écrire ici 99. Nous allons savoir quoi, Ajoutons le texte beaucoup sonde. Pourquoi ne devrions-nous pas abandonner, ne pas nous donner la chance d'utiliser le texte Mesh Pro ? On va le mettre à la fête médiévale si ça nous le permet. Et nous allons ancrer à tous les coins. Alors maintenez Alt enfoncé, cliquez sur celui-ci, et voilà. Donc maintenant, il est ancré à tous les côtés. Qu' est-ce que l'année de textos de dommages. Je ne peux pas le voir. Dois-je le rendre plus grand ou plus petit ? Ce n'est pas audacieux. Peut-être aussi parce que laisse-moi juste voir ce qui se passe. Déplacer ici est le problème. Ok, alors on y va. Donc, derrière cela, nous ne le voyons pas. Pourquoi c'est ça ? Parce que nous devons nous assurer que nous sommes sur la couche de tri correcte. Donc, trier les caractères de bataille de couche. Un, ok, super. Donc les dégâts ont été pris. Là, ça va. Donc, sur les joueurs, il devrait apparaître sur les joueurs. Nous allons le rendre un peu plus petit. Donc, je vais choisir le Canvas, aller aux outils ROC et le rendre grand. Et puis nous allons rendre la police un peu plus petite aussi. Donc je pense que c'est assez. Nous allons également le réduire pour être presque exactement la taille que nous avions besoin d'être. On va le changer en rouge. Et je pense que c'est tout. C' est tout ce qu'il nous faut faire. C' est assez simple. On ne va pas en faire trop. Et puis nous allons le faire glisser et préférons peu. Et maintenant, nous avons ce montant de dégâts, donc il apparaîtra sur le dessus du joueur et ensuite s'en aller. Nous allons supprimer ceci et nous allons créer un nouveau script pour contrôler tout le dérangement et la disparition, le mouvement et ainsi de suite. Donc, dans les scripts, dans le système de combat, cliquez avec le bouton droit de la souris pour créer un nouveau script C-Sharp qui sera la santé du personnage ou les dommages du personnage. GUI, interface utilisateur graphique, interface utilisateur graphique. Même si ce n'est pas ça. Interface, mais il fera le travail. Et nous allons avoir, nous aurions dû ajouter aux préfabs, pas de soucis à ce sujet. Alors que les préfabs attaquent, endommagent, prennent canevas, ajoutent un composant qui va être l'interface graphique du
personnage, l'interface graphique endommageant les caractères, sauvegardez cela. Fermez tout cela, double-cliquez, ouvrez les scripts. Ok, alors de quoi avons-nous besoin ici ? Tout d'abord, nous avons besoin d'une référence au texte, donc nous aurons besoin de l'utiliser TMP Pro. Et ici, nous allons créer un champ sérialisé qui va être
le texte maillage pero Gui, la taxe de dommages. Ensuite, nous allons créer un flotteur qui représentera la vie. Et nous le mettrons à 1,5. Nous allons créer un autre flotteur pour la vitesse de déplacement. Alors déplacez la vitesse. Et enfin, nous allons créer des vibrations de textes. Donc, vibration du texte. Et vous verrez comment nous allons appliquer cela dans un peu et nous allons le mettre à 0.5. Ce sont des valeurs que j'ai déjà essayé et que j'ai pensé, et nous allons définir la vitesse de déplacement aussi pour être une. Sauvegardez ça. Ok, super. Maintenant une mise à jour, nous allons détruire l'objet du jeu après une certaine vie. Donc détruire l'objet de jeu après la fin de la vie. Et aussi, nous allons accéder à la position et la changer tout au long de la vitesse de mouvement. Donc transformer la position est égale à un nouveau vecteur 3. Et je suis désolé, je ne voulais pas dire égal. Il devrait être plus égal. Pourquoi c'est ça ? Eh bien, parce que laisse-moi t'expliquer. Nous allons l'instancier. Alors. Nous voulons le déplacer lentement vers le haut. Nous ajoutons donc lentement le mouvement en utilisant la vitesse de déplacement et seulement sur l'axe zed. Donc ici, nous allons régler le mouvement X à 0. Et le mouvement y sera la vitesse de déplacement point temps.Deltatime ou fois time.Deltatime. Qu' est-ce que Time.Deltatime ? Eh bien, c'est quelque chose qui vient juste, et si vous avez remarqué, désolé de m'interrompre. Celles-ci à 0. C' est pourquoi nous n'avons pas besoin d'ajouter un composant z. Quoi qu'il en soit, la vitesse de mouvement fois le temps.Deltatime. Nous sommes, chaque fois que nous avons affaire à un objet, déplacer une mise à jour, ou chaque fois que nous avons affaire à quelque chose qui augmente avec le temps, nous devons nous assurer de le multiplier par time.Deltatime. Et ce que cela nous permet de faire, il sépare les cadres par seconde de notre jeu de la vitesse de déplacement. Pourquoi est-ce important ? Parce qu'une mise à jour que nous l'appelons chaque image quand il s'agit d'appeler des méthodes et de faire des choses, c'est correct quand il s'agit de prendre des entrées, ce n'est pas un problème. Mais quand il s'agit de mouvement, si nous avons un ordinateur très fort et des images rapides par seconde, alors la vitesse de mouvement sera très, très rapide. Et on ne veut pas ça. Donc ce que nous faisons, et le contraire est vrai. Si nous avons un PCI lent, la fréquence d'images est très faible et la vitesse de déplacement est très lente. Donc, ce que nous faisons, c'est que nous le multiplions par le temps.Deltatime. Et cela détache la fréquence d'images de la quantité ou de V fois cette mise à jour et temps.Deltatime est en fait le temps entre chaque image et vous pouvez le voir et
entendre le temps d'achèvement en secondes depuis la dernière image. Donc, cela nous permet d'avoir un mouvement en douceur malgré le nombre de cadres que nous avons une heure. Encore une fois, c'est un composant très important, surtout quand il s'agit de jeux 3D. Et enfin, nous allons créer un vide public, infliger des dégâts. Et ça va prendre un paramètre ici qui va être
le montant des dégâts ou les dégâts à afficher ou autre. Donc on va accéder au texte des dégâts. Texte endommagé. Le texte est égal à la quantité de dégâts point toString car il s'agit d'un entier, nous devons
donc le convertir. Ensuite, nous allons créer une quantité de gigue. Et ça va être une plage aléatoire. Et cela va entre la vibration moins taxée et plus la vibration textuelle, qui sont le minimum et le maximum. Donc, il va se déplacer entre moins 0.50.5 de gauche à droite juste un peu, juste pour y ajouter un peu de plaisir. Et enfin, la position transform.py va être plus égal au nouveau vecteur 3. Et ça va l'être. Un montant. Et c'est la valeur sur le x, puis le montant général sur le y. et nous allons le laisser à 0, ou nous pouvons même l'enlever et l'utiliser de la même façon que nous l'avons fait ici. Donc, en ajoutant le 0 sur le composant set, nous allons enregistrer cela. Et si vous êtes encore un peu confus, nous accédons au texte. Nous le définissons comme le montant de dégâts auquel nous accédons ou nous fixons un montant général qui va être entre la vibration du texte moins et positive. Et enfin, nous ajoutons ce montant à la position de notre texte quand il est instancié. Donc maintenant, la dernière chose à faire est d'en obtenir une référence dans
le gestionnaire de bataille et de l'utiliser chaque fois que des dégâts sont
infligés et que ce sera votre défi. Votre défi est de montrer les dégâts. Donc, obtenez une référence à l'interface graphique de la santé des caractères instanciée chaque fois qu'un personnage subit des dégâts ou des dommages de caractère entrent ici. Instancié chaque fois qu'un personnage subit des dégâts et comprendre quelles sont les positions et les rotations. Je suis presque sûr que vous savez déjà comment faire ça. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Donc, dans notre gestionnaire de bataille ici, nous allons obtenir une référence, un champ sérialisé de type, dégâts de caractère, GUI, dégâts, textes appelleront cela simplement. Et quand nous faisons défiler vers le bas, quand nous prenons les dégâts pour infliger les dégâts, nous pouvons soit l'appeler dans l'attaque ennemie, soit nous pouvons l'appeler ici. Appelons ça et l'attaque ennemie. Donc, après avoir infligé les dégâts au joueur, nous allons entrer dans le personnage à l'interface graphique des dégâts du personnage. Ce sera un caractère appelé texte de dégâts de caractères. Et ça va être égal à l'instanciation. Et pourquoi le mettons-nous dans une variable ? Parce que juste un peu nous allons utiliser la méthode de dégâts SAT dessus. C' est pourquoi nous avons besoin d'une variable ou nous pouvons simplement l'utiliser sur l'instancié, mais c'est plus propre. Donc le texte de dégâts que nous avons une référence là-haut. Et où le mettons-nous ? Eh bien, c'est sur les personnages actifs, mais pas sur le terme actuel, mais sur le sélectionné pour être attaqué. Donc, le joueur sélectionné pour attaquer la transformation de point. Savez-vous ce que je pense un meilleur endroit d'ajouter cela ? Parce que nous allons l'utiliser aussi quand le joueur attaque. Donc, nous ne voulons pas qu'il inflige juste des dégâts quand l'ennemi attaque. Nous voulions aussi le faire quand des dommages. Donc, au lieu du joueur sélectionné, nous allons utiliser le personnage sélectionné pour attaquer la position de la boîte de transformation. Et enfin, personnage actif, moi, il suffit de dupliquer ceci, celui-ci, rotation. Sauvegardez ça. Alors encore une fois, pourquoi ai-je passé de l'attaque ennemie aux dégâts infligés au personnage ? Parce que les dégâts infligés au personnage seront également appelés par le joueur. Et nous voulons infliger les mêmes dégâts aux ennemis que nous, comme vous le verrez maintenant aux joueurs. Il est donc préférable de l'utiliser dans une méthode qui est plus, appelons-le universelle et disponible pour les deux parties. Maintenant, nous instancions le texte chaque fois que nous infligeons des dégâts sur le personnage sélectionné à attaquer. Donc, nous allons sauver ça. Retournons dans une unité et lançons ceci et voyons ce qui se passe. Alors lancez notre jeu et nous obtenons une erreur. Et l'unité s'éteint seule. Oh, ok, bienvenue. Je voulais vous montrer ce qui se passe si, au cas où vous auriez ce genre de mise en page, allez à la mise en page deux par trois et nous sommes de retour, bébé. Et avant que j'oublie, c'était un problème. C' est pour ça que ça m'est arrivé il y a quelques vidéos. Encore une fois, nous devons nous assurer de le mettre à 1920. Décidé ici va changer. Malheureusement, il n'y a rien que vous puissiez faire pour écraser l'unité. C' est pourquoi vous enregistrez toujours et vous créez toujours des engagements et des référentiels. Alors maintenant, allons dans notre chef de bataille. Nous avons le texte endommagé. Nous allons aller dans les Préfabs et aux batailles. Et nous ne préférons pas le bit 0. Nous avons fait un préfabriqué à notre peur donc, mais nous allons donc prendre le texte de dégâts ajouté ici. On y va, les dégâts qui prennent Canvas, on va sauver ça et on va essayer ça. Donc, nous menons notre jeu et ils commencent maintenant la bataille. Nous passons à travers les joueurs. Oh, on y va. Donc, au moins, ça marche. Nous avons les textes fonctionnant correctement, tout fonctionne. Maintenant, la dernière chose que nous avons oublié de faire parce que j'étais distrait en expliquant, ce qu'on fait. Donc, le caractère du texte de dégâts qui a dit dommages. Set. Dommages ? Oui, s'il vous plaît. Et qu'est-ce qu'on envoie ici ? Le montant des dégâts. Donc, les dégâts à donner, sauver ça dans notre jeu, nous devons mettre une référence au texte ici. Alors, comment allons-nous faire ça ? Double-cliquez et ouvrons le préfabriqué. Et nous allons faire glisser le texte ici vers le texte. On sauve ça. Et la façon dont nous avons ouvert le préfabriqué, nous double-cliquez dessus. Ce n'est pas grand. Retourne. Maintenant, nous avons l'ensemble endommagé, texte, dégâts assis exécuter le jeu, arrête la bataille. Oui. On y va. 2159. Et est-ce exact ? Laisse-moi ouvrir la console pour voir ici la première attaque a eu 21 ans. Oui, c'était correct. Et le second était de 59 ans. Essayons encore ça. 63, on y va. 220 ou 212. Excellent. Essayons encore ça. Dominance DLT. Ok, super, donc tout fonctionne parfaitement bien. Il pourrait y avoir un peu de réglage, comme je l'ai dit, si vous voulez ajouter un peu plus de saveur au texte, ajouter sa propre police, je pense que c'est une excellente idée. Tu peux faire beaucoup de choses. Vous pouvez changer la gigue. Peut-être que vous voulez l'appliquer sur une position légèrement variée, pas immédiatement sur le dessus du joueur. J' espère que ça vous plaira. J' espère que vous engagez vos changements. Et je vais te voir dans la prochaine vidéo.
104. Statistiques de combat: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous lançons le code, nous commençons une bataille, nous allons à la fin, mais vous remarquerez ici que nous avons les sinistres Draco et Jimmy et leurs vies se détériorent quand ils subissent des dégâts. Donc, vous pouvez voir leur vie disparaître lentement, mais sûrement. Voilà, tu y vas. Le Graham meurt, Draco meurt. Seul Jimmy survit. Mais si Jimmy meurt, qu'arrivera-t-il ? Et quand Jimi meurt, nous avons perdu, oh mon Dieu. Ne perdons plus de temps. Et commençons. Oh, d'accord. Maintenant, nous savons qui inflige les dégâts. On sait combien de dégâts il inflige. Il y a encore un petit problème, un petit petit problème. Quand nous lançons notre jeu, nous avons touché la touche B et tout semble fonctionner correctement. Mais le problème est que nous avons le nom de joueur un, le nom de joueur un. Qui est le nom de joueur un ? Et pourquoi la santé ne change-t-elle pas ? Et pourquoi avons-nous tant de manière ? Il est donc temps de commencer à mettre à jour nos statistiques de batailles. Allons dans notre chef de bataille et faisons juste ça. Je vais clore l'affaire comme l'attaque ennemie. Je suis presque sûr qu'on en a fini avec tout ça. Si nous en avons besoin, nous reviendrons vers eux. Mais d'abord, nous avons besoin d'une référence aux textes. Donc, ici, nous allons aller de l'avant et créer un champ sérialisé qui
va être de type texte Mesh pero Gui. Quoi, quoi, qu'est-ce qu'on a ? Oh, ok, donc en utilisant le pero MPI, je me demandais quel était le problème. Donc maillage de texte par ligne, vous GUI. Et nous allons avoir un, et ici nous aurons besoin d'un curseur, mais nous devons définir l'interface utilisateur. Alors je garde ça. Et laissez-moi juste ajuster ça. C' était 133, je crois. D' accord. Donc, un curseur, 14, le curseur de santé de la couche et curseur de mana joueur. Sauvegardez ça. Ok, super. Nous mettrons tout dans l'inspecteur avant d'oublier. Donc chef de bataille, scène de bataille. Il y a oh non, c'était la toile de bataille, les statistiques des joueurs. Et laissez-moi allumer la scène de bataille pour voir clairement les statistiques des joueurs. Ok, on y va. Alors je vais les ouvrir. Je vais voir le chef de bataille. Je vais le verrouiller et les textes du joueur seront choisis et traînés dans les lieux. Les curseurs de santé vont être traînés aux bons endroits. Et le mana va aussi faire la même chose. Sauvegardez ça. On y va. Donc tout est mis en place, va fermer tout ça et nous allons éteindre la scène de bataille. Retournez à l'unité, nous nous assurons de sauver tout cela. Oups. Oh, non, non, non, pas maintenant. Donc, au moins maintenant, vous savez que vous avez un défi, mais avant cela, nous allons créer nos statistiques de mise à jour des joueurs. Et si vous le souhaitez, vous pouvez mettre la vidéo en pause et les mettre à jour vous-même. Mais nous allons tout d'abord, créer un est égal à 0 alors que je suis inférieur à l'air. Les joueurs noms texte longueur point et puis je plus, plus. Donc, nous passons à travers tous les joueurs nommés taxés. Nous vérifions si le nombre de points actifs est supérieur à un, excusez-moi, point I. Et ceci, pourquoi faisons-nous ça ? Parce que nous devons nous assurer qu'il y a plus de caractères que les textes du lecteur qui sont disponibles. Si ce n'est pas le cas, cela signifie que nous ne pouvons pas procéder, nous ne pouvons pas mettre à jour le texte. Vous verrez que ce n'est pas très, très important, mais c'est important pour éviter quelques erreurs. Donc, nous vérifions juste que nous avons plus de caractères, puis nous avons des noms de texte de joueur. Alors nous allons vérifier si le personnage actif est un joueur. Bien sûr, évidemment, nous devons mettre à jour les joueurs. Et là, c'est là que commence les trucs amusants. Nous allons donc créer une variable de personnage de combat, qui va être les données du joueur. Et ça va être égal au personnage actif. Donc nous avons une référence à lui parce que je suis sûr que nous allons l'utiliser beaucoup. Ensuite, nous allons accéder au texte du nom. Donc le nom du joueur texte à la position I, le texte. Et ça va être égal aux données du joueur, le nom du personnage. Ensuite, nous allons utiliser les curseurs. Donc curseur de santé du joueur à la position i. Nous allons définir la valeur maximale comme nous le faisons toujours pour le point de données du lecteur max, HP, et la valeur actuelle. Et la valeur, je veux dire, et ici la valeur actuelle du HB. Dupliquons ces deux lignes. Et on va utiliser le curseur. Et le curseur. La valeur max est le max et la valeur est la manière actuelle. Donc nous allons sauver tout ça. Et maintenant, nous allons relever le défi, quelque chose qui a surpris. Donc, tout ce que vous devez faire est de vous assurer que nous ne montrons aucune information à moins que nous ayons un joueur actif. Vous aurez donc besoin de créer une déclaration autre To else pour vous assurer que nous ne voyons pas de points vides lorsque nous n'avons pas de joueur actif là-bas. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, donc il y a deux endroits où nous devons nous
assurer d'éteindre l'objet du jeu de la taxe. Donc le premier est ici. Nous avons le personnage actif est joueur. Si ce n'est pas un joueur que le nom du joueur, le texte, point, le point, l'objet de jeu, qui assis actif est faux. Et aussi si nous avons des personnages plus actifs ou amine, si nous avons moins d'acte de caractères que le montant de la taxe que nous avons, alors sinon. On va faire la même chose ici. Sauvegardez, copiez ceci, collez-le ici, enregistrez-le. Et maintenant, la dernière chose que nous devons faire est de voir où appelons-nous les statistiques de mise à jour des joueurs. Alors qu'il y a quelques endroits en premier, quand nous infligeons des dégâts. Pour que nous puissions le faire dans l'ennemi. Ici, nous allons mettre à jour les statistiques des joueurs. Où devrions-nous le faire d'autre ? On pourra le faire quand on ira au prochain tour. Donc mettre à jour bataille, mettre à jour, statistiques des joueurs. Et nous le faisons aussi quand nous commençons la bataille. Donc, lorsque nous commençons la bataille, nous mettons également à jour les statistiques des joueurs. Et je pense que c'est tout ce qu'il faut faire. Donc nous allons sauver tout ça. Nous allons aller dans Unity. Nous allons attendre que le script s'assemble. Nous allons lancer le jeu. Nous allons commencer la bataille. Et pour une raison quelconque, je ne suis pas en mesure de commencer la bataille. C' est parce que pour une raison quelconque, essayons encore une fois. Oh, d'accord. Alors, qu'est-ce que le gestionnaire de bataille a été désactivé ? Ce devrait être la scène de bataille qui est désactivée. Oh, et on l'a. On l'a verrouillé. Alors on y va. Non. Je veux dire, on y va. Ok, maintenant on dirige le jeu. C' était si bizarre. Donc, nous commençons la bataille et,
et, et donc nous avons le sombre Draco. Oh mon Dieu, c'est cool ? Sérieusement ? C' est cool ? Essayons encore une fois. Je suis surpris que cela ait fonctionné dès la première étape. Alors Jimmy, Jimmy, Jimmy, le sinistre. Joli. Voyons ce qui se passe. Draco en dés. Voyons voir encore. Jimi meurt les dés sombres et nous perdons parce que tous nos personnages ont un PV actuel de 0. Mais la prochaine chose que nous devons faire est gérer les couches mortes quand nous mettons à jour la bataille, si vous vous souvenez, nous avons tué le personnage dans. Je vous verrai dans la prochaine vidéo et je m'assurerai de valider vos modifications. Et si vous aimez le cours et que vous m'aimez comme instructeur, j'aimerais connaître votre opinion. Laissez-moi un avis chaque fois que vous le pouvez, quand vous le voulez, quand vous le souhaitez. Et je te verrai dans la prochaine. Hey Mike leader du futur. Je sais que tu voulais te débarrasser de moi, mais je suis de retour. Il y a un petit problème. Donc, quand on lance le jeu, on voit qu'on a éteint le gramme, mais on ne voit pas seulement son nom. Donc, c'est un petit problème et ici nous ne désactivons que le nom du texte du lecteur. Ce n'est pas ce qu'on veut. Ce qu'on va faire, c'est obtenir une référence aux joueurs. Et ici, au lieu de simplement obtenir le nom, nous allons également faire référence aux objets du jeu. Et ça va être un objet de jeu. Et nous l'appellerons les statistiques des joueurs ou les statistiques des batailles des joueurs. On va sauver ça. Ça va être un tableau. Et nous allons utiliser les statistiques de combat des joueurs ici. Donc, les statistiques des joueurs, la position I, et les batailles des joueurs, c'est la position I. Alors que le joueur combat cela. C' était si dur. Donc, nous allons sauver ça. Nous retournerons ici, il
faudra les référencer. Les statistiques de bataille de Claire
choisiront, verrouilleront cela. Choisissez le joueur un à trois, mettez-les ici sur la sauvegarde qui désactive le gramme ou Draco, nous lançons le jeu maintenant nous ne devrions pas le voir apparaître. Alors on y va. Nous ne voyons pas toute la structure Grimms, ce qui est beaucoup mieux. Désolé de vous interrompre. Peut-être que vous vouliez vous reposer. Tu disais enfin Michael, c'est la semaine du solveur. Je n'ai plus besoin de l'écouter, mais il revient. Je te vois dans la prochaine vidéo où nous allons tuer nos personnages. Très amusant.
105. Gérer des battants morts: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous allons sauter par-dessus les joueurs qui sont cela. Donc, actuellement, nous avons besoin de trois termes pour les joueurs. Mais quand l'un d'eux mourra, vous verrez. Alors maintenant, Draco meurt. Et vous pouvez voir en ce moment, déterminer un 0 quand nous avons eu l'Anki une fois, il va immédiatement à deux, donc il saute sur le tour de Draco. Il va immédiatement aux ennemis. Seulement deux termes sont pris. Donc maintenant, si nous avions les Anki, nous avons attaqué avec Jimmy aller immédiatement au tour des ennemis. Alors ne perdons plus de temps et commençons. Oh, d'accord. Donc, actuellement tout semble fonctionner correctement, mais il y a un petit problème. Je ne sais pas si tu l'as remarqué. Si redémarre la bataille, disons que nous avons Jimmy et Draco. On avait l'Anki et la clé. On y va. Jimmy. Jericho encore, essayons ça. Alors Jimmy Draco. Draco vient de mourir. D' accord. Dre pourrait juste mourir. Ça veut dire qu'il n'a pas à se tourner. Donc maintenant, nous devrions, en théorie, quand nous appuyons sur la touche Entrée, avoir
seulement Jimmy jouer et ensuite nous passer aux ennemis. Donc on a touché la fin. Nous avons eu le n à nouveau. Donc, évidemment, vous pouvez voir qu'on a pris un virage et si ce n'était pas évident, j'allume le gramme. Donc, le problème ici que même si certains de nos personnages sont morts ou nos joueurs sont, qu'ils sont toujours à tour de rôle. Donc, dans le gestionnaire de bataille encore, 123, donc trois d'entre eux attaquent. Espérons que l'un d'eux meurt 3123. On veut que l'un d'eux meure. 2, 3. Ça va prendre une éternité. Ok, alors maintenant Draco est mort 1, 2, 3. Encore une fois, nous passons en revue les conditions. Et on y va. Ainsi, vous pouvez voir que le tour est toujours en train de jouer pour Draco Jimmy et chaque joueur qui dés. Donc c'est un problème que nous ne voulons pas avoir. Donc, ce que nous allons faire, c'est chaque fois que nous vérifions si tous les ennemis ou les joueurs sont endettés, s'ils ne le sont pas. Donc ça veut dire que nous ne perdons pas le jeu ou quand le jeu. Nous voulons sauter sur le personnage Stearns qui ont un PV actuel de 0. Et nous allons le faire en utilisant une boucle while. Alors qu'est-ce qu'une boucle while ? C' est similaire à pour les boucles où il exécute un bloc de code un certain nombre de fois. Mais au lieu de déterminer le nombre de fois avant la main, donc au lieu de définir ILS que, disons la longueur d'un tableau, nous attendons jusqu'à ce qu'une certaine condition soit remplie. Donc, la structure de celui-ci, nous avons une boucle while. Nous avons une certaine condition qui est vraie. Si c'est le cas, alors nous entrons dans le code et ce crochet. Et nous continuons à le faire encore et encore et encore et encore jusqu'à ce que finalement, nous avons cette condition pour être faux. Et quand cela devient faux, nous arrêtons de passer par la boucle et ces deux points ici ne devraient pas être présents. Laisse-moi juste les enlever. Bienvenue dans le back-end. On y va. Assurez-vous donc que vous comprenez comment les boucles fonctionnent si vous le souhaitez, allez les vérifier à différents endroits, les
chercher, assurez-vous que vous savez quoi faire parce que dans un peu, vous avez un défi de sauter les personnages. Donc une bataille de mise à jour. Si maintenant tous les ennemis sont, tous les joueurs sont morts. Après que nous vérifions si aucun d'entre eux. C'est ce que je veux dire. Donc, vous aurez besoin d'ajouter une instruction else, devrez créer une boucle while qui continue de boucler. Alors que le caractère actif HP est 0, augmenté déterminé par un quand il est. Et si le tour est supérieur au nombre de caractères
actifs devra le réinitialiser à 0. C' est un défi un peu difficile, surtout parce que vous utilisez une nouvelle arme que nous venons de comprendre, qui est la boucle while. Pas de soucis. Faites de votre mieux. Mettez la vidéo en pause maintenant, comprenez le défi. Comprendre tout en boucle, et aller. Fais-le. Ok, bienvenue de retour. Donc on va monter. Où est notre bataille de mise à jour ? On y va. Donc, si tous les ennemis et tous les joueurs sont morts, soit
nous allons gagner, soit nous allons perdre. Mais si aucun d'entre eux ne le sont, alors nous allons créer une instruction else créera une boucle while, et cela continuera à boucler pendant que l'acte de caractères sur le tour en cours. Courant point, HP est égal à 0. Donc, sur le terme actuel, alors que nous avons un personnage qui a un HP actuel de 0, nous voulons augmenter le tour actuel immédiatement. Et nous allons vérifier si le terme actuel est supérieur ou égal au nombre de points de caractères actifs, alors nous allons définir le retour en cours à 0. Et c'est tout. Alors que se passe-t-il ici ? Comme nous mettons à jour les combats, nous vérifions si nous avons maintenant nous n'avons pas traité de tuer des personnages. On le fera plus tard, ne vous inquiétez pas. Donc, si tous les ennemis ou tous les joueurs sont dedans, cela signifie
que nous pourrions avoir un d'entre eux qui a un HP 0 actuel, mais qui prend toujours à tour de rôle. Alors, qu'est-ce qu'on fait ? Nous créons une boucle while qui continue de vérifier tous les caractères sur le terme actuel. S' ils ont le PV actuel de 0, alors le terme actuel est augmenté d'un. Si le terme actuel est supérieur à l'acte de nombre de caractères que le terme actuel est de retour à 0. Ensuite, nous regardons en arrière, nous passons au personnage suivant parce que nous avons augmenté le tour et cela alors que la condition n'a pas été remplie. Donc, nous vérifions si le personnage suivant a également un HP actuel de 0, puis nous nous déplacons à nouveau, entrez la condition, entrez la boucle while. Nous augmentons déterminé, nous continuons un, puis nous retournons dans cette boucle while. Donc, enfin, nous arrivons à l'un des personnages qui n'a pas HP 0 actuel et nous arrêtons la bataille ou il fait son mouvement ou quoi que ce soit. Donc nous allons sauver ça. Vous verrez cela en action peut être mieux comprendre si vous êtes toujours confus. Sauvegardez ça, exécutez le jeu. Espérons que l'un des joueurs meurt immédiatement. Alors, et on y va. C' est cool ? Draco vient de mourir. Donc maintenant, quand on a touché la touche Fin une fois, eh bien on y va. Donc, le terme actuel saute immédiatement à deux. Alors maintenant, on l'a frappé deux fois. Super. Alors maintenant, Draco n'a pas de tour. Donc encore une fois, nous avons eu l'Anki une fois que nous passons immédiatement à la deuxième, troisième, Jimmy est mort. Donc, techniquement, nous ne devrions frapper l'Anki qu'une seule fois. Taux de filles. Donc, tout fonctionne correctement. Les joueurs qui sont, qui ne prennent pas tour à tour de rôle. Et maintenant, je vais valider mes changements, les
joueurs et les personnages, parce que cela fonctionnera dans les deux sens, ne plus prendre tour à tour de rôle quand ils sont engagés des changements. Va voir le maître et voir combien on a traversé. Nous avons traversé tellement de choses et il y a un peu plus à faire. Je te vois dans la prochaine vidéo.
106. Section 16 :: Bienvenue de retour, Mes développeurs de jeux préférés. Rappelez-vous quand nos ennemis nous attaquaient alors que nous n'avions aucun moyen de nous défendre. Mais maintenant tout cela change parce que quand nous commençons la bataille, nous ne nous contentons pas de sauter notre tour. On peut attaquer. Donc nous attaquons sera le squelette, nous attaquons avec Draco et nous attaquons était Jimmy. Maintenant on se fait botter le cul. Je ne suis pas sûr d'avoir dû. J' aurais pu dire ça. Quoi qu'il en soit, vous pouvez voir qui il attaque lentement mais sûrement. Mais nous le sommes. Alors ne perdons plus de temps. Et commençons. Bon, maintenant que notre ennemi attaque,
nous avons les statistiques des batailles qui se mettent à jour. Nous savons quel joueur, quel ennemi attaque, quel joueur il attaque. Si le joueur meurt, il peut se tourner à tour de rôle pour que tout se rassemble. Mais maintenant, la prochaine étape est boom, faire commencer à attaquer le joueur. Comment allons-nous faire ça ? Eh bien, nous allons créer une autre méthode qui permet au joueur d'attaquer. Alors ouvrons le script. Et dans le gestionnaire de bataille, comme vous pouvez le voir, nous avons beaucoup. Maintenant, c'est l'heure de l'attaque du joueur. Et je vais ajouter une couche de commentaires méthodes d'empilage. Et commençons. Donc, tout d'abord, je vais créer une attaque de joueur vide public. Et on va lui donner deux variables. Le premier va être un nom de mouvement de chaîne. C' est donc le mouvement que nous allons effectuer et un entier qui est le sélectionné, un Emmy. Donc ici, tout d'abord, c'est, c'est assez similaire à l'attaque ennemie. C' est presque la même chose. Donc la première chose dont nous avons besoin dans l'attaque ennemie, nous obtenons le joueur. Donc pas besoin de ça. Nous allons aller de l'avant et d'abord, obtenir la puissance de mouvement et puis sélectionner un certain mouvement. Donc, ici, nous allons créer une puissance int mov égale 0, et nous allons continuer. Mais la différence, ou la même chose ici est que nous utilisons fondamentalement le même code. Ce que nous faisons, c'est que nous créons le plus de pouvoir. Nous avons déjà l'ennemi sélectionné que nous voulons attaquer. Puis en bas ici, nous cherchons à travers la bataille la plus inutile. Nous vérifions si les batailles bougent. Liste, point move est égal au nom du film que nous envoyons à travers l'attaque du joueur et ainsi de suite et ainsi de suite. Laisse-moi te le montrer, parce que j'ai l'impression de l'avoir complètement bâclé. Donc la fin I est égale à 0. Alors que je suis inférieur à la liste des mouvements de bataille la longueur. Et moi plus. Donc, nous sommes en boucle à travers les mouvements de combat. Ensuite, nous vérifions si la liste des mouvements de combat à la position I, ce nom de mouvement est égal au nom de Déplacer qui est envoyé ici. Nous ouvrons donc et nous allons instancier l'effet, ce qui est à peu près le même que celui-ci. Et ici, nous pouvons copier ceci. On peut copier même la puissance de déplacement, le
copier, le coller ici. Et c'est sur la cible ennemie sélectionnée et la cible ennemie sélectionnée. Maintenant, ce que nous pouvons faire ici, c'est que nous pouvons réellement créer une méthode en utilisant ceci. Et c'est très utile parce que nous pouvons l'utiliser ici et ici, ce qui me semble assez raisonnable. Donc, allons de l'avant et sélectionnez ces actions rapides avec le bouton droit de la souris et le refactoring. Nous allons extraire la méthode. Et il prend dans les yeux et la cible ennemie sélectionnée. Donc nous allons appeler cela obtenir plus de puissance et d'effet instanciant. Je ne sais pas si on devrait faire tout ça. Et l'instanciation des faits. Oh mon Dieu, gracieux. Cas. Donc obtenir la puissance déplacée et l'instanciation d'effet. Comment aimez-vous ça ? Donc nous allons utiliser cette méthode ici. Donc, nous allons juste utiliser l'instanciation d'effet. Et quelles sont les variables qu'il prend en compte. Donc ça prend la cible ennemie, que nous appellerons la cible du personnage. On va sauver ça. Et puis nous allons envoyer ici le joueur sélectionné pour attaquer avec le I. Sauvegarder ça et nous pouvons supprimer l'instanciation d'ici. Supprimons ça. Et bien sûr, nous allons le tester à nouveau. On peut aller le tester tout de suite. Nous devons aussi extraire celui-ci parce que nous allons l'utiliser dans un peu. Tu verras. Alors on y va. Essayons ça. Assurez-vous que la méthode que nous avons extraite fonctionne toujours. Donc, cela instancie l'effet des attaques et ils exécutent maintenant le code. Donc, et ils maintenant l'unité va commencer et pourtant cela fonctionne toujours. Excellent. Donc, nous gardons ça. Maintenant, nous avons une méthode qui obtient la puissance de mouvement et l'instanciation d'effet, obtenant la puissance déplacée et l'instanciation d'effet. Très subtil. Quoi qu'il en soit, continuons. Que devrions-nous faire ensuite ? Premièrement, nous devons ajouter les effets sur l'attaque ou sur l'ennemi qui est attaqué. Donc, et votre défi est d'ajouter l'effet. Vous devrez donc appeler la méthode qui instancie l'effet qui
nous indique quel ennemi attaque ou quel joueur attaque. Et vous devrez également appeler la méthode pour infliger des dégâts avec les arguments appropriés. Donc, avec cette information, mettez la vidéo en pause et allez relever le défi. Ok, bienvenue. Comment as-tu réussi avec ça ? Donc nous avons le plus de pouvoir et ici tout devrait bien fonctionner. Nous allons donc extraire cette méthode de l'attaque ennemie. Eh bien, clic droit. Et ce sont les faits d'attaque de caractère. C' est donc le système de particules, comme vous pouvez le voir ici. C' est le truc de tir rouge. Et nous allons extraire, ça fera une méthode d'extraction. Et cette méthode d'extrait instancier fait sur le caractère d'accaparement. Donc aujourd'hui n'est pas mon meilleur jour pour donner des noms aux méthodes, mais au moins ils sont vraiment pointus et vous savez ce que vous appelez. Donc, après avoir choisi quel film va faire, nous y ajoutons le pouvoir. Nous allons instancier l'effet sur le personnage attaquant. Et ce qu'il fait, c'est qu'il choisit le terme actuel, donc il choisit le caractère actif sur les tours en cours. Donc, il va choisir le joueur qui attaque, ce qui est bon. Et enfin, nous devons infliger des dégâts. Donc nous allons infliger des dégâts aux personnages. Nous allons choisir notre cible, qui est la cible ennemie sélectionnée. Et puis nous allons lui donner le pouvoir de mouvement que nous avons déterminé. Alors sauvegardons ça. Et nous avons encore le dernier morceau de code, qui est d'aller de l'avant et de faire le prochain terme. Sauve ça, retour, fin notre jeu. Et nous allons nous enfuir. Nous allons aussi d'abord avant de le faire, nous devons réellement appeler cette méthode. Alors, où appelons-nous l'attaque du joueur ? Eh bien, nous allons l'appeler depuis les boutons. On va allumer la scène de la bataille et on ira dans les scènes. Et nous devons sélectionner l'un d'entre eux. Je vais sélectionner le fond de l'attaque. Donc, le bouton d'attaque, si je fais défiler vers le bas, si j'ajoute une condition au gestionnaire de bataille, allez au gestionnaire de bataille. Que pouvons-nous faire ici ? On a besoin de l'attaque du joueur pour une raison quelconque. Je n'ai pas l'attaque du joueur. Est-ce une clé publique ? Est responsable de la bataille publique. Directeur. Donc, comme vous pouvez le voir, pour une raison quelconque, nous ne pouvons pas trouver l'attaque du joueur. Et pourquoi c'est ça ? Eh bien, parce que si nous regardons ici, nous pouvons voir que cela prend deux arguments. C' est un grand non-non. Nous ne pouvons pas avoir deux arguments. Donc ce qu'on va faire, c'est ajouter une parenthèse ici. Nous allons commenter cela. Et puis nous allons créer un entier ici. Et ce sera la cible ennemie sélectionnée. Donc, nous allons copier ceci, coller ici, et nous allons juste sélectionner la cible qui est 0. On va sauver ça. Et maintenant, on devrait pouvoir le voir ici. Donc, quand nous frappons le gestionnaire de bataille de fonction, et là nous allons, attaque de
joueur qui prend dans une chaîne. Et pourquoi c'est ça ? Eh bien, parce que vous ne pouvez pas appeler une méthode ici qui prend deux arguments. Nous trouverons une solution pour cela plus tard. Ne vous inquiétez pas pour ça. C' est juste à des fins de test. Alors, quelle est l'attaque ? C' est la barre oblique. On copiera ce gestionnaire de bataille, je veux dire le bouton d'attaque. Et le bouton d'attaque fait généralement la barre oblique sauvera cela. Excellent. Alors maintenant, il est temps de courir notre jeu. Donc, nous allons courir ou nous devons désactiver la bataille de
la scène de bataille autour du jeu avait le BP. Donc maintenant, nous pouvons attaquer, nous pouvons choisir d'attaquer. Alors on y va. Nous nous sommes attaqués, ce qui n'est pas bon. Donc vous pouvez voir que nous trois, au moins, nous savons que nous pouvons attaquer. Donc si on attaque, disons que l'attaque, Draco attaque le squelette. Le joueur attaque le squelette. Aussi. Correct. Maintenant, nous devons corriger ce que nous avons mal fait dans les dégâts infligés au personnage o k. Donc la chose que je n'ai pas pris en considération est que la liste des ennemis commence sur le troisième parce que pourquoi nous avons le squelette, quoi que vous Appelez ça le sombre. Et Jimi solo, les ennemis ont commencé sur le troisième et le quatrième entier. Donc, sur la, peut choisir soit ici trois ou quatre. Choisissons 3. On sauve ça. Maintenant, nous attaquons l'ennemi. Et je n'ai pas pris cela en considération. Alors maintenant, quand nous attaquons, celui de nos joueurs devrait avoir le système de particules sur lui et cela devrait avoir un effet de barre oblique sur lui. On y va. On y va. On y va. Et vous pouvez voir que nous sommes attaqués et détermine, si vous avez remarqué sont mis à jour sur leur propre. J' espère que ça vous plaira. Ne vous inquiétez pas, tout sera automatisé dans les prochaines vidéos. Quand je te verrai, alors.
107. Choisir des cibles: Bienvenue à mes collègues développeurs de jeux dans une toute nouvelle vidéo où j'oublie de faire beaucoup de choses. Mais finalement, on l'a fait. Donc, quand nous lançons notre jeu, nous avions DBT. Nous choisissons d'attaquer. Qui voulons-nous les attaquer pour attaquer un seigneur de guerre ? Ou voulez-vous attaquer leur âge, voter maintenant parce que nous attaquons le seigneur de guerre que nous attaquons le major, puis nous attaquons à nouveau le major, mais ensuite l'axe majeur. Alors ne perdons plus de temps et commençons à choisir nos cibles. Ok, donc évidemment, on ne veut pas avoir à choisir un ennemi dans le code. C' est une absurdité totale. Ce que nous voulons faire est d'avoir un moyen de choisir une cible dans notre interface utilisateur. Alors faisons ça. On va allumer la scène de la bataille. On va au menu. Nous allons dupliquer ce menu. On va appeler ça les cibles ennemies et les cibles ennemies. Et on va le faire, je pense qu'il faut le garder ici. n'est pas un problème parce que lorsque nous choisissons d'attaquer un objet magique ou de courir, quand nous ouvrons la cible ennemie, il devrait couvrir l'attaque anti magie, nous ne devrions pas être en mesure de alors à quoi que ce soit d'autre. Donc ici, la cible ennemie, nous allons aller de l'avant et voyons. Je vais choisir ces trois boutons. Je vais les supprimer. Et je vais supprimer le,
désolé, l'attaque slash et ici, et cela changera du bouton d'attaque à un, disons bouton ennemi. Et le texte ici va changer en, disons Target. Et nous allons faire en sorte qu'il s'adapte donc taille automatique et augmenter le maximum. Peut-être. Je ne sais pas. Donc nous voulons qu'il soit assez grand. On y va. On va le mettre juste en dessous. Mais on y va. Donc c'est la cible. Là, nous allons à la taille automatique et je vais le rendre un peu plus petit sur les bords. Ok, on y va. Et correct. Maintenant, nous allons le dupliquer. Donc nous allons le dupliquer une fois, deux, trois fois, et nous n'avons qu'un maximum de quatre ennemis. Donc on va le garder comme ça. Maintenant, la prochaine chose que nous allons faire est de créer un script pour les boutons de la cible de combat. Donc nous allons aller à nos scripts dans les batailles. rendre cela un peu plus grand clic droit créer un script C tranchant qui va être appelé la bataille. Bataille. Cible. Boutons appuyez sur Entrée. Attendez que cela se compile. Et je vais l'attacher à chacun de ces boutons. Donc je vais tous les choisir. Je vais ajouter un composant. Je vais choisir les boutons de la cible de combat. Et on va ouvrir le script. On y va. Alors maintenant, il est temps d'ajouter quelques variables. Donc maintenant, nous voulons tout d'abord, un nom de film, donc c'est public, String, move name, et vous verrez pourquoi nous avons besoin d'un nom de film ici. Ça ne devrait même pas être public, mais on le gardera en public pour qu'on sache ce qui se passe. Ensuite, nous créerons un public et ce sera la cible active du combat. Cible. Et enfin, nous allons créer un maillage fiscal public Pro. Et ça va être le Où est-il ? Une sonde de maillage de texte, le nom de la cible. On va sauver ça. Maintenant, il commence, nous allons assigner toutes ces choses et nous pouvons le faire, ou nous allons simplement assigner cette pile smash bro. Donc, nous allons aller dire que le nom de la cible est égal pour obtenir le composant et le texte enfants Mesh pro aller. Et on y va. Donc, il retourne un texte beaucoup pro et Staline GST pro GUI GUI. Donc maintenant, cela fonctionne. La prochaine chose que nous allons faire est de créer une méthode ici pour presser. Que se passe-t-il quand on appuie sur le bouton ? Ça va être public. Presse vide. Et ce que nous faisons ici, c'est que nous appelons simplement le gestionnaire de bataille et obtenons l'instance. Et nous attaquons était le joueur, donc gestionnaire de bataille, instance de point, attaque de joueur de point. Et qu'est-ce qu'on envoie ici ? Nous envoyons le nom du film et nous envoyons également la cible de combat active. Maintenant, on peut aller dans le chef de bataille. Nous pouvons supprimer les commentaires ici et nous
pouvons arrêter cela maintenant cela va arrêter le fond de fonctionner, mais pas de soucis, nous allons traiter cela dans un peu. Donc, ici, nous avons envoyé la cible de combat active. On sauve ça. Et la prochaine chose que nous devons faire est que nous devons réellement prendre le contrôle de ce menu cible, ou c'est ce panneau de cibles ennemies. Appelons ça le panneau des cibles ennemies. Et nous l'éteignons et sur la base de quand nous appuyons soit sur l'attaque, soit sur les boutons magiques. Alors faisons ça. Nous retournons à notre script, retournant à notre gestionnaire de bataille, garderons cela comme une chose courante, rappeler que nous changeons quelque chose ici. Laisse-moi fermer les dégâts. concessionnaire descend l'ennemi. Et ici, c'est créé sous l'attaque ennemie ou tout ce que vous voulez. Nous allons créer un vide public, ouvrir le menu cible. Et il va prendre le nom de mouvement de chaîne. Et c'est ce qui va être attaché au bouton d'attaque. Donc, ici, nous allons simplement obtenir une référence au panneau cible. Nous allons donc créer un champ sérialisé. Il va être de type objet de jeu. Et ça va être la cible du panneau cible ennemi. Et nous allons mettre ce panneau à vrai. Donc ici, panneau cible ennemi, réactif, vrai. Ok, super. Maintenant, l'étape suivante, 0, et nous allons définir la référence ici. Donc, le gestionnaire de bataille, le menu cible, l'ennemi cible, quel que soit le panneau cible ennemi. Maintenant, on le met à vrai quand on veut attaquer. Maintenant, la prochaine étape évidente est de changer les noms ici pour les noms de l'ennemi. Et ça va faire partie de votre défi. Donc, votre défi est de charger l'ennemi dans une liste, liste entière. Donc, créez une liste de type int pour les ennemis. Boucle à travers tout l'acte des personnages. Si le personnage n'est pas un joueur, ajoutez-les à la liste et imprimez la longueur de la liste à la fin juste pour vous assurer que nous les coupons tous. Alors arrêtez la vidéo dès maintenant et allez créer l'ennemi. Et revenons. Donc, quand nous ouvrirons le panel, nous allons aller de l'avant et obtenir une liste d'ints. On l'appellera les ennemis. Et nous allons créer, assurez-vous que c'est une nouvelle liste d'ints. Et qu'est-ce qu'on fait ici ? Bien, évidemment, nous sommes en train de boucler. Et R est égal à 0 I de moins que l'acte de caractères longueur
point, nombre de points, parce que c'est une liste I plus, plus. Et ici, si les personnages actifs sur la position des yeux en tant que joueur. C' est pourquoi j'ai dit que si ce n'est pas un joueur, puis on va accéder à la liste des ennemis et on va l'ajouter là-dedans. Et enfin, quand nous aurons fini de faire une boucle, nous allons aller au journal de débogage et nous obtiendrons le enemies.com. Sauvegardez ça à Unity. Nous allons tourner où les cibles ennemies. Pour l'instant, gardons juste tous les boutons. Plus tard, nous allons les éteindre et allumer uniquement les boutons dont nous avons besoin. Laisse-moi garder deux d'entre eux. Parce que nous savons que nous avons deux joueurs, deux ennemis, et nous devons éteindre. Le panneau entier ira dans le menu. Le bouton d'attaque que nous allons, vous pouvez voir ici qu'il manque parce que nous l'avons changé. Donc, à partir de nous allons aller au gestionnaire de bataille et nous allons
ouvrir le menu cible avec une chaîne qui va être la barre oblique. On va sauver ça. On va éteindre la scène de la bataille, lancer le jeu, frapper l'attaque à la clé B. Maintenant, nous avons la cible 1, la cible 1. Malheureusement, ça n'a pas changé, mais nous pouvons voir que nous avons deux ennemis ici. Alors continuons. Que devrions-nous faire ensuite ? Évidemment, nous devons changer les noms sur les boutons de la cible. Donc, nous allons ajouter un commentaire ici, commun ceci. Et 4 et moi égal à 0. Ainsi, vous pouvez voir à quel point les boucles sont utiles. Je pense qu'on a créé 20 groupes jusqu'à présent. Donc, les boutons cibles, boutons cibles
battus, nous devons créer cette référence. Donc, ici, nous allons créer un champ sérialisé de type. cible, boutons de cible de combat. On y va. Ça va être un tableau, et ça va être appelé les boutons cibles. Nous allons faire défiler à nouveau vers le bas. Nous allons faire une boucle à travers les boutons cibles longueur point, et ajouter i à chaque tour. Et si le nombre de points ennemis est plus grand que moi alors comme nous l'avons fait quelque part ici, où est-il ? Où avons-nous fait en sorte que nous ayons ? Dans la mise à jour des statistiques du joueur ? Nous nous sommes assurés que le nombre de caractères actifs est supérieur au nombre. Donc nous nous assurons de ça ici. Aussi. Les boutons de la cible, la position que j'ai eu l'objet de jeu. C' est triste, actif, vrai. Et nous ne voulons pas l'instancier. C' est un peu dur et nous savons déjà que nous avons un maximum de cinq, donc pas de soucis à ce sujet. On peut les allumer et les éteindre. Le bouton cible. À la position i point déplacer. Le nom est égal au nom du film que nous avons déterminé ici. Et ici que nous transmettons en utilisant la cible ouverte. Ensuite, nous avons le bouton cible. Nous devons définir la cible de combat active. Donc, la cible
active et active est égale aux ennemis à la position I. Et enfin, nous avons besoin des boutons de la cible. I dot name, point text est égal aux caractères actifs. Et à quoi devrions-nous accéder ici ? Ce sont les ennemis à la position i. C'est parce
que c'est un nom de caractère de point entier. Oh, excusez-moi. Le point doit être en dehors du nom de caractère. Alors que faisons-nous ici et qu'avons-nous fait de mal ? Ok, alors qu'est-ce qu'on fait ici ? Tout d'abord, nous sommes en boucle à travers les boutons cibles. Nous veillons à ce que nous ayons les ennemis, pour cela. Nous le définissons sur true et le bouton cible sur true. Nous définissons le nom de l'humeur. Pourquoi on fait ça ? Parce que nous envoyons ce nom de film et le lecteur à ça. Ensuite, nous fixons la cible, qui est l'ennemi à la position I. Et enfin, nous obtenons le nom
du personnage actif sur les ennemis à la position I. Ok, donc parce que nous avons les ennemis, c' est une liste int. Et puis nous obtenons la position de l'ennemi à l'intérieur de cette liste IntList. Et puis nous utilisons tout ça pour le mettre à l'intérieur de l'acte de caractère et obtenir son nom. Sauvons ça. Et la dernière chose que nous devons faire est une fois que le joueur a fini d'attaquer, nous voulons obtenir le menu cible. Alors que le menu cible, comment l'appelons-nous ? Donc notre panneau cible ennemi et ensuite moi, le panneau
cible points directive fausse. Donc, après avoir fini d'attaquer, nous voulons fermer le panneau. Nous allons aller dans Unity. Que devrions-nous mettre ici ? J' ai oublié. Alors sauvegardons ça. Allons dans les boutons de la cible ennemie et nous allons tous les éteindre. On sauve ça. On dirige le jeu. Nous ouvrons la bataille, nous faisons une attaque. On n'a pas de noms. Pourquoi c'est ça ? Parce que nous n'avons pas défini les boutons et ici, les boutons cibles. Je savais qu'il y avait quelque chose qu'on avait oublié de faire. Sauvegarder ce mal à nouveau, maintenant tout devrait être en théorie fonctionnant très bien. Attaque, on a encore un problème. Double-cliquez sur Ouvrir. Quel est le problème ici ? Ok, donc si on clique sur l'un de ces trucs, on peut voir qu'on n'a pas donné la cible pour ça. Oh, d'accord. D'accord. D'accord. Donc nous cliquons sur ce bouton, nous faisons glisser le texte, nous cliquons sur ce bouton, nous faisons glisser le texte, nous cliquons sur ce bouton, nous faisons glisser le texte, nous cliquons sur ce bouton, nous traînons dans le texte, nous sauvegardons tout cela. On dirige le jeu. Et maintenant, j'espère que quand nous avons essayé d'attaquer, nous avons le maître magique majeur et le journal de guerre n. Très petit. Essayons de maximiser la taille. Nous commençons la bataille, nous attaquons le major ou la guerre. Essayons d'attaquer la guerre Locke. Évidemment, rien ne se passe parce que, encore une fois, j'ai oublié de mettre l'onclick sur tous ces éléments. Perdre le gestionnaire de
bataille, le gestionnaire de bataille ou pas le gestionnaire de bataille, je veux dire, la, la cible ennemie réelle. Donc, nous allons le faire, sur chacun de ces. Là, nous allons, les boutons, sélectionnez-les tous. Lutté, cibler, la presse, sauver ça, exécuter le jeu. Donc c'est la troisième fois que nous essayons de courir notre jeu quand nous attaquons, ce qui montre la serrure de guerre qui lutte contre les principaux maîtres démonistes, ok, donc nous attaquons le même ennemi. Nous devons réparer cela aussi 0. Alors j'ai compris le problème. Si nous courons notre jeu, nous commençons la bataille, nous frappons l'attaque. Nous pouvons voir que le premier représente le bouton. Il a une barre oblique et la cible de combat active est trois, la seconde est quatre. Et j'étais tellement déconcerté ce qui se passe ? Pourquoi cela ne fonctionne-t-il pas ? Chaque fois qu'on veut frapper le Borlaug, on frappe encore le major ici. Donc le problème était, c'est que j'ai fait un mouvement très, ça s'appelle stupide. Quand on choisit un bouton, je les ai tous choisis et je leur ai fixé une seule cible. Nous devrions choisir chaque bouton, faire glisser le script dessus, faire glisser le script dessus. Faites glisser le script dessus
et faites glisser le script dessus. Alors maintenant, nous choisissons la presse pour chacun
des boutons. On y va. Alors maintenant, nous devrions. Enfin. Oui, on y va. Donc, comme vous pouvez le voir, maintenant quand on attaque la page principale, on attaque le journal de guerre. Et on y va. Maintenant, nous pouvons choisir l'ennemi que nous voulons attaquer. C' est cool ? Dans la prochaine vidéo, nous verrons comment utiliser la magie. Alors, je te verrai. N' oubliez pas de valider vos changements chaque fois que nous faisons quelque chose d'incroyable.
108. Configuration de Magic UI: Bienvenue, mes collègues développeurs de jeux. Nous n'avons pas trop fait sur le front de notre jeu, mais sur le backend, nous avons créé beaucoup de code avec beaucoup de boutons et beaucoup de fonctionnalités complexes et détaillées. Alors ne perdons plus de temps, et commençons. Oh, bon moment pour utiliser un peu de magie avec nos joueurs. Maintenant, comment allons-nous faire ça ? Nous ne voulons pas avoir la magie aléatoire qui se passe et choisir pour nous qui est bon avec les ennemis, pas si bon quand il s'agit du joueur parce que nous voulons choisir quel orthographié MON veulent utiliser. Alors allons-y et faisons-le. Tout d'abord, on va éteindre la scène de bataille. Où vont aller à la Canvas ? Nous allons choisir le menu ou les cibles ennemies, peu
importe. On va le dupliquer. Nous allons le rendre un peu plus grand parce que nous pourrions ajouter beaucoup plus de conjoint ici. Nous allons utiliser la grille pour la déplacer du haut juste un peu et de la gauche juste un peu. Ce sera le,
comment devrions-nous l' appeler,
le panneau de choix de sort,
je suppose que le panneau de choix de bec. Appelez ça quelque chose de plus intelligent si vous voulez. Et maintenant, faisons un plus petit, Faisons de cette façon. Donc deux rangées, deux rangées. Dupliquons l'EBIT, le bouton Exécuter. Cela dépend du nombre de sorts que vous avez actuellement. Nous n'avons pas autant de conjoints. Mais à mesure que vous traversez votre voyage et les jeux de RPG, vous savez que vous pouvez collecter conjoint, en apprendre de nouveaux, augmenter vos statistiques de personnage. Donc je pense qu'avoir, disons pour huit sorts,
oui, c'est des boules, je pense que c'est assez. Et fera la boîte yay grand. Nous allons déplacer en utilisant le débit de la grille,
alors déplacez-les vers le haut ou le milieu, ou peut-être ajouter un espacement. Sachez, c'est parfait pour l'instant, nous allons supprimer tous ces boutons, n'
aurons besoin que d'un d'entre eux, qui est le bouton d'attaque. Et on va le changer en quelque sorte de bouton orthographique. On y va. Je vais supprimer l'attaque de barre oblique d'ici. Et qu'est-ce qu'on va faire ? Quand on appuie sur le bouton magique, c'est similaire à la façon dont on utilise le bouton d'attaque. On a appuyé sur le bouton magique. Nous avons des options pour choisir l'un des conjoints que nous avons sur le joueur. Lorsque nous choisissons l'un de ces sorts, nous avons la possibilité de choisir l'ennemi sur lequel nous voulons les utiliser. Nous allons donc créer cette structure tout au long de notre panneau de choix de bec. Commençons. Tout d'abord, allons dans notre chef de bataille. Et deuxièmement, où est le chef de bataille ? Et ici, nous avons besoin d'une petite référence. Fermons ça. Petite référence au menu orthographique. Champ sérialisé, objet de jeu, le menu magique ou panneau de choix magique. Je vais continuer à appeler le menu « get » parce que j'oublie toujours. Et nous avons besoin d'une méthode ici, qui est le vide public, ouvrez le menu. Alors public ouvert, panneau magique ou panneau de choix magique. Et nous allons simplement obtenir le panneau de choix magique aussi sélectif, vrai. Sauve ça. Maintenant, allons dans les personnages de combat et donner à chacun leurs propres coups pour attaquer. Alors, où sont les personnages de combat ? Dans l'unité ? Nous allons aux Prefabs, joueurs de personnages de combat. Donc Draco ici a les attaques disponibles. On peut ajouter combien d'attaques il a, le gramme et Jimmy. Alors voyons, Draco, qu'est-ce qu'il a ? Nous allons verrouiller ça. On va aller aux attaques. Et ici, nous pouvons voir toutes les attaques disponibles. Et rendons ça un peu plus grand. Alors, que peut faire Draco ? Je pense qu'il est un peu sombre, il peut utiliser les tentacules, tous les deux. Et peut-être pas les violettes. Pas les violettes, juste les tentacules. Peut-être qu'il peut utiliser des éclaircissements. Bien sûr. Pourquoi pas ? La foudre et le feu bleu. Je pense que c'est bon pour Draco d'utiliser. Nous allons sauver qui va le déverrouiller, va aller et choisir un Butler nother. Alors, le gramme, que peut faire le sinistre ? Alors voyons voir. Il peut avoir un laser. Et éclaircissant. Donc je pense que c'est assez pour le Gram. Il n'est pas un personnage très dominé, c'est un peu une semaine. Et puis nous avons Jimmy. Alors Jimmy, que peut faire Jimmy ? Jimmy peut tout faire pour qu'il puisse s'en servir, alors on doit enfermer Jimmy. Jimmy le démon, pour qu'il puisse utiliser le feu bleu, le laser, les tentacules violettes,
les tentacules noirs, et l'éclaircissement. Voilà, Jamie, je ne pense pas que tu auras assez de panel pour tout ça, ce qui va faire partie de ton défi, pas maintenant. Ne vous inquiétez pas pour ça. Gestionnaire de bataille. On doit régler le panneau de choix magique. Donc, choix de sort, choix magique, choix de
sort. Je ne sais pas. Ici, nous avons besoin de deux orbites, désolé. Nous devons rester ici et nous devons créer un script de bouton magique de combat. Chaque bouton ici que nous allons
créer en un peu aura son propre script dessus. Et nous allons faire des choses semblables à la façon dont nous avons géré les cibles ennemies. Donc, dans les scripts dans la bataille ont été clic-droit, créer un script C tranchant qui va être les boutons magiques de la bataille. Et nous allons l'ajouter à ce bouton de fichier. Et nous allons l'ouvrir dans Visual Studio. Et ici, nous avons besoin de quelques variables. Donc, tout d'abord, une chaîne publique, un nom de sort, puis un public, et le coût du sort. Ensuite, nous avons besoin de deux variables supplémentaires pour les textes. Sonde de maillage de texte public. Et il y a une chose que j'ai oublié de faire, c'est le coût de ce PAL. Nous devons nous assurer que le joueur qui utilise notre sort sait combien cela va coûter. Donc je vais nommer ça le nom du sort et le rendre surdimensionné. Et peut-être mettre deux ou trois choses. Rends-en un plus grand. On y va. Et je vais ajouter un texte très pro ici. Et où sommes-nous ? Text Mesh Pro. Ce sera le coût du sort. C' est le nom du sort. Et les coûts d'élimination à fixer ici sur le fond. Ce sera la forme à laquelle nous sommes habitués. On va le dimensionner automatiquement. Nous allons le rendre audacieux et nous allons le mettre à trois nines. J' espère que ça a l'air assez bien de derrière. Donc, j'espère que cela ne sera pas très mauvais. On y va. On va le mettre juste là. C' est la taille appropriée pour cela. Nous ne voulons pas qu'il couvre trop le nom du sort V. Oui, on y va, on sauve ça. Allons à ce bouton. Et maintenant, nous allons y trouver une référence aussi ici. Donc, le texte du nom du sort et le texte du coût du sort. Et puis nous allons créer le précédent ici. Supprimons donc le démarrage et la mise à jour. On aura peut-être besoin d'eux plus tard. Si public, vide, presse. Et l'instance de point de gestionnaire de bataille, point ouvert menu cible. Et qu'est-ce qu'il faut ici ? Il faut le nom du film, donc ce sera le nom du sort. Sauve ça. Mais on ne peut pas faire ça. Nous devons nous assurer que le joueur a assez de mana pour utiliser ce sort. Alors je vais vous lancer un défi. Et votre défi est de vous assurer que le joueur a assez de mana. Alors, comment pouvons-nous savoir que le joueur a assez de mana devra
accéder au personnage actif sur le bouton sort. Donc, la première chose que vous devez faire est d'accéder à la variable du mana actuel sur le personnage de combat. Vous aurez donc besoin d'une méthode qui renvoie le personnage du gestionnaire de bataille. Ensuite, lorsque vous appuyez sur le bouton, créez une condition if qui appelle cette méthode et vérifie si elle est suffisante pour le spot. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Donc, dans le gestionnaire de bataille, nous allons retourner le personnage actuellement actif,
si personnage de combat public. Et ici, nous allons obtenir le caractère actif actuel. Je voulais l'appeler majordome ou personnage, et va simplement retourner le caractère actif sur le terme actuel. Et c'est tout ce qu'il nous faut faire. On va sauver ça. On retournera dans le bouton magique. Et ici avant de lancer un sort, va créer une condition. Nous allons aller au gestionnaire de bataille, point instance point obtenir caractère actif. Et nous allons accéder au mana actuel sur lui. Et nous allons vérifier s'il a plus que le coût du sort. Et puis nous allons déplacer l'instance de bataille ici. Et que devrions-nous faire d'autre après avoir appuyé sur ce bouton ? Eh bien, nous voulons tout d'abord fermer le menu. Donc, gestionnaire de bataille, l'option de menu magique ou les panneaux de choix de sorts, quelque chose comme ça. On verra. Donc, gestionnaire de bataille instance point, point magique. Non, allons dans le chef de bataille. Nous devons nous assurer que c'est le panneau de choix magique. Nous pouvons créer une méthode pour alterner ou nous pouvons simplement la rendre publique pour l'instant. Juste pour rendre les choses un peu plus faciles, nous gardons ça. Ainsi, la magie de l'instance, le panneau de choix qui définit actif sur false. Et puis nous devons également enlever le mana du personnage. Donc, gestionnaire de bataille instance
point, point, obtenir le caractère actif, point courant mono est inférieur ou égal au coût du bec o k. génial, donc maintenant nous sauvegardons cela, nous retournons dans notre jeu. Nous allons sauver tout cela. Et dans la prochaine vidéo, nous allons en fait assigner les scripts à notre bouton et les changer. Je dois couper la vidéo maintenant c'est déjà trop grand et il y a beaucoup d'étapes à faire. Alors. Je te verrai dans la prochaine.
109. Utiliser la magie: Bienvenue, Mes développeurs de jeux préférés. Dans cette vidéo, comme vous pouvez le voir, j'ai gagné une bataille. Je suis si fière de moi-même. Quand nous courons notre jeu, nous avons touché la touche B. On utilise la magie. Comme vous pouvez le voir, nous avons des lasers a été éclaircissement qui nécessitent 120, la foudre. Donc nous attaquons avec le Gram quand nous avons eu le seigneur de guerre, vous pouvez voir qu'on perd un peu de Mona. Et nous pouvons faire la même chose quand il s'agit de Draco, maître de la
foudre, nous pouvons choisir l'ennemi que nous voulons attaquer. Nous pouvons choisir avec quel orthographe nous voulons attaquer. Nous pouvons choisir si nous voulons utiliser la magie ou simplement les attaquer. Et tout cela sera possible dans cette vidéo, bien
sûr, nous avons besoin d'un peu de peaufinage. Vous remarquerez à la fin, il y a encore beaucoup de choses que nous devons faire pendant que nous jouons à travers la bataille et vérifier certains des inconvénients que nous avons là-bas, quelques bugs et ainsi de suite. Donc, d'ici là, ne perdons plus de temps. Commençons et assurez-vous de toujours valider les changements que nous faisons dans cette vidéo. Oh, ok, donc pas besoin d'expliquer quoi que ce soit. Nous allons continuer avec notre magie en utilisant des pouvoirs. Alors ouvrons le chef de bataille. Défilons vers le haut et obtenons une référence à tous les boutons magiques. Donc, un champ sérialisé avec les boutons magiques de bataille pour recréer cela. On l'a fait. Et les boutons magiques. On y va. Maintenant, allons chercher une référence à eux. Donc ou les coûts d'élimination. Je ne suis pas sûr d'épeler des boutons magiques, peu importe ce que vous voulez les appeler. Appelons les boutons magiques. Et nous allons ajouter 1,
2, 3, 4, 5, 6, 7, 8 ou assez. Allons voir le chef de bataille. Fermez ça. Sélectionnez tous les boutons magiques, ajoutez-les ici, éteignez-les tous. Donc nous prenons le contrôle de la France avec. Donc comme tous et éteignez-les tous. Super. Revenons à l'endroit où nous ouvrons notre panel. Donc ici, nous allons les regarder
tous et les allumer et les éteindre et dire leurs noms. Donc quatre et r est égal à 0. Je suis moins que les boutons magiques. Longueur des points, longueur des points I plus, plus. Nous allons vérifier si les caractères actifs du tour en cours. Déplacement d'attaque par points disponibles. La longueur des points est supérieure à i. Donc c'est similaire à ce que nous faisons. Chaque fois que nous avons des boutons, nous devons nous assurer que nous avons plus de mouvements d'attaque disponibles. Nous allons vérifier les boutons magiques à la position i, point GameObject, point actif, true. Ensuite, les boutons magiques à la position
que je pensais épeler mon nom est égal à obtenir le caractère actif. Donc maintenant, nous avons le caractère actif get actuel. C' est cool ? Donc on peut l'utiliser ici parce qu'il renvoie le courant. On aurait pu l'utiliser ici, mais on s'y habitue. Donc l'attaque par points se déplace disponible à la position I. Nous gardons ça. Et enfin les boutons magiques à la position i, points cloche, nom, texte. On y va. Le texte est égal aux boutons magiques à la position I épeler le nom. Donc, parce que chaque bouton magique de bataille a un nom spécial, alors nous allons accéder au coût du bec verseur, orthographier le texte du nom et définir ce nom de bande. Nous aurions pu aussi arriver ici dès le départ. Peut-être que ça aurait été mieux, mais parce qu'on met tout ici et ici dans la salle de bains, gardons-le ici pour qu'on sache. D' accord. Donc nous ouvrons le panneau, nous mettons tout pour le fond pas nous avons mis la
moitié des choses ici que la moitié des choses ici. Donc, de retour dans le chef de bataille. Enfin, ce que nous devons faire, c'est que nous devons vérifier ou remplir, en fait dissiper les coûts. Et ça va être votre défi. Votre défi est d'obtenir ce podcast et de l'appliquer. Donc bouclée à travers les mouvements de bataille, utilisez j au lieu de I parce que nous utilisons déjà le I. Vérifiez si les noms correspondent au nom du sort sur le bouton. Réglez le coût du bec sur le bouton, et mettez-le également sur le texte. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bienvenue de retour. C'était donc un défi un peu difficile, je crois. Donc, nous allons créer une boucle for, et la boucle for ne devrait pas être ici. Il devrait être ici. Alors quatre. Et nous allons aller de l'avant et créer un int j égal à 0, tandis que j est inférieur à la liste des
mouvements de bataille longueur point j plus plus. Donc, nous allons passer en revue tous les mouvements de bataille. Si la bataille se déplace moins, position, nom de point
j est égal aux boutons magiques. Position, GA, position, je veux dire point, nom du sort. J' ai écrit tout ce temps en dehors des parenthèses. D' accord. Donc, nous nous assurons que nous l'avons disponible que le bouton magique. À la position i, coût des sorts, coûts des sorts. Le coût normal pour l'instant va être fixé. On doit l'enlever du joueur. Et dupliquons cette ligne. Coûts de sorts, texte, mouvement de bataille. Ou on peut l'utiliser immédiatement ici. Copiez cela, collez-le ici, le coût de l'
orthographe point àString. On y va. Alors maintenant, gardons ça. Allons dans notre Unité. Je suis presque sûr qu'on a oublié beaucoup de choses. Le problème ici, quel est le problème ? Chaînes de texte Mesh. Oh, ok, ok. Texte. Sauve ça. Maintenant, nous ne devrions pas avoir d'erreurs. Ok, super. Donc maintenant, nous allons obtenir ça. On va le voir nécessaire. Ils ont tous besoin d'un peu de travail. Donc je pense que nous pouvons les laisser et aller de l'avant et vérifier le texte du nom du sort, le sort coûte du texte. Et nous allons ajouter ici la presse. Sauve ça. Nous allons le dupliquer. Combien avons-nous eu ? Allons-le. Voyez combien il y en avait. Sauve ça. Donc vous pouvez voir maintenant que c'est comme ça que nous gérons. Donc, chacun le script magique du bouton ici est utilisé sur celui-ci. Donc, avant de dupliquer les boutons, assurez-vous de créer le premier avec précision et correctement, puis de les dupliquer. Donc, par exemple, choisissons le bouton ici. Si nous avons choisi le script, le script sur le bouton magique que nous utilisons. Si nous choisissons dispel name comme dispel nom du bouton que nous choisissons. Alors j'espère que c'est compréhensible. Nous allons tous les éteindre. Nous allons économiser, nous allons fermer le panneau de choix, lancer le jeu. Frappez la clé B, les chaussures, la magie. Pourquoi ça ne marche pas ? Gestionnaire de bataille, panneau de visites orthographiées. Ok, au menu, La magie. Nous avons oublié de faire la chose la plus importante qui est ouvert le panneau magique. Ouvrez des panneaux magiques, sauvegardez ça. Non, non, non, ne lance pas le jeu. On doit éteindre la scène de la bataille, lancer le jeu. Allons à la magie. Et il y a un problème. Le problème est ici et que le bouton magique n'est pas référencé correctement parce que y n'est pas référencé correctement, mais vous pouvez voir que nous avons le laser. On peut choisir le Locke de guerre, et on a appliqué le laser. Si éclaircissant. Ok, donc il y a certainement quelque chose qui ne va pas. C' est parce que si vous allez au gestionnaire de boutons, quel est le problème ? Oh, ok. Donc il nous a tout effacé. Et puis nous ne nous sommes pas assurés que pour les ajouter à nouveau. Ok, on y va. C' est si agréable que nous puissions réellement double-cliquer sur l'air et aller immédiatement à la mauvaise ligne pour commencer à diagnostiquer. Encore une fois. Allons courir, Testez ça. Espérons que cela devrait fonctionner quand nous avions la magie, nous avons laser éclairant parce que nous travaillons sur Draco, je crois au début. Donc si nous décliquons, allons à Draco, Draco, Draco, Draco. Préfabs joueurs. Draco a des tentacules de foudre. Non, je crois que c'est le Grim. Alors. Guerre éclair Locke. Oui, on y va. Nous avons appliqué la foudre à la chance de guerre et nous avons perdu tout notre mana. Donc maintenant, nous utilisons Draco. Vous pouvez voir que nous avons le conjoint que nous pouvons utiliser. Donc on va utiliser les tentacules. On ne peut pas les utiliser parce que je ne pense pas qu'on a assez de mana. Donc, par exemple, l'éclaircissement a besoin de 120 mono tandis que Jacob, je veux dire Draco a, voyons. Draco a du mana, 10. Ok, très gentil. Alors, quel est le problème ? Je pense que nous avons fait quelque chose de mal avec notre code parce que mana
actuel a été perdu et je ne pense pas. Tout ce qu'on a à petit Mano. Donc, le stand mano actuel et le maximum est tan. Bien sûr, nous ne pouvons pas les utiliser. Bien sûr, nous ne pouvons pas les utiliser. On va devoir aller à Draco. Ajoutons un peu de mana à lui. Sérieusement, ajoutons 1000 000 et le sinistre, mille avec un millième. Et le joueur. Appliquons la lumière à Draco, appliquée sur le sombre. Sauvegardez que nous allons relancer le jeu. On va commencer la bataille. Et oui, c'est le développement du jeu. Tu fais toujours quelque chose. Tous ces éléments ont besoin de tests, donc éclaircissant, éclaircissant sur le maître principal. On y va. Si nous collectons sur le Grim, nous pouvons voir qu'il a perdu le courant Mano 120. Il a perdu du mana. Draco a la quantité de mana. Encore une fois, nous utilisons la magie. Voyons voir. Nous voulons utiliser les tentacules bleus ou quelque chose comme ça. Nous allons les utiliser pour la guerre. Ils coûtent 200. Donc, quand on a eu la guerre Locke, on devrait voir ça. Oh, donc on a déjà perdu. On y va. Quand on frappe, on utilise à nouveau la magie et on utilise les tentacules violettes sur les démonistes. Tu viens de voir ça ? Parce que nous avons frappé, je pense qu'un critique là où nous allons. Jimmy a traité 2772. Whoa, Jimmy, c'est un numéro. Ça fait beaucoup de dégâts. Maintenant encore, nous commençons. Mais comme vous pouvez le voir, nous avons encore un petit problème et ici, ce n'est pas la mise à jour. Nous avons tous ces fichiers à notre disposition à partir de chaque personnage, encore une fois, magique. Donc, vous pouvez voir qu'il y a un petit problème ici. Et la dernière étape que nous avons oublié de faire était de créer une déclaration
else ici et dit que les boutons magiques à la position, je pensais que l'objet de jeu était actif sur false. Donc maintenant, nous ne devrions pas voir de sorts qui ne devraient pas être là. On dirige notre jeu. Nous avons eu l'utilisation magique de la foudre, magie sur les démonistes, de la magie, de la foudre. Donc magique, comme vous pouvez le voir, parce que nous sommes sur Draco, nous ne voyons pas d'autres attaques. Magie, et vous pouvez voir qu'on a tué la marche du monde. Mais on ne l'a pas retiré. Et parce que Draco est que nous ne pouvons qu'attaquer. Vous verrez donc qu'il n'y a qu'un terme pour les ennemis et un terme pour nous. C' est parce que la guerre est morte, mais nous pouvons toujours l'attaquer et nous
attaquons toujours avec Draco 0 parce qu'il n'est pas encore mort. Donc, nous utilisons l'éclaircissement sur le mur. La chance peut voir qu'il n'attaque plus du tout, mais nous pouvons toujours l'attaquer, ce qui n'est pas bon, pas assez de magie. Hé, on veut. J' espère que vous avez apprécié cette vidéo. On peut enfin quand un match, et je te verrai dans le prochain.
110. Montrer ne pas suffisamment de magie: Bienvenue, Mes développeurs de jeux préférés. Dans cette vidéo, nous avons un panneau de notification qui nous dit diverses choses. Et l'un des plus importants est que si nous essayons, si nous avons 0 mono ou pas assez mono pour un certain bec, qui est l'éclaircissement. Disons que nous essayons de frapper la foudre, mais nous n'avons pas assez, donc nous devons faire quelque chose de différent. Quoi qu'il en soit, ne perdons plus de temps et
commençons à ajouter des notifications à nos batailles. Oh, ok, donc actuellement quand nous n'avons pas assez de mana, nous ne pouvons pas faire de magie, mais ce n'est pas suffisant parce que nous ne pouvons pas voir, ou nous ne pouvons pas savoir que nous n'avons pas assez de mana pour le faire. Donc, ce que nous allons faire, nous allons profiter de cette occasion pour créer une notification liée. Alors comment allons-nous faire ça ? Je vais ouvrir la toile. Je vais aller au menu. Je vais trouver le bouton d'attaque. Et avant de continuer, je dois éteindre la scène de bataille. Je vais utiliser le bouton d'attaque. Je vais le dupliquer. Et je vais décocher ça de la bataille Canvas ou tu sais quoi ? Gardez-le dans la bataille Canvas. On va juste le mettre sur le menu. Et ce sera la notification de bataille. Donc, mais pas de panneau de cations TV, vous pouvez l'appeler si vous voulez. Nous allons supprimer le composant bouton parce que nous ne le pousserons pas. Et je vais le mettre ici. Je vais le rendre un peu plus grand. Installé juste ici. Donc, cela sera utilisé à des fins générales. Donc je vais ouvrir le texte et je vais changer la taille de ce texte pour être autour de yay big. On y va. Je vais le mettre au milieu et je vais m'assurer qu'il est ostracisé et augmenter le maximum autant que possible. Et le minimum aussi petit que je pense que je peux. Et ce sera les notifications de bataille et
assurez-vous de tailles automatiques parce que vous ne savez jamais quel type de notification vous voulez le mettre ici. Donc, parce qu'il s'agit d'un panneau de notification et d'usage général, nous allons utiliser un script pour le manipuler. Alors faisons un clic droit ici, allez créer un script C-Sharp, et nous allons appeler cela les notifications de bataille. Entrez. Attendez que ça se compile. On va l'ajouter à la certification du bâton. Et on va ouvrir le script. Oh, super. Alors qu'est-ce qu'on va faire ici ? Tout d'abord, nous aurons besoin d'une référence à quelques choses. La première chose sera, combien de temps cela restera-t-il à l'écran ? Donc ça va être un flotteur, vivant. Et puis la deuxième référence sera évidemment au texte ou au texte Mesh Pro. Nous devrons donc utiliser l'AMP. Et ce sera de type. Merci, maille pero Gui. L' avis texte, qui est des notifications texte, supprimera le début et la mise à jour car nous n'en avons pas besoin pour l'instant. Et je vais créer deux méthodes ici. Le premier sera un texte public vide. On va juste prendre une chaîne de texte. Je veux dire, je veux dire une taxe de type chaîne. Et ce que nous ferons, c'est que nous mettrons le texte. Notez que cette valeur doit être égale au texte qui a été envoyé. Ensuite, nous allons créer une autre méthode pour activer cette notification d'objet de bataille. Donc c'est un vide public activer. Et ici, nous allons simplement obtenir l'objet du jeu et définir l'actif sur true. Ok, Maintenant, la prochaine chose que nous voulons faire est de désactiver cette notification ou de la définir pour définir l'actif sur false après un certain laps de temps. Comment faites-vous ça ? Je t'entends presque que ça utilise des coroutines, accord, donc on va utiliser Coubertin. Mais vous allez utiliser des coroutines parce que vous allez faire disparaître la notification en créant une co-routine qui fera
disparaître la notification après la fin du temps d'être vivant. Alors arrêtez la vidéo dès maintenant et allez créer ce facile secrètement. Hé, bienvenue. Donc ce n'était pas un défi trop difficile, je crois, parce que vous connaissez déjà les coroutines. On en a fait une tonne. Donc ce sera le numérateur Eigen qui fait, non, cette, cette bière. C' est comme ça que vous écrivez disparaître et ensuite nous allons céder le rendement. Ce n'est pas comme ça que vous écrivez retour nouveau. Et nous attendrons quatre secondes avant d'être en vie. Comme fini. Sauve ça. Et enfin, après que nous avons attendu ce temps, vont accéder à l'objet de jeu. Point défini actif. À faux. On va sauver ça. Et après avoir activé, nous allons commencer la co-routine, ce qui fera l'avis. Ok, ne peut pas renommer cet élément. On devrait peut-être ajouter des crochets. Et cela devrait être avec un IEP Enter. Et je ne suis pas sûr que tu saches comment je fais ça. Je suis presque sûr que nous avons couvert cela, vous maintenez Contrôle ou R enfoncé et vous pouvez changer chaque instance de ce monde. J' espère que je n'ai pas fait ça à votre insu. Quoi qu'il en soit, continuons un, où allons-nous appeler ça ? Eh bien, évidemment, dans les boutons magiques de combat, après avoir appuyé sur ce bouton et avoir découvert que nous
n'avons pas assez d'argent pour utiliser ce sort. Sinon, nous allons utiliser la salle de bain pour les vacances, mais il y a un léger problème ici. Et ce n'est pas un problème en fait, une hiérarchie de code ou une façon de
penser d'implémentation froide parce que nous allons utiliser cette notification de bataille dans de nombreux cas dans nos batailles, parce que ce n'est pas seulement pour le 0, on n'a pas assez d'argent. Ou peut-être tout ce que nous avons fui ou vous ne pouvez pas vous
enfuir ou vous avez fait un coup de dégâts critiques ou quoi que ce soit. Donc, parce que nous allons l'utiliser tout au long de notre bataille, il est préférable d'en obtenir une référence dans le gestionnaire de bataille. Donc je vais fermer tout ça. Et dans le gestionnaire de bataille, je vais obtenir une référence aux notifications
de bataille et à l'avis de bataille. Et nous allons accéder à l'avis de bataille sur le gestionnaire de bataille, puis utiliser les méthodes dessus. Donc, le gestionnaire de bataille, instance de
point, bataille de points, remarque que cela devrait être public. Évidemment. Il aurait dû remarquer que le coup droit, pas de soucis, dire variable publique. Donc, l'avis de bataille point setText. Et cette taxe va être, nous n'
avons pas ou quelque chose comme ça. Et ce qu'on va faire, c'est l'activer. Donc, gestionnaire de bataille instance point. Nous aurions dû créer une seule variable pour ces trois mots. Pas de soucis. Et ici aussi, ça aurait été beaucoup mieux. Et enfin, qu'est-ce qu'on fait ici ? Nous sortons le menu magique. Donc, gestionnaire de bataille, cette instance, la magie du menu, le menu magique, panneau de choix magique qui met actif sur false. C' est ça. Et certains d'entre vous se demandent peut-être pourquoi utilisons-nous une méthode pour définir le texte, une méthode pour l'activer. Pourquoi ne pas simplement définir le texte et activé alors ? Parce que peut-être en cours de route, vous aurez besoin pour une raison quelconque de définir le texte séparément, puis activé séparément. Vous pouvez les définir sur la même méthode. C' est bon, pas de soucis pour ça. Mais je pense que c'est mieux, propre et peut-être sera utilisé plus tard pour juste définir le texte ou juste pour activer pour certaines raisons. Ne vous inquiétez pas pour ça. Sauvons ça. Retourne à notre jeu ici. Il faudra aller au gestionnaire de salle de bain et lui donner la notification de bataille. Ou avant de le faire, nous devons définir l'avis de texte. Et mettons-nous deux secondes. Ensuite, nous irons voir le chef de bataille et lui donnerons la bataille des nœuds. On va sauver tout ça. Nous allons aller de l'avant et éteindre la scène de bataille. Nous lancerons notre jeu, commencerons la bataille. Et pour évidemment, nous devrions désactiver la notification de bataille va courir à nouveau. On va commencer une bataille. Nous allons aller à la position des calques, position un, le gramme, le Mano actuel sera réglé à 0. On va sauver ça. Nous pouvons économiser en mode jeu, donc nous accédons à la magie. Essayons le laser. Nous n'avons pas assez de manière et il s'éteint si bien que
cela semble fonctionner. J' espère que vous avez apprécié cette vidéo. J' espère que tu t'amuses. Dans la prochaine vidéo, nous verrons comment nous allons tuer nos ennemis parce qu'ils sont actuellement en quelque sorte invisibles. Je te vois dans la prochaine vidéo.
111. Fuir: Bienvenue, Mes développeurs de jeux préférés dans cette vidéo, quand nous exécutons notre jeu, quand nous avons appuyé sur la touche B, nous avions le bouton Exécuter, mais nous ne l'avons jamais utilisé. Donc maintenant, quand on appuie sur le bouton Exécuter, comme vous pouvez le voir, on peut s'enfuir. Mais parfois, quand nous appuyons sur le bouton Exécuter, nous pouvons voir qu'il n'y a pas d'échappatoire, donc nous ne pouvons pas fuir nos problèmes. Nous devons toujours, ou parfois, ou la plupart du temps les affronter. Alors ne perdons plus de temps. Allons faire face à nos problèmes et commençons. Ok, donc maintenant nous voulons donner une chance à nos joueurs de fuir parce que nous sommes
confrontés à des ennemis surpuissants ou à des ennemis qui sont bien au-dessus de notre niveau de combat. Alors allons de l'avant et créons une méthode pour cela. On va voir le chef de bataille. Et tandis que le gestionnaire de bataille , gestionnaire de
boutons, je vais le mettre ici. Et nous allons créer une variable ici, un champ sérialisé, qui va être la chance de s'enfuir. Donc, c'est combien de chance avons-nous la chance de s'enfuir ? Et on va le mettre à 0,5. Cela devrait donc dépendre de chaque bain. Et puis nous allons faire défiler jusqu'à la fin. Et ici, nous allons créer un vide public, fuir. Et qu'allons-nous faire ici ? Eh bien, je vais vous lancer un défi parce qu'on peut même s'échapper ? C' est la question à laquelle vous devez répondre. Créez une méthode fugueuse, ce que j'ai déjà fait pour vous. Dans celui-ci, vous devrez vérifier une valeur aléatoire. Et si c'est supérieur à un certain seuil, nous laissons les joueurs s'échapper. Sinon, montrez un avis qu'il n'y a pas d'évasion. Donc, tout comme nous l'avons fait lorsque nous avons implémenté le succès critique, vous devrez aller de l'avant et implémenter ceci dans notre méthode de fuite. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Bon, bienvenue. Donc, la première chose que nous allons faire est d'obtenir une valeur de point aléatoire. Et cela nous donnera une valeur comprise entre 01 et si cette valeur est supérieure à la chance de s'enfuir parce que la chance de piste est 0,5, si je me souviens bien, oui. Donc, si c'est plus grand, ça veut dire que nous avons 5050 chances de fuir, alors nous allons mettre le combat est actif à faux. Et la scène de bataille sera également désactivée. Dans le jeu de symboles de combat actif sera désactivé. Et sinon. Si nous ne pouvons pas nous enfuir, alors le prochain terme sera terminé. Le point d'avis de bataille setText
sera qu'il n'y a pas d'échappée avec un point d'exclamation. Et enfin, l'avis de bataille s'activera. On va sauver ça. On va retourner dans notre jeu. On va aller au bouton qui nous permet de fuir. Donc, le menu, le bouton Exécuter, nous allons ajouter une méthode sur clic ici. Alors on y va. On va traîner dans les chefs de bataille. Le GameObject accède au gestionnaire de bataille et nous allons fuir. Donc nous allons sauver ça. Nous allons courir notre jeu. Appuyez sur la touche B, va essayer de courir. Il n'y a pas d'évasion. Essayons encore. On y va. Donc nous avons pu échapper la deuxième fois. Si nous essayons de nouveau la bataille, vous remarquerez que nous avons un léger problème ici que le sombre Draco et Jimmy sont créés à nouveau. Les premiers sont détruits. Donc c'est un grand non-non. On ne veut pas que ça arrive. On réparera ça plus tard dans nos vidéos. Mais pour l'instant, comme vous pouvez le voir, nous avons la capacité de fuir la bataille, ce qui est un peu lâche, mais nous sommes capables de le faire. C' est une option. Quoi qu'il en soit, je te vois dans la prochaine vidéo.
112. Utiliser des objets pendant la bataille: Bienvenue de retour, Mes développeurs de jeux préférés et cette vidéo, quand nous exécutons le jeu, quand nous ramassons quelques éléments, quand nous commençons une bataille, si nous voulons utiliser certains éléments, nous y allons, nous pouvons voir que les éléments que nous avons ramassé ici dans notre inventaire, prêt à être utilisé. Si nous cliquons, nous pouvons voir que c'est une armure d'argent. C' est un bel océan. C' est une hache dorée que nous ne pouvons pas utiliser, nous ne pouvons pas fermer, mais ils sont là pour nous. Alors ne perdons plus de temps et commençons. Oh, ok, donc le dernier bouton que nous voulons utiliser est le bouton Use Items. Alors allons de l'avant et implémentons ceci dans notre code. Nous allons, tout d'abord, excusez-moi, avant d'implémenter cela dans notre code, nous allons créer le menu pour cela. Donc, ce que nous allons faire est que nous allons aller dans la toile et les éléments Menu et de résister où visiter le panneau des éléments. Et nous allons simplement dupliquer ce panneau. On va le traîner jusqu'à la toile de bataille ici. Ok, donc on va allumer ça et ensuite on va faire quelques changements ici. Donc la première chose est qu'on n'aura pas aussi grand parce que j'ai l'impression que nous allons cliquer ici. Et nous verrons, nous appellerons ceci le panneau des éléments d'utilisation. Et nous allons changer quelques choses ici. On va bouger ça. Et certains des éléments ici doivent être corrigés. Donc je vais le faire un par un et peut-être que je te verrai quand j'aurai fini de tout réorganiser. Kay, bienvenue. Qu' est-ce que j'ai fait ici ? Tout d'abord, j'ai changé la mise en page des éléments de celui-ci. J' ai changé l'article ici, le bouton article. Donc, je vais supprimer tout cela est que nous sommes juste pour que je puisse disposer la grille correctement. J' ai fait cet article 0.7 sur l'échelle juste ici sur la Transformation Rect. Et je vais préfabriquer ça. Alors je vais aller dans les Préfabs. Et où devrions-nous sauver ça ? Où avons-nous sauvé le précédent ? Sauvegardons ça à l'intérieur de la bataille. Peut-être. Changons cela des personnages de combat deux, ou sauvegardons et des objets peut-être. Je ne sais pas. À l'intérieur des personnages de combat, je vais renommer ceci en préfabs de bataille. Bataille des préfabs. Et je vais juste utiliser cet article ici. Je vais créer un préfabriqué original. Et ça va s'appeler le bouton
Objets de combat parce que nous allons instancier à chaque fois. Et ce sera les objets mais. Bouton. Appuyez, entrez. On y va. On sauve ça. Qu' est-ce que j'ai fait d'autre ? J' ai un peu changé le panneau de choix des personnages, donc je me suis assuré que tout s'aligne dans ce menu plus petit. Je vais éteindre ça. On garde tout pareil. Mais peut-être que plus tard, nous devrions enlever l'onclick. Et là, tu sais quoi, on va les enlever pour l'instant. Valeurs uniques, objets différents, perdus. Pas de soucis à ce sujet. Supprimons simplement cela en cliquant parce que ceux-ci vont utiliser différentes méthodes, je suis sûr. Et qu'avons-nous fait d'autre ? Laisse-moi éteindre ça. Au panneau d'affichage des articles, j'ai fait un peu plus petit juste pour qu'il puisse tenir à l'intérieur de cet endroit ou de l'endroit qu'il a. Le bouton US. J' ai aussi enlevé l'onclick. C' est toujours pareil. J'ai juste changé la taille. J' ai changé le bouton de défection en le bouton de fermeture, parce que maintenant nous allons l'utiliser pour fermer le menu. Si nous ne voulons plus utiliser les articles, nous aurions pu simplement utiliser les éléments ici, mais pas de soucis à ce sujet. Le nom et la valeur des éléments ainsi que la description, tous sont définis sur 0,8 sur l'échelle et juste positionnés différemment. Et je pense que c'est tout ce que j'ai pensé. Alors on y va. Je pense que c'est tout ce que j'ai changé. Et cela utiliser le panneau des éléments pour les batailles. Maintenant, revenons en arrière et commençons à coder. Donc la première chose que nous allons faire est dans le gestionnaire de bataille, nous allons monter et nous allons
obtenir une référence à toutes les nouvelles choses que nous avons créées. Tout d'abord, nous allons créer un objet de jeu public, qui va être les éléments à utiliser menu, je suppose que nous pouvons l'appeler ou panneau, appeler comme vous voulez. Ensuite, nous allons créer un champ sérialisé, qui va être de type items manager. Et ce sera l'élément sélectionné. C' est donc presque la même chose que lorsque nous avons créé l'inventaire et les articles sur le Canvas normal. Vous verrez que nous utilisons même la même méthode. Donc, la deuxième ou la troisième référence est le conteneur de fente d'élément. Et c'est là que nous allons mettre tous les éléments. Nous mettrons tous les articles. Je veux dire, c'est le bouton Items que nous allons instancier. Celui-ci, qui va être une transformation,
va être le parent de conteneur de fente d'élément. Et enfin, nous allons obtenir le nom et la description des articles. Donc, le champ sérialisé qui va être taxé beaucoup pour et contre pour
être l'article, le nom, l'article, la corruption. On y va. La prochaine chose que nous devons faire est de créer une mise à jour des articles dans l'inventaire. Nous allons donc mettre à jour les articles en stock. J' aurais dû, tout d'abord, m'
assurer que disons le vide public. Et puis nous allons simplement aller dans notre gestionnaire Canvas. Quel était le nom ? Regardez combien de scripts nous avons. Donc je vais aller dans le gestionnaire de menu ou est-ce, euh, ok, alors allons au script de notre attente pour que cela combine le gestionnaire de menu canevas. En outre, il s'appelait Menu Manager. Donc ici, quelque part nous avons les éléments de mise à jour, donc nous allons juste copier cela parce que je l'ai copié, va copier avec le nom ou aller copier. On va aller dans notre chef de bataille et on va le coller ici. Donc, le conteneur de fente d'élément. Copier. On y va. Sauvegardez cela parce que c'est exactement la même méthode que nous faisons. Nous détruisons tous les objets précédemment détenus ou apparus. Ensuite, nous passons par chacun d'entre eux. Nous, qu'est-ce qu'on fait avec l'instanciation ? Nous définissons l'image, nous définissons
la taxe, le montant et le dernier, qui est l'élément en bas. Ok, super. Maintenant, la prochaine chose que nous voulons faire est que nous voulons utiliser l'élément sélectionné pour cela. Nous devons aller de l'avant et vous lancer un défi. Votre défi est donc de sélectionner l'article dont vous avez besoin. Vous devrez donc créer une méthode appelée élément sélectionné à utiliser avec un argument ou un paramètre de l'élément que nous voulons utiliser. Ensuite, l'énergie devra définir l'élément sélectionné et imprimer le nom et la description. Avec cela, mettez la vidéo en pause dès maintenant et allez faire le défi. Bon, bienvenue. Donc, ici, nous allons aller de l'avant et créer un vide public élément sélectionné à utiliser. Et il va prendre N et élément de gestionnaire d'éléments à utiliser. Et ici, nous allons définir l'élément sélectionné comme l'élément à utiliser OKR. Donc, pour cela parce que nous avons écrit des éléments pas article, alors le nom de l'élément est go dot txt va être égal à n'importe quel élément à utiliser ou nous pouvons utiliser l'élément sélectionné. Donc, l'élément à utiliser le nom de l'élément point, alors le texte de description de l'élément serait égal à l'élément. Pour utiliser cette description d'élément. On y va, sauve ça. Maintenant. Nous devons utiliser la méthode de presse que nous avons sur nos boutons. Laisse-moi te montrer. Nous pouvons le voir sur le préfabriqué que nous avons créé, qui est dans la bataille. Ici, vous pouvez voir que nous avons la bataille. Ouvrez donc le script pour le bouton. Donc, en bas à droite ici, nous avons le script du bouton Items et nous allons l'utiliser. Nous allons donc double-cliquer sur le bouton Articles. Et ici, si vous vous souvenez, nous avons la méthode de presse, mais maintenant nous allons ajouter une autre condition. Donc d'abord, nous utilisons les deux. Si nous avons le menu actif que si nous avons le menu boutique actif. Maintenant, si nous avons le bas actif, donc nous allons vérifier si sur l'instance de point du gestionnaire de bataille, point, menu des
éléments ou les éléments à utiliser le menu, point est actif dans la hiérarchie. Ensuite, ici, nous allons accéder à l'instance de point de gestionnaire de bataille, point sélectionné élément à utiliser. Et nous allons le définir comme l'élément sur le bouton. Article sur le bouton, enregistrez-le. On y va. Et maintenant pour tester ça, je vais retourner à Unity. Je vais quitter le préfabriqué ou l'élément sur les boutons devrait être réglé. Et ici, nous avons déjà créé tout ça. Je vais y retourner. Je vais aller de l'avant et ajouter quelques articles sur le terrain. Je voulais aussi faire quelque chose ici. Oh, tourné de la qu'est-ce qu'on devrait éteindre ? Le panneau des articles ? Oui. On y va. Nous devons nous assurer que c'est éteint. Et nous devons mettre quelques choses ici. Oui, c'est ce qu'il faut faire. On va ouvrir le panneau américain. Donc, tout d'abord, nous avons besoin des éléments pour utiliser l'objet de jeu. On y va. L'élément sélectionné qui sera défini seul. Cela aurait pu être privé, mais nous l'utilisons à différents endroits. Donc, le conteneur de fente d'élément, et ce sera les préfabriqués sur pour cliquer ici. Allez aux Prefabs, allez à la bataille maritime. Et ce sera le conteneur de fente d'article. Nous aurons le panneau d'affichage des éléments, qui devrait être ici, le parent conteneur. Nous avons le nom de l'article. Donc, si nous ouvrons la description de l'article, Cela devrait probablement avoir un meilleur nom, la valeur. Et la valeur. Et je pense que c'est tout. On va sauver tout ça. Nous allons fermer la scène de bataille. La scène de bataille. Sauve ça. Ouvre ça. Et avant d'oublier, nous allons juste zoomer sur le joueur à quelques objets ici. Donc, si nous allons aux Préfabs, les objets, ajoutons le x, la portion, deux portions, l'armure et l'argent. Donc, nous allons courir notre jeu. Nous allons aller de l'avant et ramasser les articles. On y va, on a ramassé tous les objets. Maintenant, nous allons commencer la bataille. Nous allons ouvrir les éléments Menu et cela ne fonctionne pas. Pourquoi c'est ça ? Parce que évidemment nous n'avons pas réglé le bouton Articles pour faire quoi que ce soit. Ce sont donc des étapes très cruciales que je continue d'oublier. Alors, dans l'article américain, que faisons-nous ici ? Nous devons appeler une méthode ici, mais cette méthode, qui est les éléments de mise à jour, devrait également définir le menu des éléments à ouvrir. Donc, nous allons taper ici les éléments à utiliser manuel dot set, actif à true. On va sauver ça. Et nous devrons probablement retourner ici et changer quelques choses. Donc, pour l'instant, ajoutons simplement le gestionnaire de bataille. Les gestionnaires de bataille doivent mettre à jour les objets de l'inventaire. Nous sauverons cela. Maintenant, quand nous lançons le jeu, nous allons ramasser ces objets, commencer la bataille. Et comme vous pouvez le voir, parce qu'on marchait, on continue. Quoi qu'il en soit, on va frapper les objets et on y va. Lorsque nous cliquons sur les éléments, nous pouvons voir la description et leur nom ci-dessous. Maintenant, nous ne pouvons pas fermer, nous ne pouvons pas utiliser, nous ferons toutes ces choses plus tard au fur et à mesure que nous irons. Si vous le souhaitez, vous pouvez aller de l'avant et fermer ce menu, mais pas seulement cela dans la prochaine vidéo, nous allons également être en mesure de choisir le lecteur sur lequel nous voulons utiliser cet élément. Alors je te verrai alors.
113. Sélectionner le joueur à utiliser l'élément sur: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, nous savons réellement sur qui nous allons utiliser l'élément. Donc, nous ramassons les objets, nous allons au combat. Et voyons voir, nous choisissons le sinistre. Nous avons déjà essayé ça sur le gramme pour les HP qui frappent sur le mono, donc nous allons le mettre à 20, 10, 0. Nous devons supprimer le modèle actuel, donc nous allons le régler à 20. Nous ne sauverons pas ça. Aller aux éléments sélectionnés océan monopole, sur
qui devrions-nous l'utiliser ? On l'utilisera sur le gramme. Alors gardez un œil sur le mana actuel, ici et ses statistiques de joueur. Donc on utilise le gramme. On y va. Nous augmentons un peu la demande. Mais comme vous pouvez le voir, chaque fois que nous utilisons un objet, nous mettons à jour les statistiques des joueurs. Alors, voilà. Nous avons mis à jour ceci et nous pouvons fermer le menu et continuer la bataille. Alors ne perdons plus de temps. Et commençons. Ok, donc maintenant il est temps de commencer à choisir le joueur sur lequel nous voulons utiliser les éléments. Donc la première chose est que nous voulons obtenir une référence
au panneau de choix des personnages ou comment on l'appelait ici ? Le gestionnaire de bataille, mais Canvas, corvées de
personnage, panneau, Yep, c'est panneau de choix de personnage. Et puis faites une référence
aux trois noms que nous avons ici et allumez-les et éteignez-les. Alors ouvrons nos scripts. Et ici, dans le chef de bataille, je vais monter en haut. Et je vais d'abord obtenir une référence à l'objet du jeu, qui est celui du panneau. Donc objet de jeu, le panneau de choix de personnage. Et puis je vais obtenir une référence à tous les textes qu'il y a. Et maintenant, je vais aller de l'avant et vous lancer un défi, qui est de créer le menu des personnages ouverts. C' est donc très similaire à celui utilisé dans le gestionnaire de menus. Mais au lieu de simplement parcourir les statistiques des joueurs, nous devons faire une boucle à travers l'acte des personnages. Et nous devons aussi nous assurer que ces personnages actifs sont les joueurs, pas les ennemis. Cela dit, arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue de retour. Donc, je vais faire défiler tout le chemin vers le bas et je vais créer une méthode ici qui va être le vide public, ouvert ou menu de caractères ou tout ce que vous voulez. Et puis nous allons vérifier si nous avons un élément sélectionné. Si nous le faisons, nous allons aller de l'avant et tout, vérifier 40 choix de caractères, panneau, choix, point de panneau actif sur true. Alors maintenant, nous pouvons commencer à choisir. Ensuite, nous allons faire une boucle à travers le nombre de points de caractères actifs V. Et nous allons bien sûr en ajouter un seul. Ensuite, nous allons vérifier si c'est un joueur ou non. Donc parce que nous ne voulons rien ajouter à nos ennemis. Donc, si les personnages actifs à la position que je pensais est un joueur, alors ici nous allons aller de l'avant et accéder aux statistiques
du joueur ont été d'abord créer une méthode. Donc, les statistiques des joueurs, le joueur actif. Et ça va être égal à l'objet de jeu ou au gestionnaire de jeu. Je veux dire instance de point, statistiques de joueur de point. A la position I. Ensuite, nous allons accéder au nom du joueur. Et la position que nous avons référencée là-haut. Le texte est égal et que je fais des textes. C' est une sonde de maillage texte. Donc là, vous voyez, j'ai appris de mes erreurs à ne m'a pris qu' environ trois ou quatre fois l'acte de joueur point nom de joueur. Et puis nous allons soit l'allumer et l'éteindre. Donc, nous allons créer un booléen. On l'appellera donc le joueur actif dans la hiérarchie. Et je voulais que cela évite d'avoir à taper un nom long. Et apparemment, j'ai encore tapé un long nom. Donc objet de jeu point actif et hiérarchie. Et ici, nous allons accéder aux joueurs. Noms à la position que je point transforme, point parent, point de l'objet de jeu défini actif. Et il sera actif en fonction de si le joueur actif et la hiérarchie, nous allons enregistrer cela. Et enfin, si nous n'avons pas d'élément sélectionné, nous pouvons envoyer une notification. Si tu veux. Nous pouvons utiliser le panneau de notification. Mais pour l'instant, nous allons simplement imprimer aucun élément pour l'article sélectionné. Sauvegardez ça. La prochaine chose que nous devons faire est que nous devons utiliser cet article. Pour cela, nous devons être en mesure de changer les caractéristiques du personnage du joueur ou du caractère anti-combat. On va trouver les personnages de combat. On les appelle, mais on y va, des personnages de combat. Et ici, nous allons créer quelques méthodes autres que les dégâts de prise. Nous allons lui permettre ou qui que ce soit d'utiliser l'objet au combat. Et ce sera un, Il va utiliser un paramètre qui est l'élément à utiliser le gestionnaire d'éléments. Ensuite, nous allons vérifier si l'élément à utiliser point est élément. Ou on peut vérifier si c'est le cas. Si nous revenons aux éléments ici, dans le Gestionnaire d'articles, Gestionnaire d'
articles ici, nous devons vérifier le 0,
ok, donc le type d'article. Donc, nous allons revenir dans notre élément de caractères de bataille pour utiliser
le tuyau d'élément point est égal à l'élément de type point de gestionnaire d' objet point point point point point point point point point point point point. On y va. Donc, si cet élément en tant qu'élément et si l'élément à utiliser le type d'effet de point est égal au gestionnaire d'élément. Donc, c'est un peu un tracas, pas l'effet point point point point HB. Ensuite, nous allons ajouter HP. Évidemment, nous n'avons pas la méthode pour ajouter chaque perle, mais nous allons la créer ici. Sinon, si nous allons simplement copier cette ligne,
long, long modèle d'effet de point de ligne. Nous aurions pu utiliser l'autre, mais ce n'est pas nous échapper. Donc, ajoutez mono, et nous allons créer cette méthode ici. Alors allons de l'avant et créons les deux, ces deux. Et on aurait pu le générer. Et ce que cela signifie, envoyer ceci à l'élément deux U point effet, quantité d'effet et élément à utiliser la quantité de point de fait. Allons de l'avant et générons le mono d'abord. Et ici, nous allons simplement obtenir le Mano plus actuel est égal à la quantité de fait. Et ici aussi, nous allons faire un clic droit sur Actions et refactoring méthode de génération, le HB actuel 0 plus égal à la quantité d'effet. Sauvegardez ça. Maintenant, dans le chef de bataille, que devrions-nous faire ici ? La dernière chose est quand nous sélectionnons réellement un joueur. Alors, qu'est-ce qui va être un vide public ? Utiliser le bouton article. Donc, c'est quand nous cliquons sur le joueur, ou nous aurions pu appeler cela le personnage américain ou choisir le joueur. Gardons-le à ça. Donc, ent joueur sélectionné. Et je ne pense pas que ce soit un bon nom. Je ne remplis pas. Mon intuition me dit que ce n'est pas un bon nom. Quoi qu'il en soit, le personnage actif sur le point de joueur sélectionné utilise l'élément n, bataille pour l'élément sélectionné. On y va. Ensuite, nous allons passer à instance
du dollar de stock et nous allons supprimer cet article, qui est l'article sélectionné. Nous allons mettre à jour les statistiques des joueurs. Parce qu'on a peut-être ajouté un peu de mana, disons. Nous allons donc mettre à jour les statistiques des joueurs. Où sont les statistiques de mise à jour des joueurs ? Mettre à jour les statistiques des joueurs Et puis nous allons fermer le menu des personnages. Alors créons cette méthode ici. Donc vide public, je sais que ce sont beaucoup de méthodes que nous avons créées, mais elles sont très basiques parce que nous avons déjà fait cela auparavant dans d'autres endroits ou quand nous voulions choisir un objet ou utiliser un objet pendant le jeu. Donc, tout cela est très, très similaire. C' est pour ça que je n'entre pas trop dans les détails. Je ne pense pas qu'il y ait trop de choses à dire que nous avons créé pour utiliser l'élément. Il vérifie simplement si c'est un élément ou non, et ainsi de suite. Donc, ici, nous allons accéder au panneau de choix des caractères, point set actif. Ça va être faux. Et enfin le menu des éléments. Ou peut-être que nous ne devrions pas fermer les éléments utilisés juste pour l'instant, ou nous pouvons le fermer. Je pense que c'est mieux si ça se ferme. Donc, les éléments à utiliser manuel qui définissent active false. Donc ici, nous allons fermer le choix du personnage. Et enfin, nous allons ouvrir le menu à nouveau. Alors pourquoi on fait ça ? Je leur dirai qu'il suffit d'ouvrir l'endroit où il est ? D' accord. Donc, c'est mettre à jour les articles en stock parce que c'est ce qui nous donne l'article, enregistrez cela. Alors pourquoi on fait ça ? Nous voulons simplement nous assurer que nous ne pouvons pas utiliser cet article. Pourquoi on le ferme ici et l'ouvre ? Eh bien, parce que nous voulons le mettre à jour à nouveau. Donc nous allons sauver tout ça. Nous allons retourner à Unity. Il y a beaucoup de choses que nous devons ajouter ici. J' espère que vous n'oublierez rien. Attendez que cela se compile. Donc, les gestionnaires de bataille font défiler le panneau de choix des personnages. On y va, les noms des joueurs. Aller à la session vers le bas, choisissez les choix de joueur, ajoutez-les ici. Nous ne pouvons pas parce que c'est un type de texte Mesh pro. On y va. Nous avons ajouté qui ont été sauvegardés que nous devons cliquer sur les boutons ici. Et chacun d'entre eux devrait avoir une sorte d'entrée onClick et celle qui est. Donc, tout d'abord, gérons le bouton US et le bouton de fermeture. Alors, que fait le bouton US ? Nous allons ajouter le gestionnaire de bataille ici, fouillerons le gestionnaire de bataille et aurons besoin d'ouvrir les personnages. Donc, ouvrez le menu de caractères, le bouton de fermeture. Si nous traînons vers le bas, nous fermerons. Où est-il ? Piscines fermées, fermées, choix de caractère fermé. Je vois quelque chose d'correct, ouvert. Nous fermerons donc le choix du personnage, ce qui fermera le panneau de choix du personnage et les éléments. Vous auriez pu éviter cet enregistrement de changer le nom, mais pas de soucis à ce sujet. On l'utilise à deux endroits à deux fins différentes, sans nuire à quoi que ce soit. Et enfin, nous devons, nous avons ajouté le bouton US. Nous devons nous assurer que le bouton de choix du joueur fait quelque chose. Donc ici, nous allons ajouter le gestionnaire de bataille. Nous allons voir le chef de bataille et utiliser le bouton de l'objet. Donc c'est ce que je voulais dire. Le lecteur d'affichage sera 0. Ces deux-là ont aussi le même gestionnaire de bataille. Avec le gestionnaire de bataille, utilisez l'élément de bouton et ce sera le joueur un et le joueur 2. Nous allons sauver tout cela. Nous allons courir notre jeu et espérons que nous n'avons rien oublié. Alors allons ramasser quelques objets et vous savez quoi, laissez-moi juste ajouter une portion de plus ici pour le mono afin que nous sachions que ça marche. préfabs. Où sont les articles ? Ajoutons une partie ici. Voyons voir si ça. Laissons le jeu. Allons de l'avant et ramassons les objets. J' ai vu l'apiculteur, voyons si on peut descendre. Aller au gramme qui est supprimer capable de la HP actuelle et peut-être le mettre à 50. On y va. Appuyez sur Entrée. Maintenant, si nous allons aux articles, nous allons utiliser la partie HP, nous avions la clé US. Nous pouvons choisir si nous voulons que le sombre Draco ou Jimmy l'ait. Donc on va les donner au gramme. Et on y va. Nous avons ajouté 50 CV. Cela vous donnera HP. On y va. Nous pouvons le voir ici et nous pouvons le voir mis à jour et les statistiques des joueurs. C' est cool ? Nous n'avons pas ajouté la possibilité d'utiliser l'armure, en passant, pour les ajouter à Drake ou Jimmy pendant la bataille. Je ne sais pas comment cela va affecter notre gameplay. Ou en fait, je ne suis pas sûr si foo devrait ajouter un pendant la bataille, mais c'est assez facile. On peut aller de l'avant dans les personnages de combat. Ici, je vais vous donner ce défi en dehors du domaine de notre gameplay, vous pouvez l'ajouter ici. Donc, si ce n'est pas un article typique qui affecte soit HP ou mono, vous pouvez vérifier si c'est une armure ou si c'est une épée, puis vous pouvez l'ajouter aux célibataires. Et ici, même si nous avons changé la puissance de l'arme, vous n'avez pas besoin d'ajouter l'objet à ce personnage. Changez la puissance des armes et la défense des armes. Mais avec ça, j'espère que ça vous plaira. J' espère que vous résoudrez la complexité dont nous avions besoin d'utiliser des éléments sur nos personnages. C' était vraiment amusant. C' était un code vraiment compliqué, ce qui est très agréable. Si vous n'êtes pas sûr de comment tout cela fonctionne, suivez
simplement le code, passe à nouveau par le code, une ou deux fois, assurez-vous de comprendre comment chacun d'entre eux est affecté, comment tout change, et j'espère que ça vous plaira et je vous verrai dans la prochaine.
114. Section 17 : traiter les joueurs morts: Bienvenue, mes collègues développeurs de jeux. Enfin, dans cette vidéo, nous pouvons tuer nos joueurs. Oui. Alors maintenant, nous commençons. Attaquons un peu. Alors attendons la mort de l'un d'eux. Alors Jacob meurt. Comme vous pouvez le voir, nous avons des effets de particules et le sommeil côtier de Draco, c'est stratégique, un autre gramme. Donc, quand le sinistre meurt, il obtient aussi cet effet de particules cool. Ce n'est pas si froid, mais il s'agenouille et meurt aussi, et Jimmy meurt aussi. Mais malheureusement, nous ne pourrons pas le voir parce que, euh, parce que, eh bien, il, il meurt de l'attaque d'un des ennemis et nous avons arrêté la bataille. Mais comme vous l'avez vu, tout fonctionne bien. Alors ne perdons plus de temps. Et commençons. Oh, donc pour le moment, nos joueurs ne meurent pas, mais ils n'ont plus de PV. Ils n'ont plus un tour, mais ils ne meurent pas. Et nous avons un endroit pour gérer les joueurs qui meurent. Ici C'est quand le personnage actif a un HP qui est égal à 0. Alors allons de l'avant et mettons-en œuvre cela. Comment va-t-on faire ça ? Eh bien, il va y avoir deux choses que nous devons faire à la mort d'un de nos personnages. Premièrement, nous allons faire apparaître une particule, donc une sorte de fumée comme une explosion. Et le second, c'est que nous allons changer cette fierté quand cela arrivera. Donc si nous avons, ou si votre personnage a un de ces sprites où il est mort, comme par exemple, le squelette. Et ici, si on ouvre ça, on peut voir qu'il a peut-être un des sprites morts, par exemple. Disons qu'on pourrait passer ça comme un squelette mort. Mais pour Jimmy, il n'y a pas ce sprite. Où que nous regardions, nous devrons être un peu créatifs à ce sujet, et je vais vous montrer comment nous allons le faire. Mais tout d'abord, allons de l'avant et créons un système de particules. Maintenant, je vous encourage toujours à aller créer le vôtre. J' en ai déjà un préparé que je vais utiliser, qui est la mort du joueur affecte cela aurait pu être nommé les personnages que l'effet. Ça n'a pas d'importance. Tu peux le nommer comme tu veux. Nous allons l'utiliser aussi sur les personnages. Donc je vais changer ça pour le caractère qui affecte ce fait. Et je vais traîner ça ici et les atouts. Et comme je l'ai dit, et que devrions-nous faire ici ? Je vais importer ceci et nous allons avoir un autre dossier et les préfabriqués. Donc préfabs, donc je vais mettre ça dans un autre endroit. Je pense que c'est un bon endroit pour le dire. Donc, je vais faire glisser l'effet de personnage. Et au joueur. Quel est ce préfabs de bataille ? Je vais supprimer les faits du dossier. On n'en a pas besoin. Ok, donc maintenant nous avons les effets. Ensuite, nous avons besoin des sprites et comment allons-nous faire les sprites pour que nous allons utiliser ? Et je vais faire la même chose pour le soldat noir. Et le squelette aura déjà son propre sprite, qui sera l'un de ceux que nous utiliserons plus tard. Mais de toute façon, maintenant vous savez comment vous pouvez créer des sprites même si vous n'avez pas ça. Ok, donc la prochaine chose, c'est qu'on va avoir une référence à ça. Donc je vais entrer dans notre personnage de combat. Alors, les personnages de combat. Et ici, je vais m'assurer que c'est public. Et puis nous allons créer un moteur de rendu sprite. Oups. Un rendu de sprite, car ce sera le sprite. Et un autre système de particules public, qui va être les particules mortelles. On y va. Et maintenant, nous devons fixer le prix du bureau et cette particule. Donc, je vais retourner ici. Je vais sauver ça, sauver ça ici sur les joueurs de bataille préfabs, Voyons voir, Jimmy a maintenant une référence aux particules mortelles. Je vais l'enfermer. En fait, je vais tout choisir. Laissez-nous garder la jambe de Jimmy enfermée pour l'instant. Et ce sont les particules de mort, je crois. Et je vais l'ajouter dans les particules de mort. Donc l'effet de mort de caractère et les sprites, je vais aller dans le joueur, la mort. Et je vais choisir celui-là. Et pour une raison quelconque, ça ne me permet pas de l'ajouter. Peut-être qu'on devrait juste faire de ça un sprite. On y va sprite. Et maintenant ça devrait fonctionner bien là où Jimmy préfabriqué va. Donc, pour une raison quelconque, ça ne fonctionnait pas, mais de toute façon, pas de soucis, on y retournerait. On va utiliser le sprite, on sauvera tout ça. Et maintenant, nous avons le sprite et les particules sourdes sur Jimmy, et c'est tout. Donc on va retourner aux Prefabs chez le joueur. Je vais choisir Draco et le sinistre. Je vais aller dans les particules de combat et je vais ajouter les particules à eux et cela est apporté devrait également être créé. Mais pour l'instant, je vais vous lancer un défi. Et votre défi est de changer ces produits. Donc, tout d'abord, vous aurez besoin de créer une méthode tuer joueur. Ensuite, vous devrez l'enregistrer. S' il y a un sprite de dette disponible, vous devrez accéder
au composant de rendu de sprite sur le joueur et changer à la fierté de dettes, vous devrez instancier les particules sourdes. Et enfin, vous devrez le changer. C' est vrai ? Donc, vous aurez besoin de changer les caractères est cette variable pour vous assurer qu'il est cela à vrai. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue de retour. Donc nous allons faire défiler ici et nous allons
créer un joueur de tueur de vide public. Et ici, nous allons vérifier si nous avons un sprite. Si nous le faisons, alors nous allons obtenir le composant, le rendu sprite, le rendu sprite. Et nous allons mettre le sprite sur le moteur de rendu du sprite. Et puis nous allons le mettre au sprite de la dette. Ensuite, nous allons instancier les particules sourdes. On les appelle. Ok, c'est des particules. Donc, les particules, nous allons les instancier sur la position point de transformation, donc exactement sur le caractère et la rotation sera la même. Transformez donc la rotation des points. On va sauver ça. Et enfin, nous allons nous assurer que c'est cela qui est vrai. On va sauver ça. Et maintenant, nous allons devoir appeler ça dans la bataille de mise à jour. On va aller voir le chef de bataille. Et ici, au lieu de simplement avoir ce commentaire, nous allons réellement vérifier si nous avons le personnage actif à la position que je en tant que joueur. Et le personnage actif n'est pas déjà mort. Donc, cela signifie que s'il l'est alors alors celui-ci est faux, alors nous n'aurons pas accès à la méthode. Nous allons faire appel à la couche de varech dans le personnage de combat. Donc, comme vous pouvez le voir, nous vérifions qu'il est en fait un joueur et qu'il ne l'est pas déjà. On allait le tuer. Alors, qui est-ce fait ? On va sauver ça. Nous retournerons à Unity. Et je vais utiliser la magie de l' édition et créer des sprites pour ce Draco et ça pour courir. Alors je te verrai dans un peu. Ok, bienvenue de retour. J' ai dit le squelette, ce sprite. J' ai dit 14 Draco. Alors et là, vous y allez. Donc vous pouvez voir le sprite, ce que j'ai fait avec Jericho comme avec le démon ou Jimmy, j'ai aussi fait tourner le sprite et je me suis assuré qu'il est mort. Alors maintenant tout devrait être prêt. Donc, nous allons sauver tout ça. On va diriger notre jeu. Et avant de le faire, nous devons nous assurer que l'affichage et ici sur le jeu était un 1920 par 1080. Maintenant, on est sur le jeu. On a commencé la bataille. Nous allons simplement attaquer, attaquer, attaquer. Et on va attendre la mort de l'un d'eux. Attaque, attaque, attaque. Espérons que l'un d'eux meurt. Ok, comme vous pouvez le voir, notre personnage vient de mourir, mais nous n'avons pas vu les particules parce que je pense que la couche de tri était mauvaise. Essayons ceci sur d'autres personnages. Voilà, tu y vas. Donc Draco est mort aussi. Et enfin, nous avons Jimmy aussi. Je pense que nos ennemis sont aussi morts. Alors on
y va. On n'a même pas vu Jimmy mourir. Donc la dernière chose qu'on doit faire, c'est qu'on doit aller dans les Prefabs ici et tu peux vérifier tout ce que j'ai fait. Ce n'est pas trop dur. Et nous pouvons même définir les positions ici pour être toutes 0. Sauvegardez ça. Et on peut même déplacer ce sprite
du Draco si tu n'aimes pas la façon dont il s'est installé là-bas, où est le moteur de rendu ? Les calques, le calque de tri sera sur les personnages de combat. Au niveau un. On va sauver ça. Essayons de tuer un de nos joueurs à nouveau. Ça va, donc l'un d'eux est mort. Encore une fois. On y va. Ce sont les particules, vous les résolvez juste. On peut les rendre un peu plus grands. Peut-être, peut-être augmenter l'échelle à deux par deux. Et je pense que peut-être les rendre un peu blancs. Cela peut donc faire la différence entre quand les attaques et quand on meurt. Et c'est tout, c'est tout ce que vous devez faire. J' espère que vous avez apprécié cette vidéo. J' espère que vous tuez votre joueur aussi. Et j'espère vraiment que vous utilisez vos propres sprites, vos propres effets de particules, plonger profondément parce que les particules ou les faits sont vraiment amusants, surtout quand vous apprenez à savoir ce que chacun de ces composants fait. Donc, par exemple, la force sur la vie, que j'ai ajoutée sur le y. Donc, elle monte un peu, comme vous pouvez le voir, quand l'un d'eux meurt, quand, quand ils sont instanciés. Alors je te verrai dans la prochaine.
115. Gérer des ennemis morts: Bienvenue de retour, Mes développeurs de jeux préférés dans cette vidéo, quand nous exécutons le jeu, nous avions la grande clé. Nous utilisons la magie, la foudre sur le seigneur de guerre, tentacules
magiques sur la guerre Locke. Et comme vous pouvez le voir, il s'estompe lentement parce qu'il vient de mourir. Mais pas seulement que maintenant, quand nous essayons d'attaquer avec Jimmy, nous utilisons les tentacules violettes. Nous n'avons qu'une option pour attaquer le maître majeur parce que nous ne pouvons pas attaquer les démonistes parce qu'il est mort. Alors on attaque le mage. On le tue d'un coup. Nous y sommes allés et nous n'avons pas de victoire, le
ferons plus tard. Mais pour l'instant, nous allons gérer la mort de nos ennemis. Je vous verrai intéressé. Ok, donc maintenant nous avons géré notre joueur en train de mourir. Il est temps de gérer le temps de nos ennemis. Que va-t-on faire de nos ennemis ? Nous voulons avoir quelque chose d'un peu différent de ce que nous faisons pour le joueur. Ce qu'on va faire, c'est changer la couleur de nos ennemis. Laissez-moi vous montrer ce que je veux dire. Si je vais choisir Draco, par
exemple, ou nous allons choisir Jimmy, le joueur. Si je vais au rendu sprite et ici et que je choisis les couleurs, vous pouvez voir que je peux manipuler les couleurs que j'ai. Donc, si je clique ici, vous pouvez voir que je peux changer le rouge, ce qui les rend très cool. Au fait, je peux changer le vert et je peux changer le bleu pour pouvoir jouer autour. Donc, par exemple, si je le fais rouge, il devient plus rouge. Et enfin, je peux changer l'alpha sur lui. Donc, nous allons manipuler ces trois couleurs et l'Alpha afin de changer lentement, la couleur de nos ennemis à lire et les faire disparaître aussi lentement. Comment allons-nous faire ça ? Comment allons-nous aller vers la couleur rouge et la décoloration ? Eh bien, heureusement, nous avons une méthode très astucieuse, qui est le mouvement vers, et vous pouvez voir ici dans la description qu'il calcule une position entre deux points, mais nous pouvons aussi l'utiliser. Et voici le vecteur 3. Nous pouvons définir la position actuelle, la cible que nous voulons déplacer, passer à. Et enfin la distance maximale Delta. Et c'est la distance pour déplacer le courant par appel. Ça veut dire qu'on appelle ça une mise à jour. Et au fur et à mesure qu'il se déplace, nous avançons lentement vers cette, si vous voulez, est la vitesse à laquelle nous nous dirigeons vers cette cible. Permettez-moi donc d'arrêter de parler et commençons à mettre en œuvre. Nous allons ouvrir les personnages de combat,
tandis que les personnages de combat, les personnages de métal. Et la façon dont nous allons mettre en œuvre ceci est une mise à jour. Nous allons donc créer une mise à jour ici à nouveau. Et nous allons vérifier si nous ne sommes pas un joueur. Et nous sommes que cela signifie que nous allons disparaître notre ennemi. Donc je vais écrire l'ennemi fondu. Et je vais créer cette méthode ici. Donc, générer la méthode. Qu' est-ce qu'on va faire ici ? Tout d'abord, nous allons obtenir une référence au composant de rendu sprite. Donc, nous allons obtenir le composant, le moteur de rendu sprite. Ensuite, nous allons accéder à la couleur sur la couleur. Et puis nous allons le mettre à une nouvelle couleur. On va ouvrir les crochets. On va frapper Entrée. Et ici, nous allons aller de l'avant et accéder au point mathématique, aller vers. Comme vous pouvez le voir, nous avons le courant, la cible et le delta max. On va ouvrir ça. Et ici, nous allons accéder à nouveau au sprite, la composante de cette fierté. Donc je vais copier ça. Je vais le coller ici. Oups, je vais le coller ici. Et à partir de la couleur, je vais aussi accéder au r. Donc, cela va s'assurer que nous accédons au composant rouge sur la couleur. Comme vous pouvez le lire ici, ce sera le courant. Donc, actuellement, nous sommes sur la couleur ou ce qui est normal pour notre joueur. La cible sera V1 F. Pourquoi le fixer à un f ? Eh bien, parce que nous avons résolu ici que quand il est rouge, c'est complètement à droite. Donc, retour dans notre code. Et puis nous allons avoir une sorte de vitesse dans laquelle la couleur se déplace. Essayons 0,3 F. Et nous allons le multiplier par le temps du delta. Et si vous ne vous souvenez pas à quelle heure Deltatime le fait réellement, vous y allez. Temps d'achèvement en secondes depuis la dernière image. Donc, parce que nous l'ajoutons et la mise à jour, cela signifie qu'il s'appelle chaque image unique. Si vous avez un PC très fort, la fréquence d'images sera plus élevée, sorte que la décoloration pourrait être plus rapide et vice versa lorsque le PC est mauvais, la fréquence d'images est faible. Le mouvement vers l'endroit où il fonctionne plus lentement. Donc, ce que nous allons faire, c'est utiliser Time.Deltatime. Donc c'est pareil sur tous les PC. Et c'est très important à faire parce que lorsque vous construisez votre jeu et que d'autres joueurs l'utilisent, tous les PC
ne seront pas les mêmes. Donc, vous devez toujours vous assurer lorsque vous déplacez quelque chose, un lecteur ou la couleur ou quoi que ce soit à l'intérieur de la mise à jour pour toujours vous
assurer d'utiliser Time.Deltatime ou d'utiliser la mise à jour fixe. Mais pour l'instant, nous allons utiliser Time.Deltatime. Je vais dupliquer toutes ces lignes ici. On va passer du rouge au vert et au bleu. Et enfin le A, qui est l'Alpha. Et nous avons actuellement la cible ici pour le rat comme un seul, le bleu sera 0. Je veux dire que le vert sera 0, le bleu sera aussi 0 et l'alpha sera 0. On gardera les mêmes vitesses. Et vous pouvez voir que nous devons supprimer la dernière virgule. On y va. Nous gardons cela, et nous sommes prêts à y aller. Mais nous devons aussi faire une chose de plus. Et c'est que nous voulons réellement désactiver le composant sur l'ennemi. Nous allons donc vérifier si les points composant sprite dot color dot dot a est égal à 0. Et rappelez-vous que c'est ce qu'on appelle chaque image. Donc, nous nous dirigeons lentement vers 0 et ce composant est différent de 0 jusqu'à ce que le mouvement vers ici se termine. Donc, quand il devient 0 et ici, il objet jeu dot set actif sera faux. Nous allons sauver cela. Et enfin, nous allons créer une méthode ici pour tuer l'ennemi. Donc vide public, tuer l'ennemi. Et cela va juste mettre ça à vrai. On y va. Et est-ce là aussi ? C' est ce public ? Pas de soucis à ce sujet. Nous allons le définir sur true en utilisant une méthode. Il est plus propre de toujours utiliser des méthodes. Maintenant, de retour dans le gestionnaire de bataille, où vérifions-nous et mettons-nous à jour la bataille ? Nous allons donc chercher des batailles de mise à jour. Donc ici, nous vérifions si c'est un joueur et nous sommes endettés, puis nous appelons le joueur. Et si on n'est pas un joueur, j'ai juste copié cette ligne ici. Donc, un des personnages a un HP de 0 et ce n'est pas un joueur et il n'est pas déjà mort. Ensuite, nous allons aller aux personnages actifs point I, et nous allons tuer l'ennemi. Ça veut dire qu'on le met à mourir. Donc nous allons sauver tout ça. Nous allons revenir dans notre jeu maintenant il y a encore un petit problème ici, mais je vais le résoudre quand nous le verrons. Donc je vais diriger le jeu. Je vais commencer la bataille. Je vais utiliser la magie pour attaquer ou utiliser la foudre pour attaquer. Qui devrions-nous tuer la guerre Locke, je pense que sa santé est plus petite. Magie, bleu. Les sorciers. Laisse-moi agrandir ça. De la magie. Foudre, guerre Locke. Et on y va. Comme vous l'avez vu, il s'est évanoui. Comment cool est qu'une histoire n'est plus joué, donc seulement les attaques majeures. Mais le problème dont je parlais est que quand nous allons de l'avant pour attaquer, comme vous pouvez le voir, nous avons la possibilité d'attaquer le mur OK, et de cliquer sur lui. Nous attaquons à nouveau, ce qui est
très, très mauvais si nous essayons d'utiliser la magie, nous pouvons également affecter les Démonistes, ce qui est encore, très, très mauvais. Donc on va devoir aller réparer ça. Comment allons-nous faire ça ? Eh bien, nous allons aller là où nous ouvrons le menu des personnages ou où nous avons ouvert le menu des cibles en fait. Et ici, nous vérifions si le nombre d'ennemis est supérieur à moi et si le personnage actif sur l'ennemi est à la position r, Parce que rappelez-vous, et ici, nous allons à travers les ennemis. Nous avons créé la liste des ennemis ici, qui est une liste d'entiers. Pour que nous puissions vérifier les ennemis dans l'acte de personnages. Donc, ici, ennemis à la position I, le HP actuel devrait être supérieur à 0. Eh bien, nous allons sauver ça. On va tester ça à nouveau. Permettez-moi de maximiser sur le jeu ce jeu est mieux quand il est plein écran, parce que les mots sont un peu petits. Alors on se promène. Nous avons eu la magie BP, la foudre, la guerre Locke, les tentacules magiques guerre Locke. Et voilà, il meurt. Alors maintenant, quand on va utiliser le laser magique, on peut encore voir la guerre Locke. Il n'attaque pas, mais on voit toujours la chance du monde. Pourquoi c'est ça ? Et c'est parce qu'après que nous l'avons mis sur vrai ici, ça reste vrai quand nous allons. Donc on ne le remet pas à faux. On n'éteint pas le bouton. Ce qu'on va faire, c'est créer un autre. Sinon, si nous n'avons pas de caractère actif ou si le nombre n'est pas plus grand, alors nous allons activer le point GameObject
point cible et nous allons le définir sur false. Donc, nous allons sauver ça, retourner dans notre jeu. Ainsi, comme vous pouvez le voir, le développement de jeux est un processus de construction. Tu ne comprends pas tout. première fois que nous lançons le jeu, nous avions la clé dB, la magie, la foudre, la guerre verrouillée, la magie, les tentacules, les sorciers, il meurt, le laser magique. On ne voit plus la guerre. Nous attaquons seulement la page principale. J' espère que vous avez apprécié cette vidéo. J' espère que vous êtes enfin satisfait que nous tuons nos ennemis, les
détruisons, tuons nos joueurs, les détruisons. Et dans la prochaine vidéo, nous allons mettre fin à la bataille et à la victoire. Nous ajouterons donc à cette satisfaction que vous avez déjà. Alors je te verrai dans la prochaine.
116. Victory In Battle: Bienvenue de retour, Mes développeurs de jeux préférés dans cette vidéo, quand nous exécutons notre jeu, nous commençons une bataille. On fait de la magie sur les Warlocks,
sur, de la magie, d'accord, tellement génial qu'il est mort. Un peu de magie sur le maître majeur. Encore une fois, un peu de magie sur le maître majeur. Essayons de l'appeler pour qu'il meure. On a gagné. On sort. Nous pouvons voir que si nous recommençons la bataille, nous remarquerons tout d'abord, que nous détruisons tout auparavant et nous avons aussi le mana ici déjà utilisé. Donc, nous sauvons tout. Nous mettons fin à la bataille correctement. Alors ne perdons plus de temps et commençons. Oh, d'accord, alors c'est le temps de quand ? C' est l'heure de la victoire. Allons de l'avant et terminons la bataille. Donc nous allons revenir en arrière et nous allons faire défiler vers le bas et nous allons créer une nouvelle méthode qui va être un I et un numérateur ou un revêtement. Donc ça va être un recenseur public. Et ce sera la bataille et 14. Et ici, nous allons faire quelques choses. Alors, qu'est-ce qu'on va faire ? Tout d'abord, la bataille qui est active devrait être définie sur false. Alors, la bataille est-elle active ? Non, ce n'est pas le cas. C' est faux. Ensuite, nous devons éteindre tout ce qui pourrait être encore là dedans. Ainsi, par exemple, le porte-bouton de l'interface utilisateur point psychoactif à faux. Dupliquons ceci, le menu cible. Donc, cible, où est-ce qu'il obtient 0 cible. Boutons, sélectifs. Donc, ce n'est pas un objet de jeu. Panneau cible ennemi, faux. Puis le menu magique, le panneau de choix magique, les moteurs de combat. Donc, si nous avons une bataille, notez, nous allons le définir ou définir le texte dans ce cas pour être NOUS un. Donc, ce sera quand nous finirons par la victoire et nous allons activer la bataille. Avis. Avis de bataille point actif, Activer. On y va. Maintenant, nous allons céder quelques secondes. Donc, nous rendrons le rendement. Nouveau, attendez quatre secondes. Et ça va prendre trois secondes. Je suppose que c'est bon. Ensuite, nous voulons mettre à jour les statistiques des joueurs dans le gestionnaire de jeu. Donc, par exemple, disons que nous avons gaspillé un peu de santé, capable de HP, un peu de manne, et ainsi de suite. Nous allons le changer. Donc, nous allons créer un pour chaque boucle ici. On va passer par les personnages de combat, joueur. Dans la bataille, Nous allons appeler cette variable dans l'acte des personnages. Ensuite, nous allons vérifier si le joueur dans la bataille en tant que joueur. Et puis nous allons à nouveau regarder à travers les statistiques des joueurs et le gestionnaire de jeu. Donc, pour chaque statistique de joueur, c'est le type. Et le joueur avec des statistiques dans le gestionnaire de jeu, instance de
point, les statistiques de couche de points, alors obtenez des statistiques de joueur. Et puis ici, on va comparer les noms. Donc, si le joueur dans nom de point de
bataille est égal au joueur avec des statistiques, où est le, où est le joueur avec des statistiques ? Avec des statistiques ? Nom du joueur de point. Oui, on y va. Ensuite, nous allons définir les statistiques du joueur ou le joueur avec statistiques point HP actuel pour être égal au joueur et aux statistiques au combat. Ok, donc nous y allons, déclarons au combat, ces noms de variables sont très confus. J' aurais dû les changer. Donc maintenant, nous avons dit le HP, nous pouvons également définir le mannose de sorte que la manière actuelle avec la manière actuelle que nous avons. Ensuite, nous aurons besoin après avoir terminé le pour chacun ici, nous allons ensuite aller de l'avant et éteindre la scène de bataille. Donc, le point de la scène de bataille est activé sur false. Et c'est presque tout ce qu'il nous faut faire. Mais nous devons également nous assurer que nous détruisons les personnages restants. Donc, comme vous vous souvenez, quand nous terminons la bataille, quand nous allons à une, une autre bataille ,
qui est la même, nous pouvons voir que les ennemis précédents sont toujours là et parfois ils peuvent attaquer. Peut-être qu'ils sont ajoutés à la liste pour qu'ils aient un tour et ça gâche vraiment nos batailles. Donc, ce que nous allons faire, c'est que nous allons effacer ces ennemis de la liste en vous lançant un défi. Donc votre défi est de détruire tous les ennemis. Assurez-vous donc que les ennemis sont détruits lorsque la bataille est terminée. Et vous pouvez vous assurer d'effacer ou de vous assurer d'effacer. Ceci est un indice, la liste des ennemis à éviter puis revenir et la prochaine bataille. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue. Donc ici, tout d'abord, nous allons accéder aux personnages actifs et nous allons les effacer tous. On y va. Donc, nous avons effacé tout l'acte de caractères, mais ce n'est pas suffisant. On doit y aller et détruire tous les joueurs au combat. Donc nous détruisons tous les joueurs au combat. Et enfin, avant de finir, nous devons définir le terme actuel à 0. Et nous devrions aussi aller chez le gestionnaire de jeu et nous assurer que notre joueur peut marcher à nouveau. Donc encore une fois, la bataille de points d'instance de point de gestionnaire est active et elle est égale à false. Sauvegardez ça. Et enfin, nous devons appeler cette méthode. Et quand allons-nous l'appeler ? Pendant qu'on l'appelle à quelques endroits ? Et peut-être que les notes de texte que nous voulons devraient être modifiées. Peut-être que ça ne devrait pas être comme ça. Mais en mise à jour. Donc, au lieu d'imprimer, nous avons gagné, nous allons commencer une co-routine. Et cette équipe de base sera la co-routine de combat. Et aussi quand on s'enfuit. Alors, où est la fuite ? Fermer. Prochain tour, s'enfuir. Laisse-moi frapper la touche F. Réglons la course. Ok, on y va, The Runaway. Donc ici, nous allons aller de l'avant et commencer la coroutine. Et parce que nous avons dit que la bataille était fausse et que nous éteignons la scène de la bataille, nous allons simplement supprimer ces deux-là. Et au lieu de cela, nous allons commencer une coroutine. Et ce sera la qualité de bataille finale. On y va. On sauve ça. Maintenant, de retour dans notre jeu. Quand nous courrons, nous allons essayer de tuer tous nos ennemis. A la touche B, la magie, la foudre, la guerre, tentacules magiques, les démonistes. C' est de la magie ? Tentacules, le maître majeur. On y va. Et pour quelque chose quand il n'est pas tout à fait correct, refusons, voyons si l'une de nos statistiques a changé. Donc on a attaqué avec le Grimm. On y va. Le Mano actuel a changé. Nous avons attaqué avec Draco, le Mano actuel a changé et le joueur. Alors que la couche profonde tandis que le joueur, accord, Donc il est en effet ne pas détruire, a de l'argent. Mano actuel a également changé. Mais pour une raison quelconque, le maximum est de 30, juste 30. Quelque chose de bizarre à ce sujet. Quoi qu'il en soit, arrêtons-nous ici. Vous devez vous assurer que le monarque actuel est 1, 0, 0, 0. C' est une grosse erreur, grand non-non. On va sauver ça. Nous allons aussi peut-être aller au joueur et appliquer les modifications. Ok, donc le problème ici, c'est qu'on n'a pas eu de co-routine. Donc peut-être qu'on ne devrait pas éteindre la scène de bataille comme étant éteinte prématurément. Bon, bienvenue, mes collègues développeurs, développeurs de jeux. abord, nous aurions dû nous assurer que non seulement nous détruisons le joueur au combat, car cela ne fera que détruire le script de personnage de combat sur nos joueurs et nos ennemis. Donc, nous devons nous assurer d'écrire joueur dans l'objet de jeu de bataille à détruire. Cela détruira l'ensemble de l'objet du jeu. Deuxièmement, nous devons nous assurer que j'ai été là. J' ai commenté tout le journal de débogage pour les dommages parce que j'utilisais les bogues. Et l'Inde, nous devons nous assurer que nous dans la bataille de mise à jour. Quand nous commençons la co-routine, nous avions ces trois lignes ici qui mettaient tout à faux, mais nous le faisons déjà dans la routine finale de bataille. Alors on y va. Nous devons nous assurer de mettre ça à faux. Une autre chose que j'ai remarqué en fuyant, on reçoit ce message que l'on veut, et on ne veut pas l'avoir quand on s'enfuit. Donc ici, je vais supprimer ces deux lignes. Ou vous savez quoi, peut-être que plus tard, nous allons vérifier si la fuit aussi. Nous avons un, nous avons une variable ici pour le fuit. Oh, nous ne le faisons pas. Donc peut-être que plus tard, nous allons créer une variable qui s'enfuit. Nous l'avons mis à vrai. Et ici. Et si c'est vrai, alors nous n'imprimons pas ce que nous voulons et nous ferons aussi des choses différentes ici. Donc j'espère que vous avez apprécié tout fonctionne maintenant, revenons dans notre jeu. On dirige le jeu. Nous commençons la bataille. Et voyons, nous utilisons l'éclaircissement magique sur la magie des démonistes. Oh, il est mort. C' est cool. Ensuite, nous allons utiliser sur le maître mage, encore des tentacules magiques, l'âge de Nystrom, il meurt. On veut, on s'en va. Vous pouvez voir que tous les personnages sont détruits. Nous recommençons la bataille. Nous n'avons pas autant d'argent que nous. Donc la magie, la foudre, la guerre Locke, et il n'est pas mort cette fois, peut-être auparavant, c'était un coup critique. Donc la foudre leur maître, attaquez-nous. Attaquons. Ils nous attaquent. Voilà, tu y vas. Draco meurt. Celui-ci meurt. Essayons de fuir. Il n'y a pas d'évasion. Encore une fois, il n'y a pas d'erreur. Ils nous attaquent, nous sommes presque aveugles. S' il vous plaît fuyez. Il n'y a pas d'évasion, et nous l'achetons tous et nous sommes perdus. Mais nous n'avons toujours pas de jeu sur les messages, mais nous le ferons dans la prochaine vidéo. J' espère que ça vous plaira et je vous verrai dans la prochaine.
117. Créer des jeux sur l'écran: Bienvenue de retour, Mes développeurs de jeux préférés. Dans cette vidéo, nous allons créer notre jeu sur scène, et nous allons y aller chaque fois que tous nos joueurs ont passé. Alors ne perdons plus de temps et commençons. Oh, ok, donc maintenant nous devons gérer le fait où tous nos joueurs meurent, pas nos ennemis sont des joueurs et nous perdons le jeu. Nous aurons donc besoin d'une scène Game Over et d'un jeu sur écran. Allons tout d'abord à notre code et au gestionnaire de bataille. Je vais tout fermer en remontant. Gardions ça ouvert. Nous fermerons ça,
fermerons et tout le reste. Et nous allons créer une référence ici, qui va être un champ sérialisé de type chaîne. Et ça va être le jeu sur scène. Sauvegardez ça. Maintenant, nous allons faire défiler vers le bas et créer une équipe de base qui est similaire à la coroutine de combat de fin. Donc ça va être un public en numérateur et le gain, gain sur coroutine. Et ici, tout d'abord, nous allons créer un point d'avis de bataille setText. On va être perdus. Ensuite, nous allons accéder à ce point d'avis de bataille Activer. On y va. Ensuite, nous allons attendre trois secondes. Donc nous rendons le rendement et la nouvelle façon pendant quelques secondes, et nous attendrons environ trois secondes à nouveau. Enfin, nous allons mettre la bataille active à faux. Et nous allons accéder au directeur de scène. Avons-nous accès au directeur de scène ? Non, on ne le fait pas. Allons-y et ajoutez-le ici. Donc, le moteur Unity, la gestion de scène, sauvegardez ce défilement vers le bas. Donc Scene Manager a pensé scène de chargement, je voulais aller à l'instance. Je suis tellement habitué à toujours avoir une instance après un manager. Donc charger vu et nous allons charger le jeu sur scène. On va sauver ça. Et nous allons appeler ça quand tous nos joueurs seront morts. Donc, au lieu de
nous perdre, nous allons commencer une co-routine. Commencez la co-routine. Et comme le jeu sur scène. Et je suis presque sûr qu'on a oublié quelques choses ici. Oh, alors jeu sur ça. J' ai eu le jeu sur la cour. Désolé pour ça. Nous pouvons supprimer ces trois lignes ou vous pouvez les garder comme un rappel de la façon dont nous progressons lentement en utilisant notre code. Donc j'aime vraiment ces trois sections en
ce moment , les joueurs commencent la bataille, l'ennemi, ou les quatre sections et la bataille finale parce que cela montre vraiment comment nous, il ne s'agit pas seulement de tirer sur le code et de le faire fonctionner et c'est tout. Non, il s'agit du processus toujours lentement mais sûrement nous mettons à jour notre code, nous ajoutons de nouvelles méthodes, nous utilisons de nouvelles techniques, et nous émettons également de nouveaux défis. Et votre défi sera de créer un jeu sur scène. Donc, créez une scène pour le jeu sur une toile avec un peu de texte et d'arrière-plan, peut-être à trois boutons pour la charge moins Enregistrer le menu principal et quitter le jeu, et c'est tout ce que vous devez faire. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Et je reviendrai avec tout déjà prêt parce que, eh bien, ce n'est pas très amusant de me regarder faire ça à chaque fois. Alors je te verrai dans un peu. Oh, hé, bienvenue. Alors, comment as-tu eu tout ça ? Donc, je viens de créer à nouveau un peu d'arrière-plan, ajouté ces trois boutons cool look. Et je peux dire le, disons jeu vraiment sympa sur l'écran. Donc maintenant, la prochaine chose que nous devons faire est d'
aller de l' avant et de créer un script de gestionnaire de scène ici. Donc on va aller à Scrip et où devons-nous créer le jeu ? Ok, dans les gérants. Donc le script C-Sharp va être un jeu sur manager à Enter. Attendez qu'il se compile. Non, s'il te plaît, n'ouvre pas ça. Pour une raison quelconque, s'ouvre automatiquement à chaque fois, donc c'est fini. On va l'ajouter à la toile. Nous pouvons l'ajouter où nous le voulons. On va sauver ça. On va ouvrir le script. Et voyons ce que nous allons faire ici. Et avant que j'oublie le Canvas n'importe où, où est-il ? Ok, donc l'échelle avec la taille de l'écran et nous allons le faire 1920 d'ici 1080. Et on y va. On va sauver ça. Ok, alors ouvrons le scénario du jeu, et qu'est-ce qu'on va faire ici ? Eh bien, tout d'abord, on commence, on va jouer une chanson différente. Nous allons éteindre la manette du joueur et tout ça. Donc, pour accéder à tout cela, nous allons revenir en arrière et nous devons ajouter quelques managers ici que nous avons déjà mis en place. Donc, dans les préfabriqués, le vieux yo AudioManager, le gestionnaire de jeu, le gestionnaire de joueur ici quelque part devrait être réglé. Voyons donc le niveau des éléments. Non, on n'a pas besoin de ça. Peut-être que le Canvas pourrait être utilisé ici. Et c'est un campus. Changer les noms. Où sont les préfabriqués ? Nous avons toujours besoin de la manette du joueur, donc nous allons ajouter le joueur. Et je pense que c'est tout ce qu'on a à faire. On va sauver ça. Et maintenant, allons-y. Et au début, nous allons accéder à l'ancienne instance de dot manager yo, jouer de la musique de fond. Et quelle musique de fond devrions-nous jouer ? Voyons voir dans la musique. Voyons ici le thème de la grotte. Et bien sûr, jouons à l'amulette noire. Je pense que 44, c'est assez bon. On y va. Tant que ça change, on se fiche de ce que c'est. L' objet de jeu point d'instance de point de joueur sera défini sur false, le gestionnaire de menu. Ok, donc active sur false, false. Le gestionnaire de menus a sélectionné false. Le gestionnaire de bataille, gestionnaire point GameObject, point triste, actif à faux. Et puis nous devrons créer les deux ou les trois méthodes ici. Nous allons supprimer la mise à jour. Nous allons créer un vide public, Kohut au menu principal. Nous allons créer une charge moins sûre mot public, faible, dernier, Enregistrer. Et nous allons créer une dernière méthode qui sera la session de jeu de destroyer. Et on le remplira plus tard. Ce sera une statique privée parce que nous ne voulons pas qu'elle change n'importe où et soit la même chaque fois détruite session de jeu. Et ici, nous ferons quelques choses. Donc, avec cela fait, je vous verrai dans la prochaine vidéo où nous allons remplir toutes ces méthodes si vous voulez commencer par vous-même, je vous recommande de le faire. Et enfin, n'oubliez pas de vous assurer que nous engageons toujours nos changements. Alors maintenant, les ennemis disparaissent. Comme vous pouvez le voir, j'ai oublié de valider l'un de mes changements précédents, donc ce que je peux faire. Alors quelle était la vidéo précédente où nous mettions fin à la bataille dans la victoire. Donc ça veut dire que nous ne voulons pas sauver tout ça. Nous sauvegardons simplement ces trois. Nous mettons en scène le sélectionné. Ce n'est donc pas exact à 100%, mais c'est tout ce que vous devez faire chaque fois que vous oubliez de valider vos modifications. Alors maintenant, nous, et la bataille et la victoire avec quelques points d'exclamation, nous engageons les changements maintenant nous mettons en scène tous. Mais parce que dans la prochaine vidéo, nous ferons plus de choses et finirons le jeu. Je ne vais pas commettre les changements en ce moment. Et je te verrai dans la prochaine vidéo.
118. Charger Last Enregistrement dans Game Over: Bienvenue, Mes développeurs de jeux préférés. Dans cette vidéo, nous avons fini de créer notre jeu terminé. Alors maintenant, nous dirigeons notre jeu. On peut aller au menu principal, on peut sortir, mais ça ne marche pas. Laissez-moi vous montrer les autres boutons. Donc nous pouvons quitter le jeu, mais nous avons juste jeu liquide et nous pouvons charger le dernier sauvé que nous étions n. Donc nous y allons. Et non seulement cela, comme vous pouvez le voir, notre caméra de suivi fonctionne maintenant parfaitement. Ça ne traîne pas juste autour. Donc même quand on va sur une autre scène, on y va. Donc ça marche. Notre caméra suit toujours notre joueur, donc je vous verrai dans un peu. Oh, ok, alors continuons avec notre jeu terminé. Donc, je vais revenir ici et nous allons d'abord
remplir la session de jeu de paille parce que c'est la méthode la plus importante que nous allons utiliser dans le principal et ainsi de suite. Donc, nous allons détruire, tout d'abord, l' objet de jeu point d'instance de point de gestionnaire de jeu. Maintenant, je sais que nous avons tout dit ici, mais rappelez-vous quand nous quittons le champ de bataille et que nous allons sur une autre scène, tous nos managers sont détruits et ils passent à la scène de jeu. Et ils sont aussi un modèle singleton. Donc je viens d'ajouter ceci ici juste pour comprendre que ceux-ci seront sur la scène et nous devons les détruire. Donc je vais y retourner et nous allons détruire les autres gestionnaires. Donc nous allons détruire le contrôleur du joueur. Donc, le script déjà joueur, à nouveau l'objet. Je vais dupliquer celui-ci aussi je vais détruire le gestionnaire de menu. Et enfin, nous allons aussi détruire le gestionnaire de bataille. On va sauver tout ça. Maintenant, allons de l'avant et créez le menu rapide. Donc ici, nous allons détruire la session de jeu dans son intégralité. Et puis le directeur de scène, où ça va au directeur de scène, on
ne va pas bien, donc on n'a pas ça. Gestion de scène. Sauve ça. Donc, Scene Manager, point bas vu, et que devrions-nous charger lorsque nous quittons le menu principal ? Eh bien, nous allons obtenir une référence. Donc, dans les scènes, le menu principal copions ça, retournez ici, collez-le. Donc, comme vous pouvez le voir, j'ai essayé d'écrire le menu principal en ajoutant de l'espace alors que je ne devrais pas, donc cela n'aurait pas fonctionné et nous n'aurions aucune idée de pourquoi. Et enfin, nous allons faire la dernière sauvegarde de charge. Donc nous allons détruire la session de jeu ici aussi, et va aussi détruire ou nous avons déjà détruit, Je voulais dire détruire le gestionnaire de bataille. Nous allons charger Scene Manager, Load seen, et nous allons charger la scène de chargement. Alors, quel est son nom ? Copions-le. Copiez celui-ci. Collez-le ici, ajoutez un point-virgule, enregistrez-le. Et nous allons nous assurer que nous avons tout dans la construction. Nous allons donc aller dans les paramètres de construction. Nous avons la scène de chargement du menu principal. Ajoutons le jeu. Et que devrions-nous ajouter d'autre ? Je pense que c'est tout ce dont nous avons besoin. C' est quoi, le jeu sur scène ou on vient de l'ajouter. Ok, super. Nous pouvons aussi ajouter le donjon, mais nous n'avons pas créé de moyen d'y entrer depuis la Francine, donc pas de soucis à ce sujet. Ou tu sais quoi, je pense qu'on doit l'ajouter si on est morts pendant le match. Donc BuildSettings. Ajoutons le donjon aussi ici, sauvegardez ça, retournez en arrière. Et testons ça un peu. Alors je vais aller dans le Canvas. Et ici, avons-nous des variables que nous devons définir ? Non, tout devrait bien fonctionner. Donc je vais sauver ça. Je vais y retourner. Je vais diriger le jeu. Donc d'abord, on commence. On n'y va pas. Ok, comme vous pouvez le voir, on joue de la musique cool. Qu' est-ce qu'on a dans la console ? Nous avons une référence manquante, qui est le gestionnaire de bataille parce que nous n'avons pas ajouté le gestionnaire de bataille ou nous l'avons désactivé. Pour que nous puissions ajouter le gestionnaire de bataille ici. Et comme je l'ai dit, c'est juste pour tester le jeu terminé. Nous n'avons pas vraiment besoin d'avoir ces managers ici parce que quand nous mourons, nous allons au jeu car aucun de ces objets de jeu n'est détruit. Tu te souviens de ça ? Donc je vais trouver les préfabs,
le jeu, le jeu de gestionnaire de bataille. Oh, maintenant je me souviens juste que dans le donjon, on n'a pas parlé à notre chef de combat et je le cherche et on ne peut pas le trouver. Alors je vais à Préfab les chefs de bataille, sauf ça. Retournez dans nos scènes à GameOver. Aller aux préfabriqués dans la bataille le gestionnaire à cela, si cela a gagné le jeu. Et on y va. Donc maintenant, nous n'avons pas d'erreurs. Alors essayons de quitter le jeu. Ça ne fait rien. Oh, on n'a même pas assigné les boutons. D' accord. Donc Canvas, Voyons le bouton MainMenu, mais fait-il pour lui donner le campus que nous venons de créer le jeu sur gestionnaire, et ceci est le manuel principal. Nous allons donc quitter le menu principal. Et puis on va utiliser le jeu rapide. Il nous faut une petite méthode ici qui s'imprime. Donc jeu de vide public. Et on va juste déboguer le manteau. On a quitté le jeu. Sauve ça. Et ici, nous allons à application.rb quitter. Mais évidemment, cela ne va pas marcher parce que nous ne sommes pas vraiment dans le jeu. Alors je vais retourner à Unity. Je vais donner la toile ici. Jeu rapide. Et enfin la charge. Je vais aller de l'avant et assigner le Canvas. Venu sur le gestionnaire quitter deux menu principal ou non, c'est la dernière sauvegarde de charge. Désolé pour cette dernière charge sauvegarde, enregistrez tout cela, exécutez le jeu. Et maintenant on peut quitter le jeu. Donc on a quitté le jeu. Évidemment, cela ne marche pas parce que nous ne l'avons pas encore construit. Alors essayons d'aller au menu principal. On y va. Nous sommes sur le menu principal. Si nous voulons continuer. On y va. Donc nous commençons, mais évidemment vous pouvez voir que nous n'avons pas la caméra bouge avec nous. Mais testons la charge. Sauvons. Ça devrait être à peu près pareil. Alors nous chargeons, économisons. On y va. Mais encore une fois, la caméra ne fonctionne pas et cela a été un problème tout au long du cours. Comment on va arranger ça ? Eh bien, on va aller dans la manette de caméra. Où est la manette de caméra et une mise à jour ? Alors, où avons-nous des mises à jour ? Nous allons vérifier, et ici nous allons créer une boucle while. Et cette boucle pendant va vérifier si nous avons une cible de joueur. Et si cette cible de joueur est nulle, alors nous allons continuer à chercher une cible de joueur. Donc la cible déclarée va être égale pour trouver l'objet de type le joueur. Donc, il va continuer à chercher un joueur. Et si nous avons une caméra virtuelle, alors nous allons régler le suivi sur la caméra virtuelle. Dot suivre égal à la transformation de point cible du joueur car il suit une certaine position. Nous allons sauver que tout va bien. On va y retourner. On va lancer le jeu. Et maintenant, quand nous chargeons moins sûrs, nous devrions avoir notre caméra suivre le joueur. On y va. Nous résolvons un problème qui existe depuis que nous avons commencé le cours. Je t'ai promis qu'on réparerait ça. On l'a réparé. Je m'assure toujours d'honorer mes promesses. J' espère que vous apprécierez ce cours. J' espère que vous m'aimerez en tant qu'instructeur. J' espère que vous aimez la façon dont nous construisons tout ça. Nous pouvons enfin mettre en scène notre jeu. Étape tous valider nos changements. Et si vous avez le temps et si vous ne l'avez pas déjà fait, laissez-moi un commentaire. Ça m'aide beaucoup et je te verrai dans la prochaine vidéo.
119. Références de combat: Bienvenue, mes collègues développeurs de jeux et cette vidéo, quand nous exécutons notre jeu, si nous frappons la touche Y, vous pouvez voir que nous avons connu gagné, qui est 15000. Et puis nous avons la récompense des objets, qui est une hache d'or, une armure d'or, et un océan de HB. Alors ne perdons plus de temps. Nous avons même le bouton de fermeture qui fonctionne. Et commençons. 0 cas. Alors maintenant, nous commençons des batailles. On fait face aux joueurs, on tue les ennemis, on met fin aux batailles. Nous avons le jeu terminé, nous avons la victoire, nous avons tout. Mais quelle est l'incitation à aller se battre ? L' incitation est, tout d'abord, finir une sorte de quête et deuxièmement, d' acquérir de l'expérience et quelques nouveaux objets cool. C' est ce que nous allons faire. Nous allons donc aller dans le Canvas. On va ouvrir la scène. Et ici, je vais cliquer avec le bouton droit de la souris et créer un nouveau panneau. Donc panneau, et ce panneau va être les récompenses de combat, les récompenses. Je vais le rendre opaque jusqu'à la fin. Donc, voilà, et nous allons ajouter l'arrière-plan que nous utilisons. Donc je vais aller aux sprites, vous êtes des éléments et ajouter celui que nous utilisons tout le temps. Je vais le rendre un peu plus petit et je vais le rétrécir à juste oui gros. Je vais ajouter un bouton ici pour tout fermer. Alors va à ton oeil et un bouton. Ce bouton sera le bouton de fermeture. Lorsque vous travaillez avec vous, je préfère toujours m'assurer d'appeler le bouton de fermeture. Donc nous savons que c'est en fait un bouton ici. En regardant la hiérarchie. Je vais ajouter un texte Mesh Pro et ici, et nous allons rendre ce bouton un peu plus grand, juste comme ça à ce sujet. Donc la taxe, nous allons la rendre aussi grosse que possible. Allez sur le bouton comme arrière-plan. Tu es assez familier avec tout ce que je fais. Alors gardez la perspective. Rends-le un peu plus grand. On y va. Définissez ça pour être au milieu. Et je vais réduire le texte pour tenir dans la petite boîte juste ici. Alors on y va, c'est tout. On va changer la police pour une raison quelconque. C' est toujours le cas. Cela ne me permet pas de choisir la première fois. Rendez-le gras, faites-le noir. Assurez-vous que cela est proche. Rends-le plus grand, aussi grand que possible. Peut-être qu'en bas, c'est un peu trop grand. Donc, je vais le
réduire à peu près à la taille et faire le texte sur la taille. On y va, on a un bouton de fermeture. Ensuite, nous voulons mettre en place deux étiquettes ou textes ou quoi que ce soit pour indiquer ce que nous obtenons. Alors, qu'est-ce qu'on obtient d'une bataille ? Nous pouvons avoir beaucoup de choses, mais pour l'instant, nous allons le faire, la première chose que nous allons obtenir est l'expérience et les éléments. Alors allons de l'avant et créer un texte bien éprouvé ici, qui va être la fête médiévale. Noir gras. Et ce sera les récompenses d'expérience ou la récompense d'EXP. Je vais agrandir ça. Et la police énorme du milieu. Installez-le ici. Peut-être pas si énorme que ça. Je vais rendre ça un peu plus petit. Je vais aller de l'avant et appeler ça l'étiquette de texte XP. Je vais le dupliquer et mettre d'accord, je n'ai pas dupliqué ça. Je vais le dupliquer. Merci. Et puis je vais mettre 14 objets ici. Donc ce sera la récompense des objets. On y va. Ça va parfaitement. Et ce sera l'étiquette de texte des éléments. Je vais enlever ça. Nous allons reproduire cela une fois de plus. Et je vais rendre ça beaucoup plus grand. On y va. Et ici, nous allons nous assurer que faire devrions-nous être le dimensionnement automatique ? Je ne pense pas. Ne faisons pas toute la taille. Rallons-le plus petit. On y va. Et ce sera le, disons XP gagné. Ou on va essayer ici. Par exemple, 99, 99, XP. On y va. Mettez un espace ici et la valeur du texte XP. Rendons-le un peu plus grand. Et puis je vais dupliquer la valeur exp x. Et ici, et ce seront les éléments. La valeur suivante. Maintenant, je pensais peut-être mettre ici à ce prix des articles que nous obtenons, ce
qui, je pense, est une bien meilleure approche à ce sujet. Je vais vous documenter, mais il faut un peu plus de travail. Nous voulons nous assurer que nous avons les fondamentaux pour l'instant afin de connaître les éléments que nous recevons. Mais comme je l'ai dit, je vous recommande d'aller de l'avant et d'implémenter des images ici. Donc je vais juste écrire des actes d'or, des actes argent, et une partie HB. Alors on y va. Ce sont nos articles. Je vais m'assurer de s'adapter à la taille automatique et cela parce que nous pourrions avoir plusieurs articles et ils pourraient trop squishy, trop gros pour notre toile. Je vais rendre ça un peu plus grand. Ok, donc on y va, c'est tout ce dont on a besoin. Maintenant, nous devons créer un script pour manipuler cela. Donc je vais aller dans les scripts. Je vais aller dans quel dossier devrions-nous enregistrer cela dans les caractères de dialogue ? Sauvegardons ça dans le système de combat. Est-ce que ça fait partie du système de combat ? Oui, sûrement ça. Donc, je vais créer un script C-Sharp et ce sera le gestionnaire de récompenses de combat. Entrez. Attendez que ça se compile. Non, merci. Nous allons ajouter qui sont attachés à la toile principale que nous avons. Et puis nous allons ouvrir le script ici. La première chose que nous ferons est que nous aurons besoin d'une instance. Si publique, instance statique ou désolé,
bataille, instance de gestionnaire de récompenses. Et nous allons sérialiser un champ parce que nous avons besoin de la, la taxe XP et le texte des articles. Donc nous aurons besoin de la libération conditionnelle du TMP. Donc tout ce que je fais ici, je vais le traverser un peu vite parce que bien que nous savons tout ce que ce ne sont rien de trop spécial, texte Mesh Pro, nous avons déjà fait tout cela. Donc XB, texte et éléments texte. Ensuite, nous avons un autre champ sérialisé de type objet de jeu pour l'écran de récompense réel. Et je ne voulais pas dupliquer ça. Ensuite, nous avons un champ sérialisé pour les éléments. Elle a les objets de récompense. Donc des types, Item Manager. Et c'est un tableau parce que nous avons plusieurs de ces objets et les objets de récompense. Et enfin, nous avons un entier, qui est l'expérience que nous obtenons. Donc et XP, ou récompense. On y va. Maintenant, nous avons besoin d'une méthode pour ouvrir l'écran de récompense. Donc, je vais supprimer le début et la mise à jour, et je vais créer un écran de récompense ouvert public vide. Appelons ça. Et nous allons prendre deux paramètres. Et ici, l'un sera l'entier pour l'XP et l'autre sera
un tableau de gestionnaire d'éléments, qui sont les éléments gagnés, appelons-les, et c'est ce qu'on appelle l'XP gagné. Ensuite, ici, nous allons définir la récompense d'EXP comme l'EXP gagnée. Et nous ne allons pas vraiment définir chaque bataille à partir de la toile. Nous allons appeler cette méthode ici et définir
l'entier et les éléments en fonction du combat que nous obtenons nous-mêmes. Et nous verrons plus loin dans les prochaines vidéos comment nous lançons des batailles qui ont leurs propres ennemis, qui ont plusieurs types de batailles en eux. Alors peut-être que nous avons différentes combinaisons d'ennemis dans cette bataille avec différentes récompenses et différents objets gagnés. Alors continuons. Je voulais juste mettre l'ambiance ici. Peut-être que je ne comprends pas pourquoi nous avons ce type d'installation. Et ici, nous verrons plus tard, tout aura du sens. Donc, nous allons avoir les objets de récompense comme les objets gagnés. Et puis on fera taxer l'EXP. Taxé pour être égal à l'expérience gagnée, mais bien concaténé avec l'espace XP, XP. Assez bien. Il y a ça qui nous dérange ? Non, ça ne le fait pas. Et maintenant, nous voulons définir les piles d'éléments, mais tout d'abord, nous voulons nous assurer qu'il est vide. Donc, les éléments, le texte, le texte est égal à vide. Pourquoi je dis ça ? Parce que nous allons parcourir tous les éléments, obtenir leurs noms et les concaténer au texte. Qu' est-ce que je veux dire par là ? Donc, je vais créer un foreach. Ceci pour chacun, va regarder à travers les chaînes, l'élément de récompense, texte et les objets de récompense point point B gestionnaire d'élément. Et maintenant, ici, nous allons définir le texte des éléments, le texte pour avoir un plus égal. Donc, parce que nous avons plusieurs objets, nous devons ajouter le plus égal afin qu'ils concaténent tous, donc les articles de récompense. Et on va le concaténer avec une virgule. Alors, comment cela fonctionnera-t-il ? Peut-être qu'on devrait ajouter la virgule à l'avance. Essayons de l'ajouter à l'avance. Ou savoir quoi. Ajoutons une barre oblique inverse t. Et la barre oblique inverse d signifie onglet barre oblique inverse. Donc ce sera une sorte d'espace, quelque sorte, mais un peu plus grand ou nous allons juste ajouter un espace. Pourquoi pas ? On y va, on sauve ça. Allons à Unity. Mais avant de faire ça, on a besoin d'un moyen de tester ça. Donc je vais lancer un défi. Et votre défi est d'ouvrir l'écran de récompense. Donc, créez une entrée et une mise à jour, vérifiez une clé. Lorsqu' il est enfoncé, ouvrez la fenêtre de récompense et avec les arguments appropriés. C' est donc un défi très fondamental. Mettez la vidéo en pause et allez-y et faites-le. Bon, bienvenue. Donc, je supprime toujours la mise à jour, mais c'est seulement parce que nous n'en avons pas vraiment besoin. On veut juste tester ça. Donc, je vais vérifier si le point d'entrée obtient la clé vers le bas. Utilisation du code clé. Quel code clé, dont il keycode que nous utilisons y, o scape, nous utilisons la touche Y. Je ne pense pas. Donc, je vais utiliser la touche Y et je vais ouvrir l'écran de récompense. L' expérience que je vais être récompensée par 50 mille. C' est très généreux. Et les objets de récompense seront les objets de récompense que nous allons mettre en place. Et ici pour le campus. Maintenant plus tard, nous devrions rendre ça privé, mais pour l'instant nous allons juste sauver ça. On va le mettre manuellement ici. Donc je vais retourner dans notre jeu. Je vais aller à la Canvas. Je vais, whoa, nous avons tellement de choses en ce moment pour fermer tout ça. Je vais donc donner la valeur du texte XP,
la valeur du texte des objets, l'écran de récompense, qui est la bataille. Récompenses. Le gain sera réglé sur ses propres objets, puis récompenses. Je vais ajouter trois articles ici, aller dans un lockdown, allons dans les articles Prefabs et que devrions-nous obtenir ? Nous obtenons une hache d'or, nous obtenons une armure d'or, et nous obtenons une partie de HP. Je vais sauver tout ça. Je vais obtenir les récompenses de combat. Je vais diriger le jeu. Et maintenant, on bouge. Rendons ça plus grand. Si le Y était bien, le Y ne fonctionne pas. Pourquoi ? Pourquoi ça ne marche pas ? Parce que pour une raison quelconque, nous avons oublié de faire quelque chose et que quelque chose l'est, et c'est quelque chose qui est le plus important. Et c'est de définir l'écran de récompense sur actif. Oh mon Dieu. Et nous devons aussi faire une chose de plus, c'est d'appliquer le bouton de fermeture. Donc, je vais aller de l'avant et créer un bouton de fermeture du vide public. Et il va simplement définir l'écran de récompense sur false. C' est de retour dans notre jeu. Allons chercher le bouton. Et ce sont des choses vraiment basiques que parfois on oublie. Alors, où est-il ? Récompenses de combat, gestionnaire, bouton de fermeture, sauvegardez ça, rampe, un jeu. On y va. Appuyez sur la touche Y. Et il a encore besoin de quelque chose que nous ne faisons pas correctement. Ou ça ou mon impotent ne marche pas. On sauve ça. On aurait dû sauver le 0. Ok, donc le problème était, ce qui est toujours le même problème. J' ai éteint la toile parce que je l'avais verrouillée. Je n'ai pas lu ce que j'éteignais. Maintenant, quand on lance le jeu, je crois que tout fonctionne sur une amende de 100 pour cent. On y va. Donc nous ouvrons ceci et nous pouvons voir que quelque chose ne va pas vraiment. Et cette chose très fausse est que au lieu de définir le nom de l'élément, donc le nom, les éléments de récompense, point de
texte, nom. On l'a mis à, quel type c'est ? Alors maintenant, on fait le jeu pour la dernière fois, je crois. Et ça fonctionnera. Voilà, la hache d'or, l'armure d'or et la potion de HP. J' espère que vous avez apprécié cette vidéo. Je vais changer la couleur ici, quatre des valeurs à lire. On y va. Donc maintenant, il semble, ça devrait paraître beaucoup mieux. Tu le verras dans l'intro. Je te vois dans la prochaine vidéo.
120. Donner des récompenses de combat: Bienvenue, mes collègues développeurs de jeux dans cette vidéo, quand nous courons le gain. Et de peur qu'on oublie, je dois faire quelque chose ici et c'est de fixer la récompense proche, sauver ça, exécuter le jeu. J' ai commencé la bataille. Utilisez les combats magiques sur les tentacules magiques de guerre, les démonistes. Maintenant, il est mort. Maintenant, utilisez les tentacules magiques sur le maître principal. On y est encore allés. Si nous regardons le joueur, il avait 36 HP actuel et XP actuel. Je veux dire, et quand on ferme le bouton, tu verras qu'il a 1000006. C' est parce qu'il s'est mis à niveau et qu'on enlève un peu d'EXP. Et si vous allez aussi aux éléments du menu, nous pouvons voir que nous obtenons nos récompenses. Alors ne perdons plus de temps et commençons. Oh, donc maintenant il est temps de donner des récompenses que nous obtenons sur Flexed 4. Donc, pour ce faire, je vais ouvrir nos scripts nouveau et je vais entrer dans le gestionnaire de bataille. Et ici, je vais vous lancer un défi. Donc, votre défi est d'ajouter l'opportunisme aux joueurs actifs. Vous allez changer la méthode du bouton de fermeture pour fermer l'écran de récompense. Vous allez parcourir tous les joueurs et leur donner de l'expérience. Et vous allez également vous assurer d'ajouter les articles dans les récompenses à l'inventaire des listes. Alors arrêtez la vidéo dès maintenant et allez atteindre Chaldéen. Ok, bienvenue. Donc, nous allons changer cela de bouton Fermer pour fermer l'écran de récompense. Donc ici, je vais commencer par, avant de fermer l'écran de récompense, je vais arrêter ça. Ou savoir ce qu'on aurait pu garder les vêtements. On verra ce qu'on fait. Tout d'abord, nous allons nous assurer que pour chaque statistique de joueur,
actif, joueur, et instance de point de gestionnaire de jeu, statistiques de points. Et ici, nous allons vérifier si le point de joueur actif GameObject est actif dans la hiérarchie. Ensuite, nous allons vérifier le joueur actif. Et nous allons lui ajouter de l'EXP en utilisant la récompense d'EXP. On y va. Et puis nous allons créer une autre boucle foreach qui va passer par les objets dans les articles de récompense. Et nous allons accéder à l'instance de point d'inventaire, ajouter des points et les articles que nous allons ajouter, l'article récompensé, enregistrez cela. Ensuite, nous allons définir l'écran de récompense pour enregistrer active sur false. Donc je ne sais pas pourquoi j'ai supprimé là-haut. J' aurais pu l'ajouter ici. Et là, je vais mettre la bataille B active à faux. Donc, ils sont venus instance de point de gestionnaire, bataille de
point actif à faux. Et pourquoi je le fais ici ? Je ne le fais pas déjà dans le chef de bataille ? Où est-il ? Donc quelque part ici, on y va. Je me mets ici à faux. Mais le problème est que c'est ce qui rend le personnage ou le joueur et Jimmy garder, bouger ou rester en place. Donc quand je veux ouvrir les récompenses de chauve-souris, je veux garder un génie vicié à sa place jusqu'à ce que lui et moi, Oups, je veux le garder en place. Je ne veux pas qu'il bouge en regardant les récompenses qu'il a obtenues. Donc, nous allons sauver tout ça. Mais maintenant, le problème est dans le gestionnaire de bataille parce que nous avons quelques choses à changer. Et qu'est-ce que c'est ? Nous allons appeler la récompense de combat. Où allons-nous l'appeler ? On l'appellera quand on mettra fin à une bataille. Mais si on s'enfuit, devrions-nous appeler cette récompense de combat ? Vous obtenez une récompense si on s'enfuit. Bien sûr que non, ce n'est pas ce que nous voulons faire. Et aussi, nous ne voulons pas imprimer celui à chaque fois que nous
fuyons, nous allons faire quelque chose de différent. Tout d'abord, je vais monter ici, et je vais créer un booléen privé qui s'enfuit. Et cela gardera une trace quand nous nous enfuirons. Ensuite, un ordre pour tester cela, nous allons créer deux autres variables, qui vont être publiques et XP, récompense, montant. Et aussi un autre tableau de type gestionnaire d'éléments publics, qui va être les éléments, récompense. Et c'est, tu verras pourquoi on fait ça. Tout d'abord, mettons-nous la fuite à vrai et nous nous enfuirons. Alors, où avons-nous un moyen ? On s'est enfuis quelque part ici. On y va. On s'enfuit. Donc, la valeur, nous allons définir la fuite à vrai. Et maintenant, nous allons entrer dans la routine de combat. Et ici, on va vérifier si on s'enfuit. Ensuite, nous allons nous assurer de mettre la bataille à faux. Cela signifie que nous allons pouvoir courir à nouveau et ensuite nous allons mettre la fuite à faux. Si ce n'est pas le cas, si nous ne fuyons pas, alors nous voulons imprimer ou ne pas imprimer. En fait, on y arrivera. L' instance de point du gestionnaire de récompenses de combat, point ouvert écran de récompense. Et nous allons envoyer avec le montant de la récompense XP et les objets, le montant, la récompense des objets, je veux dire, c'est pourquoi nous avons créé ces deux variables ici. On va se débarrasser d'eux dans un peu. Mais pour l'instant, nous devons aussi nous assurer que ici seulement si nous fuyons ou seulement si nous ne fuyons pas. Désolé, si on ne s'enfuit pas, alors on va imprimer ce qu'on veut. On y va. Donc nous avons résolu ce problème. Nous allons sauver tout ça et nous allons aller dans Unity. Faisons en sorte que nous ayons tout fait ici, correctement, sauvé tout, ok, donc nous allons aller dans Unity, aller sur le Canvas, aller au gestionnaire de menu, et ce ne sera qu'une chose temporaire à faire. Alors, où est-il ? Gestionnaires de bataille ? Désolé. Donc, dans le gestionnaire de bataille, nous avons les objets récompensés et le montant, disons que c'est 2 000. Et les objets seront, ajoutons juste une hache d'or ou d'argent ou d'or et un océan monopole. On va sauver ça. On va lancer le jeu. Nous allons commencer une bataille, essaierons de le gagner. La foudre, la guerre, Locke, la magie, les tentacules, les démonistes. Il est mort. Les tentacules magiques peuvent maîtriser. On a gagné. Alors on sort, mais on ne l'a pas fait. Nous oublions toujours d'ajouter une référence aux récompenses de combat ou nous allons y aller. Qu' avons-nous oublié d'ajouter ? Donc, le problème ici, si nous double-cliquez et cela nous dit qu'il n'y a pas d'instance d'un objet. Maintenant, pourquoi est-ce que ça se passe ? Parce que si nous revenons en arrière et faisons des récompenses de combat, nous avons créé une instance. On n'a pas réglé ça. Donc, je vais créer un début et ici encore. Et je vais définir l'instance pour être égale à cela. Maintenant, on ne devrait plus avoir ce problème. Je vais arrêter le jeu. Je vais le faire à nouveau. Je vais regarder le joueur, combien expérimenté le C ont. 36. Alors je vais commencer la bataille. La magie, la foudre, la guerre, la chance, tentacules
magiques, les démonistes chauffent ça. Des tentacules magiques. Mmh, maître, il est mort. 36. On y va. On a à l'intérieur, à l'intérieur du bouton de fermeture, vendons-le ici. Et le bouton de fermeture des récompenses de la bataille de
toile, Canvas, mais je vais récompenser le gestionnaire. Mettons-le à où il est ? Où est-il ? L' écran de récompense rapproché ? Donc, je vais aller de l'avant, il suffit de déclarer 36 écran de récompenses fermé. On y va. Cent neuf cent trente-six. C' est parce qu'on a augmenté le niveau. Alors maintenant, nous avons fait un nivellement avec nos joueurs. Avons-nous des articles ? Allons au menu. Vérifiez les articles. On y va, on a une hache d'or et une petite portion que l'on peut prendre sur Draco. On y va. Nous avons ajouté une certaine manière. On n'a pas encore utilisé le bouton de fermeture, mais c'est bon. C' est assez facile. J' espère que vous avez apprécié cette vidéo et je vous verrai dans la prochaine.
121. Créer des zones de combat: Bienvenue, mes collègues développeurs de jeux. Dans cette vidéo, quand nous lançons notre jeu, nous avons une zone de bataille ici. Quelque part. On y va, on a une zone de bataille. Et si elle est active sur Entrée, quand nous y entrons, vous pouvez voir que nous commençons la bataille. Rien ne se passe encore, mais nous continuerons avec cela plus tard. Mais pour l'instant, nous devons créer un type de bataille. Ayez différents types d'ennemis parmi lesquels nous pouvons choisir, et différents types de récompenses, des récompenses d'un objet et des récompenses d'EXP, etc. Alors ne perdons plus de temps, et commençons par notre bataille aléatoire. Oh, ok, maintenant le système de combat fonctionne très bien. Tout a été mis en place. Mais le seul problème est que nos batailles commencent avec nous frapper l'apiculteur et ce n'est pas bon du tout. Ce que nous ferons, c'est que nous créerons une zone qui, quand nous y entrerons, commencera une bataille. Si nous voulions commencer la bataille ou si nous appuyons sur une certaine touche. Donc, pour cela, allons de l'avant et créons un nouveau script. Et le script ici, dans le système de combat, c'est Clic droit. Et ce sera le genre de bataille que nous aurons. Les sels seront le gestionnaire de type bataille. Et pourquoi créons-nous un script ? Parce que chaque pétale nous aurons besoin de quelques choses. Tout d'abord, il aura besoin des ennemis que nous avons. Il aura besoin de la récompense que nous obtenons un IT aura besoin des articles que nous obtenons. Je vais donc en faire un comportement non mono. Et je vais l'utiliser comme un système sérialisable. On va sauver ça. Et maintenant, nous allons créer trois variables. Le premier sera une chaîne publique, et il contiendra les noms de nos ennemis. Ensuite, nous allons créer une expérience publique et récompenser. Et enfin, nous allons créer un tableau de gestionnaires d'éléments publics, qui sera les éléments de récompense. Donc nous allons sauver ça. Et maintenant, nous retournerons à Unity. Aller à la scène et va créer une zone. Donc je vais double-cliquer sur Draco. Rendons la scène un peu plus grande. Et ici, nous allons créer un objet de jeu vide. Objet de jeu vide. On appellera ça la zone de bataille. Donc zone de bataille à Enter, Réinitialisons sa position. Double-cliquez dessus. Et je vais déplacer cette zone de bataille. Et je vais y ajouter un collisionneur de boîte. Alors ajoutons un composant, le collisionneur de boîte 2D. Et rendons ça un peu plus grand. Donc c'est à propos du collisionneur de boîte que nous voulons avoir. Et on va en faire un déclencheur. On va sauver ça. Maintenant, nous allons créer un nouveau script ici, qui va être la bataille, instancier ou appuyez sur Entrée. Pour une raison quelconque, chaque fois que je crée un script frappé Entrée, il ouvre Visual Studio, va l'ajouter à la zone de bataille. Et on va ouvrir le script. Donc maintenant ce n'est pas le, ce n'est pas le script que je cherchais. Quoi ? Alors que la bataille a instancié. Voyons donc, notification de bataille. On y va. C'est la bataille instanciée qui est ajoutée à la zone de bataille. Et maintenant, on va ouvrir le script. Et la première chose que nous devons faire est de créer une liste de gestionnaires de type bataille. Donc, ce sera un champ sérialisé. Et le tableau de gestionnaire de type bataille, il s'appellera les batailles disponibles. Entrez, enregistrez ça. Et maintenant, je vais vous lancer un défi. Et votre défi sera d'ajouter quelques batailles. Créez donc trois batailles potentielles auxquelles les joueurs
affronteront et avec différents ennemis et récompenses. Alors arrêtez la vidéo dès maintenant et allez créer des batailles. Bon, bienvenue. Donc ici, nous pouvons ajouter une bataille et comme vous pouvez le voir, nous aurons plusieurs ennemis et plusieurs objets de récompense. Donc je vais ajouter trois ennemis ici et trois objets. Maintenant, vous vous demandez peut-être pourquoi nous utilisons des chaînes ici et pas comme nous l'avons fait dans la récompense. Articles. C' est parce que si nous revenons à notre manager et ici, la façon dont nous créons une bataille, où est-il ? Où est-il ? Où est-il ? On commence une bataille. Nous ajoutons les ennemis et ils sont de type chaîne ici. Ou où est-il quand nous commençons la bataille, la ficelle est les ennemis à frayer. Donc nous ne pouvons pas les utiliser ou nous pouvons changer même celui-ci, ce qui est une bonne idée. Je vous recommande de l'essayer. C' est une très bonne façon d'apprendre à gérer ça. Mais pour l'instant, allons-y et combien d'expérience ? Ou d'abord, ajoutons nos ennemis. Alors on va aux Prefabs. Allons poser ça. Et les ennemis d'attaque ou non, la bataille, les ennemis. Donc je vais ajouter un visage bleu ici, un Locke de guerre. Et c'est tout. Ça va être une sorte de bataille facile. Nous obtenons 100 XP et nous n'obtenons qu'un seul objet en récompense, c'
est-à-dire que nous verrons ce que c'est. Tout d'abord, ajoutons trois batailles potentielles contre les ennemis. Donc ça, le second sera un mage. Avec la phase bleue. On peut même ajouter une phase bleue. Donc nous avons deux visages bleus. La récompense est de 600 et les objets vont s'enregistrer un peu. Et enfin, le dernier phi potentiel que nous avons est un maître majeur avec un mage et une, une autre image. Et ce sera 1, 0, 0, 0, 500 XP. Et nous allons définir les objets de récompense. Alors, quels sont les objets de récompense pour entrer ici ? Je crois qu'on en a un. Alors je vais aller aux atomes et quels articles on a ? On a une sorte d'armure en argent. Puis dans, Donc celui-ci est fait. Le second, qui est un peu plus difficile, nous allons en ajouter une, une armure
dorée et dans une potion. Et enfin la dernière, qui est la plus difficile, ajoutons deux portions HP. Un océan monopole et une hache dorée. Donc nous allons sauver ça. Et maintenant, nous avons trois batailles potentielles que nous pouvons choisir. Maintenant, la prochaine chose à faire est d'aller de l'avant et d'aller dans nos scripts. Et dans la bataille instanciée ou nous allons créer quelques méthodes. Donc, le premier, les méthodes, je voulais dire les variables. Donc, la première variable va être un booléen et il va vérifier si elle s'active sur Entrée. Donc activer et tourner parce que nous pouvons créer deux types de zones de bataille. Un où il s'active immédiatement dès que nous y entrons. Et un autre qui garde une trace du
temps qu'un joueur passe dans cette zone de bataille, puis commence la bataille. Donc, nous allons créer un booléen privé qui va garder une trace si nous sommes dans la zone. Sauve ça. Donc maintenant, nous allons créer un entrepreneur entrer sur Trigger, Enter to D. Et nous allons vérifier si la balise Collision.com, nous n'avons pas fait cela chez un joueur de longue date. Ensuite, nous allons vérifier si nous activons sur Entrée. Et si ce n'est pas le cas, nous allons vérifier que la zone est égale à vraie. Et on va commencer un compteur dans la prochaine vidéo. Mais pour l'instant, nous allons juste imprimer que nous sommes ou nous, ou commencer la bataille. On y va. Sauvegardez ça à Unity. Exécutez notre jeu, marchez jusqu'à la zone de bataille. Et cela ne fonctionne pas parce que nous ne l'avons pas configuré pour activer sur Entrée, activer sur Entrée. On y va. Nous commençons la bataille quand nous entrons. J' espère que ça vous plaira et je vous verrai dans la prochaine vidéo où nous continuons nos batailles aléatoires en commençant.
122. Commencer des batailles aléatoires: Bienvenue de retour, Mes développeurs de jeux préférés. Nous avons donc créé une zone de bataille. Tout d'abord, il s'active lorsque nous l'entrons. Donc, je vais courir et montrer comment ça marche. Dès que nous entrons dans la zone, une bataille s'ensuit et 2s et 2s, je ne vais pas, je ne suis pas sûr. Et une autre option est que si nous n'activons pas sur Entrée, nous lançons le jeu. Nous avons un temps entre les batailles à gagner. Alors maintenant, quand nous marchons autour d'elle pendant 1 seconde, nous commençons une bataille. Alors ne perdons plus de temps et commençons. Ok, donc il est temps de finir avec nos batailles aléatoires. Nous allons ouvrir le script ici et nous allons créer quelques variables. Donc, la première variable que je vais créer est un temps entre les batailles. Et ce sera le temps entre les batailles. Et le second sera un compteur privé de combat de flotteurs. J' ai donc pensé que ce serait une excellente occasion de vous apprendre comment les compteurs de combat fonctionnent en général. Donc et commencer, cela signifie que quand nous avons commencé la bataille, nous allons vérifier le compteur de combat et nous allons le mettre à une sorte de valeur aléatoire. Donc plage de points aléatoires. Et ce sera un temps entre les batailles fois 0,5 f et un temps entre les batailles définies 2 fois 1, 0,5. Donc c'est un peu moins ou un peu plus, en ajoutant ou en ajoutant la moitié. Ce n'est pas un peu, mais continuons maintenant, une mise à jour, nous allons vérifier quelques choses. Nous allons, tout d'abord, créer la mise à jour. On va vérifier si on est dans la région. Cela signifie que nous avons défini la zone, une zone à vrai. Et où est-il ? Et le mouvement de désactivation du point de l'instance du joueur est faux. Donc, nous ne voulons pas que le joueur ouvre le menu et soit coincé là pour que la bataille commence, nous voulons nous assurer qu'il a la capacité de se
déplacer et qu'il a choisi d'être dans cette zone de bataille sera. Et puis nous allons vérifier si nous avons une entrée qui obtient l'axe rho. Et si nous avons une sorte de mouvement horizontal ou vertical, alors nous allons commencer la bataille. Donc, je vais aller dans le script du lecteur et je vais
copier le input.txt est horizontal. Et je ne suis pas sûr que tu saches ce que je fais ici. Donc, je vérifie s'il y a une entrée sur l'axe, sur l'horizontale. Et cela signifie que si c'est différent de 0, ou si nous avons un mouvement sur la verticale, cela signifie
que nous nous déplacons à l'intérieur de ces batailles. Si on reste immobile, on ne veut pas démarrer le compteur. Donc, si le mouvement sur l'horizontale ou la verticale est différent de 0, cela signifie
que nous nous déplacons à l'intérieur de la zone de bataille. Cela signifie que le compteur de combat peut commencer à compter à rebours à partir de l'heure delta de point bas. Sauvegardez ça. Et puis nous allons vérifier si le compteur de combat à un moment donné devient 0 ou moins ou égal à. Et pourquoi le fixons-nous pour être inférieur ou égal ? Parce que parfois, et c'est une question que je reçois souvent. Parfois, le compteur de combat lors de la suppression time.Deltatime n'atteint pas exactement la valeur 0. Donc, ce que nous faisons est de vérifier si elle est inférieure à 0, alors si c'est le cas, nous allons de l'avant et commençons la bataille. Mais pas seulement cela, cela signifie que cette condition passera, mais j'espère que vous avez compris pourquoi nous l'avons fixé moins ou égal et pas juste égal, égal à 0. Donc ici, nous allons mettre le compteur de bataille à, à nouveau devenir une sorte de portée aléatoire. Alors on y va. Et puis nous allons commencer une routine de combat. Ou en fait, cela devrait être commencer le revêtement. Donc nous allons commencer une co-routine, ouvrir les parenthèses, et je vais aller de l'avant et vous lancer un défi. Donc votre défi est de créer l'or. Vous aurez donc besoin de créer une coroutine. J' ai commencé des batailles. Ou quel que soit le nom a été dit, la bataille à l'actif devra créer un nombre aléatoire pour choisir un fond potentiel. Vous aurez besoin de définir la récompense des objets et XP, vous aurez besoin d'attendre un peu, obtenir était un peu. Cela signifie rendement, attendez quatre secondes, puis vous devrez commencer la bataille. Alors arrêtez la vidéo dès maintenant et allez faire le défi. Ok, bienvenue de retour. Donc, je vais aller de l'avant et générer la méthode du champ de bataille ici. Et ce n'est pas un, nous devons nous assurer que c'est un énumérateur oculaire. Je vais supprimer cette ligne de code ici. Et la première chose que nous allons faire est d'accéder à l'instance de point de gestionnaire de jeu, la bataille de
points est active, vrai ? On y va. La deuxième chose est que je vais créer un entier de bataille sélectionné ici. Et ça va être égal à la plage de points aléatoires. Et ce sera le 0, la longueur
de points de batailles disponibles disponibles. Donc, ce que cela fait, il choisit une valeur aléatoire entre 0 et le nombre de batailles disponibles. Donc, c'est assez explicite. Nous avons déjà fait beaucoup au hasard cette gamme. Ensuite, nous allons accéder au gestionnaire de bataille et à l'instance. Et nous allons aller de l'avant et définir la récompense des objets pour être égale
aux batailles disponibles à la position sélectionnée points de bataille bonus ou non, non. Je veux dire, oui, c'est tout. Le second sera les récompenses XPS ou le montant de la récompense XP. Avec l'expérience de récompense XP. On y va. Et puis nous allons céder pour attendre un peu de temps. Donc céder, revenir, nouveau attendre quatre secondes. Et combien devrions-nous attendre ? Environ 1,5, je pense que c'est un bon moment. Nous pouvons le changer autant que nous le voulons. Ensuite, nous irons voir le chef de bataille. Dot instance, point commence la bataille ou les batailles commencent. Ok, alors on y va. C' est le début de la bataille. Nous devrions leur envoyer la chaîne d'ennemis. Ainsi, les batailles disponibles sur les ennemis de combat sélectionnés. On y va, on sauve ça. Et enfin, une bonne chose à faire, c'est qu'on va s'estomper. Comment allons-nous s'estomper ? J' ai oublié ce que la méthode s'appelait. Alors que le gestionnaire de menu et la décoloration, décoloration, la décoloration des mots, le menu Démarrer fondu. Scarred, bonne image de jeu fondu, donc fondre l'image. Donc, je vais accéder à la méthode d'image point d'instance de point du gestionnaire de menu. Donc, cela va fondre l'image dans et hors. Bonne transition dans la bataille. Et enfin, nous allons ajouter quelque chose ici où nous
allons détruire la zone si nous voulons après avoir fini le fond. Donc, je vais ajouter un champ sérialisé ici, qui va être un booléen. Et nous allons activer l'Activer après le démarrage. Et ce que cela fera est après que nous avons commencé le jeu ou commencé la bataille, si nous voulons désactiver après le début, nous allons détruire l'objet du jeu. Cela signifie que lorsque nous terminons la zone terminée, si nous revenons dans cette zone, nous n'avons plus de bataille là-bas. Donc je vais sauver tout ça. Je vais retourner à Unity. Sauvons ça. Je vais désactiver et le temps entre les batailles va être, je ne sais pas. Mettons-le à un, sauvegardez ça, exécutez le jeu. Et ça veut dire qu'on doit rester 1 seconde à l'intérieur de la zone. Alors on y va. Une seconde. Et on ne s'est pas estompés. On aurait dû commencer à s'évanouir. Pouvons-nous utiliser la foudre magique sur la page principale afin que vous puissiez voir et entendre que cela fonctionne. On doit s'estomper. Comment on s'évanouit ? On a une décoloration. Fondu, image, public, vide, fondu. Et on va copier tout ça. Allons sur le Canvas, vérifions l'image, ce qui se passe ici, l'animateur. Ouvrez donc les paramètres de l'image de décoloration. Allons de l'avant et créons une transition sur le chemin du retour. Et cela va être déclenché par un et fané sans temps de sortie avec le temps 0 entre les transitions. Et nous allons nous assurer de mettre fin à la décoloration. On sauve ça. Copions la référence de chaîne. Retournons ici. Et on va finir par s'évanouir. On sauve cette eau instanciée de bataille. Et où devrions-nous s'évanouir ? On devrait s'évanouir dès que la bataille commence. Alors on y va. Nous commençons ou non, nous faisons appel au gestionnaire de menu. Instance. Se fondre. Sauvegardez ça dans notre jeu. Retour aux scènes. Lancez le jeu. Allez dans la zone de bataille. Essayons de rester là-dedans. Donc si on se tient debout, rien ne se passera. Si on commence à bouger. On y va. La bataille commence, nous disparaissons, et maintenant nous sommes en bataille. Mesdames et messieurs, essayons de gagner, mais je pense que ça va
prendre un peu de temps. Voyons s'il a été détruit. Où est-il ? Donc pas de batailles parce que nous voulons détruire à l'impact. Essayons de ne pas activer. Alors, lancez le jeu. Entrez dans la zone, promenez-vous. On y va. Elle a été détruite ? Non, la zone de bataille est toujours là. Et la dernière chose que nous voulons faire est que si nous activons sur Entrée, nous n'avons pas vraiment commencé ça. Donc si nous revenons en arrière et au lieu d'imprimer, nous allons commencer une co-routine de combat. Et nous aurions dû commencer à courtiser d'abord. Alors commencez la coroutine, ouvrez les parenthèses, fermez les crochets, point-virgule, retournez en arrière, exécutez le jeu. Lancez le jeu. Et maintenant, quand nous marchons vers la zone de bataille, dès que nous la touchons, nous
y allons, nous commençons la bataille. J' espère donc que vous apprécierez, j'espère que vous apprécierez, j'espère que vous engagez vos changements. Nous avons tellement de commits en ce moment. C' est un projet incroyable sur lequel nous travaillons. Nous avons un jeu de RPG presque terminé, mais il y a un composant très, très, très important dans n'importe quel jeu de RPG. Et c'est un combat de boss. Et c'est ce que nous ferons dans les prochaines vidéos. Je te verrai alors.
123. Bataille Boss: Bienvenue, mes collègues développeurs de jeux. Comme vous pouvez le voir, nous avons un démon effrayant ici. Donc, quand nous courons notre jeu, si nous
marchons ici, nous avons traversé ce bord, nous pouvons voir que nous avons un démon, mais il est trop tard. Nous devons les affronter. Alors je vais attaquer le boss dragon. Il va attaquer en arrière. Je vais encore attaquer le boss dragon. Essayons de le tuer. Je ne pense pas que ce soit trop puissant. Nous avons gagné la bataille parce que nous l'avons détruit avec nos personnages. Alors ne perdons plus de temps et nous allons créer notre ennemi boss. Oh, affaire. Il est temps de faire des batailles de perte. Je pense que c'est la partie la plus amusante et excitante. Donc, je vais ajouter un patron ici et affiche. Mais d'abord, on a besoin d'un patron. Alors je vais aller aux sprites, au caractère, aux ennemis. Je vais faire un clic droit ici et créer un dossier pour le patron. Et le patron que je vais utiliser comme celui-ci. J' ai donc trouvé ce dragon cool avec un peu d'animations. Je pensais que ce serait cool si le patron avait des animations. Je vais traîner ce patron et ici, et comme vous pouvez le voir, il est assez petit. Allons donc dans ces sprites. Faisons ce 30 pour appliquer. Je pense que c'est un peu trop petit. Je vais m'assurer que Essayons 16. Appliquez ça. On y va. Maintenant, nous avons un grand, grand patron. On peut même le rendre un peu plus grand, mais pour l'instant on va le garder tel qu'il est. Nous allons choisir tout ça et les faire 16, pli, faire tous. Aucun filtre de points appliqué. Et nous n'avons pas besoin de faire quoi que ce soit de plus. Ou nous le faisons. Peut-être que nous devons aller de l'avant et changer cela de la valeur par défaut
au personnage de combat et fera de lui 1. Appuyez sur Entrée. On y va. Maintenant, nous avons cet énorme, énorme patron. D' accord ? On y va. Donc maintenant, on va mettre notre patron ici, peut-être le faire face dans l'autre sens. Nous pouvons faire cela en définissant ces deux minus1. Et puis on va changer ça pour la bataille des boss. On va lui ajouter un collisionneur à boîte. Mais ce collisionneur de boîte ne sera pas sur le patron, mais sur la zone juste ici où le joueur peut entrer et se déclencher. Donc, nous allons le définir comme un déclencheur et nous allons ajouter une bataille instanciée à cela. Et nous allons créer une bataille disponible ici. ne devrait y avoir qu'une seule bataille, et nous devrions avoir les ennemis ici devrait être un ennemi et les objets de récompense, allons définir le mot XP à 3000. Et nous obtiendrons, peut-être nous allons voir quel genre d'articles nous pouvons obtenir. Allons aux articles préfabriqué. Bien sûr, nous obtenons de l'
or, de l'or et quelques portions de HP. Voyons, ajoutons plus de partie HP, trois parties HP, et deux monopoles. Là, nous allons et obtenir et hache d'or, armure d'or, trois potions HP et pour gérer les océans. Sauvons ça. Maintenant, il est temps de créer un ennemi. Et comment allons-nous faire ça ? Eh bien, je vais utiliser l'un des ennemis déjà créés de la bataille. Je vais ajouter la serrure de guerre ici. Et je vais changer quelques choses. Donc, au lieu de seigneur de guerre, ce sera le, comment devrions-nous l'appeler le patron dragon. Alors pause Dragon. Je vais changer les sprites pour avoir un patron. On y va. Donc un boss sprite. Et on y va. Le HP maximum doit être de 1, 0, 0, 0, 0. Avec un taux d'âge actuel de 100 ans, les gestionnaires actuels devraient être de huit cent huit cent vingt. J' ai été par erreur. La dextérité devrait être 16. La défense devrait être de 16 ans. Puissance de l'arme 60. Oui, bien sûr. Armure défense 50, je pense que c'est un peu dominé. Le sprite. Que devrait être ce sprite ? On peut aller de l'avant et utiliser une de ces parcelles ou tu sais quoi ? Je pense que celui-ci va disparaître comme les personnages de combat que nous avons. Quoi d'autre devrions-nous avoir les particules sourdes ? Ajoutons ça. Donc préfabs et voyons le caractère. C' est quoi ces particules attaquantes, les dégâts subis. Maintenant, c'est quelque chose de différent. Ce chef de bataille en mer, oh, on y va. Donc, la mort du personnage, nous allons cliquer sur celui-ci à nouveau. Et ce n'est pas les Warlocks, c'est le patron. Le préfabriqué Dragon va le changer en un peu. Ensuite, nous allons ajouter l'effet mort de personnage sur lui. On va sauver ça. Que devrions-nous faire d'autre ? Je pense que c'est tout, oh, les attaques qu'il a. Donc nous allons ajouter toutes les attaques. Il aura toutes nos attaques. Vous pourriez créer une attaque spéciale juste pour lui. Je vous recommande de le faire. Voyons où avons-nous les attaques dans la bataille ? Non. Ok, donc j'ai trouvé le dossier. Cliquons sur la bataille de boss. Et oh, je voulais cliquer sur le patron dragon. Et voyons ce qu'il a. Il a le feu des toilettes. D' accord. Nous devions montrer que nous les enfermons. On a la barre oblique, le feu bleu, les tentacules. Donnons-lui le laser qui lui a donné les tentacules violettes, et donnons-lui l'effet éclaircissant. Alors on y va. Maintenant, nous avons un dragon patron très fort. Que devrions-nous lui ajouter d'autre ? Je pense que c'est assez. Alors je vais aller voir les personnages de combat. Alors je vais voir des préfabs de combat, des ennemis. Je vais traîner dans le patron et on va créer un préfabriqué original. On y va. Alors maintenant, je vais aller dans la bataille de boss. Je vais retirer le patron Dragon 4. Maintenant, la bataille du patron, voyons. L' ennemi contre lequel nous sommes contre, c'est le boss dragon. Whoo. Tellement effrayant, il est vraiment un peu effrayant. Nous ne voulons pas activer sur Entrée, car généralement les patrons, vous pouvez toujours fuir avant le début de la bataille. Mais nous verrons que si la bataille commence déjà, il n'y a pas d'échappatoire pour nous. Je vais donc fixer l'heure pour être deux. Je vais m'assurer que l'actif sur Entrée n'est pas actif sur Entrée. Donc je vais augmenter la taille. Et là aussi,
je n' en suis pas sûr. Et je pense que tout est presque fait. Donc maintenant, si nous courons notre jeu, essayons d'entrer dans cette zone et de voir si la bataille commence. Alors on y va. Ok, donc apparemment pas si bien. Ok, donc l'idée ici est que nous ne voulons pas que notre personnage de combat, je veux dire le sprite soit un personnage de combat. Mettons-le en tant que joueur. Il sera rendu normalement, va le déplacer un peu vers la droite. Donc je vais, malheureusement le sprite est déjà là. Donc, si je le déplace, le collisionneur de boîte se déplacera aussi. Je vais le mettre ici. Je vais ajuster ça. On y va, sauve ça. Et nous devons aussi nous assurer que si nous allons dans les personnages de combat et je veux dire le gestionnaire de bataille et les ennemis préfabriqué, nous devons ajouter les dragons. Donc je vais verrouiller le chef de bataille. Je vais aller dans les ennemis à la traînée. Sauvons ça. Et essayons de marcher là-bas et voir si ça marche. Alors maintenant, la bataille commence, et nous y allons. Donc nous avons cet énorme dragon contre nous que nous sommes ou devrions être prêts à combattre. Maintenant, la prochaine chose que nous devons nous assurer est que nous ne pouvons pas nous enfuir quand il s'agit du patron. Donc je vais vous lancer un défi, et votre défi n'est nulle part où courir. Donc, vous aurez besoin de créer une variable et t bataille instanciée qui décide si c'est si nous pouvons ou ne pouvons pas fuir. Faites de même et le gestionnaire de bataille ajoute un argument booléen à la méthode de départ de bataille qui décidera si nous pouvons ou ne pouvons pas fuir. Et enfin, définissez la variable et le du gestionnaire de bataille. Alors mettez la vidéo en pause et allez faire le HL7. Ok, bienvenue. Donc, ici, nous allons créer un champ sérialisé. Laisse-moi juste séparé du reste. Et ça va être un booléen et ça va être peut s'enfuir. Et puis nous allons créer un bool de type booléen privé sur tout cela devrait être dans le gestionnaire de bataille, que nous allons vérifier. Donc ici, nous allons créer un bool privé et ce sera le can run si nous pouvons ou ne pouvons pas courir. Maintenant, dans la méthode de début de bataille, nous allons ajouter un autre paramètre qui va être le pool peut exécuter, sauvegardez cela. Et maintenant, nous sommes ouverts. Et ici, si la bataille n'est pas active, nous commençons la bataille. Et nous avons dit que la peut courir égale ou inférieure à elle, peut s'enfuir, est égale à la peut s'enfuir. Sauvegardez ça. Maintenant, nous allons faire défiler vers le bas dans la méthode runaway. Alors que la méthode fugueuse, nous y allons. Et nous allons établir une condition autour de tout cela. Et on ne peut s'enfuir que si on peut s'enfuir. Donc je vais ajouter ces deux-là. Et je vais déplacer ceci si déclaration et côté. Donc, si nous pouvons courir et que la valeur est supérieure à la, je veux dire, nous devrions déplacer tout cela. On y va. Donc, si nous pouvons courir, alors nous allons vérifier si nous avons une chance de enfuir car nous allons passer au prochain tour. Et si nous cliquons sur le bouton Fuir, cela ne fonctionnera pas parce que si nous sommes contre une sorte de patron, et la dernière chose que nous devons faire est d'éviter les erreurs. Donc voici un truc astucieux ici. Donc, vous pouvez voir que la bataille de départ est maintenant erronée parce que nous avons besoin d'ajouter un argument. Donc une très belle astuce que vous pouvez faire est d'aller ici. Vous pouvez voir que nous avons deux références. Si nous cliquons sur eux, nous y allons. Nous pouvons voir que nous avons un dans la bataille Manager Instance start battle et un et ici donc nous pouvons double-cliquer 0. Donc nous sommes ici dans la bataille instanciée. Et cette bataille instanciée ou a la boîte s'enfuir. Donc on va le mettre comme on peut s'enfuir. Et la deuxième référence est à la ligne 50. 50. C' est celui que nous avons mis en place. La deuxième est sur la ligne 73 et ici, et mettons-le à vrai. Je ne peux pas s'enfuir pour l'instant. On va sauver tout ça. On va retourner à Unity. Il va attendre pour ça. Donc la bataille du patron ici. On y va. Alors on peut s'enfuir ? Non, on ne peut pas s'enfuir, mais dans la zone de bataille, on peut s'enfuir. Donc je vais sauver ça. Je vais diriger le jeu. Et vous pouvez ajouter une sorte de message ou de notification, ce qui est une bonne idée. Alors je vais commencer la bataille. Essayons de courir. Non, on ne peut pas essayer de l'attaquer avec la foudre. Essayons de l'attaquer avec tout ce qu'on a. On y va. Il nous a tués, N1 a frappé, essayons d'attaquer le dragon. C' est très effrayant. Donc nous avons un démon très puissant. On veut o, on l'a tué. Joli. Nous avons vaincu le dragon. Nous avons hache
dorée, armure dorée, HP,
HP, potion HP, potion et potion mono. Nous pouvons même créer quelque chose ici qui fait en sorte que si nous avons plusieurs manipulations, nous pouvons ajouter comme une petite parenthèse avec un a3x à côté d'eux, et ainsi de suite. Nous pouvons même désactiver, tandis que l'activation lors de l'entrée. Donc maintenant, si nous marchons ici, nous recommençons la bataille parce que nous ne sommes pas activés après avoir commencé ici,
là nous allons activer. Cela devrait toujours être activé pour les batailles de boss. Et on y va. C' est tout ce qu'on avait à faire pour que notre bataille ait gagné contre un patron. Dans la vidéo suivante, évidemment, nous devons créer un moyen de remplir la demande lorsque nous vainquons les ennemis et surtout les patrons. Je te vois dans la prochaine vidéo.
124. Compléter des questions de combat de bosses: Bienvenue de retour, Mes développeurs de jeux préférés. Je le dis toujours avec la plus grande intention, tout mon cœur, mes développeurs de jeux préférés, vous l'avez fait jusqu'ici. Quand nous lançons notre jeu, nous pouvons voir que nous avons une question ici qui est de vaincre le grand Jag et le patron. Si on descend, on commence une bataille. Essayons de le tuer aussi vite que possible. Les attaques sur le ciel sont si faibles. Essayons de tuer ce dragon. Encore une fois. Magie, foudre, tentacules de drogue et de magie, dragon, tentacules magiques, patron Dragon. Nous y sommes allés, nous obtenons nos récompenses. Lorsque nous cliquons sur le Fermer, vous pouvez voir que l'élément cinq, qui est la défaite grand patron de dragon, est coché et nous avons terminé cette quête. C' est cool ? Alors ne perdons plus de temps. On se voit ici et on va commencer. Oh, ok, donc on veut terminer une sorte de quête quand on vaincra le patron. Comment allons-nous faire ça ? D' abord, nous allons aller dans notre bataille instancier l'eau. Et ici, nous allons créer quelques variables. Je me sens comme chaque vidéo que je commence de la même façon. De toute façon. Créons un champ sérialisé. Fais quelque chose en dehors de la boîte. Donc, c'est un booléen et il va être appelé le devrait complet aqueux ou quête, juste quête. Donc, quand cela est coché, cela signifie que lorsque nous terminons cette bataille, une quête doit être terminée. Et nous allons créer une bague publique, véritable quête de bague à compléter. Et sauvegardons cela maintenant dans la bataille pour gagner des récompenses. Alors que le mauvais aussi. Pourquoi ne pas avoir les récompenses de combat ici prêtes pour nous ? Récompenses, récompenses. On y va. La notification des récompenses de combat. Nous allons créer deux variables ici, qui vont être un bool public,
mark, quest, complete, et une chaîne publique. La quête à accomplir. Sauve ça. Et maintenant, nous pouvons faire défiler vers le bas quand nous fermons la récompense. Ici, nous allons vérifier si nous avons terminé la quête de marque. Ensuite, nous allons accéder à l'instance de point de gestionnaire de requêtes, dot mark quest, complete, mark quest incomplète ou complète. Et ici, nous allons lui envoyer la quête pour terminer. Donc, c'est que je me souviens comment fonctionne le gestionnaire de quêtes. Je ne suis pas sûr, mais heureusement, nous avons nommé nos méthodes pour répondre aux besoins de ce qu'ils font. Maintenant, nous savons que nous marquons cette quête comme complète. Donc maintenant de retour dans la bataille instanciée et l'une de nos coroutines. Et ici, quand nous commencerons la bataille, nous allons faire appel à la bataille ce qu'on appelait le gestionnaire de récompenses. On y va. instance de point, point, instance de point, pensée Mark, quête complète doit être égale à la quête complète. Alors devrions-nous terminer une quête ? Et la seconde, c'est la quête à accomplir sera égale à la quête à accomplir que nous avons ici. Donc, si je double-clique, nous pouvons clairement voir que Faisons un et la bataille instanciée. Et celui-ci est en effet gestionnaire de récompenses de combat. Nous allons sauver cela. On va y retourner. Où avons-nous sauvé ou quêtes dans le gestionnaire de jeu, Je crois est venu gestionnaire, où toutes les quêtes là nous allons. Je vais en ajouter un et ici, les pieds, les pieds. Un grand dragon. Patron. Je vais copier ça. Et je vais y aller, où devrions-nous aller avec ça ? Et à la bataille du patron ? Et nous devrions terminer une quête. Et ce sera la quête complète. Je le colle ici, je pars, sauve ça. Je vais y aller et nous nous assurons que nous ne pensons pas que vous devriez terminer la petite bataille ou nous pouvons la tester ici. Donc je vais sauver ça. Je vais diriger notre jeu. Je vais aller de l'avant et vérifier le gestionnaire de jeu. Et ici, d'abord le gestionnaire de jeu, le gestionnaire de jeu. Donc, nous pouvons voir que nous avons la défaite, qui est le cinquième élément ici. Alors je vais aller à la bataille du patron. Attendez l'Attaque du patron, l'Éclairage magique. Essayons de tuer ce patron. Et encore une fois, c'est faire les grands tentacules. On y va. Dragon de boss magique éclaircissant, Dragon bleu. C' était une attaque si faible. Essayons les tentacules violettes sur les boss dragons. Donc, nous un, Voyons voir. Maintenant, nous pouvons voir nos récompenses. Lorsque nous fermons, nous devrions voir que cet élément est complet. Et on y va. Nous avons terminé une des quêtes que nous devions faire. C' est cool ? Maintenant, nous avons terminé tout ce que j'espère que vous avez apprécié. Je pense que c'est la dernière vidéo du cours. Je ne suis pas sûr. Peut-être qu'on en fera un autre, peut-être que je le mettrai à jour. Mais en attendant, j'espère que vous avez tout apprécié. J' espère que vous avez laissé un avis. J' espère que tu m'aimes comme instructeur ne me le fais savoir. J' aimerais entendre votre opinion.