Unreal Engine 5 Blueprints : inventaire RPG multijoueur (2023) | Pixel Helmet | Skillshare
Recherche

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Unreal Engine 5 Blueprints : inventaire RPG multijoueur (2023)

teacher avatar Pixel Helmet, Game Developer & Publisher

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      1.01 Introduction

      1:20

    • 2.

      1.02 Téléchargement du projet

      2:13

    • 3.

      1.03 Unreal Engine 5 Aperçu

      14:59

    • 4.

      1.04 Ce que le projet contient déjà

      3:33

    • 5.

      2.01 Introduction aux plans de widget

      5:03

    • 6.

      2.02 Concevoir l'interface utilisateur principale

      10:55

    • 7.

      2.03 Concevoir les boutons de la catégorie d'inventaire

      7:06

    • 8.

      2.04 Concevoir les fentes d'inventaire

      6:17

    • 9.

      2.05 Concevoir l'inventaire

      8:38

    • 10.

      3.01 Affichage de l'interface utilisateur principale

      7:11

    • 11.

      3.02 Qu'est-ce que la réplication d'événement

      4:50

    • 12.

      3.03 Clé de liaison pour l'inventaire ouvert

      3:52

    • 13.

      3.04 Introduction à l'énumération

      2:18

    • 14.

      3.05 Créer l'événement Open et Close Widget

      12:38

    • 15.

      3.06 Introduction à la communication sur le plan social

      3:30

    • 16.

      3.07 Interfaces de Blueprint

      6:52

    • 17.

      3.08 Affichage de l'inventaire

      3:00

    • 18.

      4.01 Créer le Blueprint d'élément de base

      5:09

    • 19.

      4.02 Introduction aux plans d'enfant

      3:43

    • 20.

      4.03 Créer les éléments

      5:20

    • 21.

      4.04 Introduction aux structures

      3:16

    • 22.

      4.05 Structure d'information d'article

      3:52

    • 23.

      4.06 Introduction aux tables de données

      2:40

    • 24.

      4.07 Tableau de données d'information d'article

      9:55

    • 25.

      4.08 Fonction de bibliothèque d'informations d'article

      7:14

    • 26.

      5.01 Créer le composant d'inventaire

      1:19

    • 27.

      5.02 Structure de la fente d'inventaire

      1:58

    • 28.

      5.03 Structure de la catégorie d'inventaire et tableau de données

      5:58

    • 29.

      5.04 Créer les variables d'inventaire

      4:01

    • 30.

      5.05 Redimensionnement des variables de la catégorie inventaire

      3:25

    • 31.

      5.06 Affichage des catégories d'inventaire

      11:20

    • 32.

      5.07 Affichage des fentes d'inventaire

      8:39

    • 33.

      5.08 Définir la catégorie d'inventaire sélectionnée

      14:22

    • 34.

      5.09 Re-adding les éléments existants pour organiser

      7:51

    • 35.

      5.10 Affichage d'élément dans l'inventaire

      7:51

    • 36.

      6.01 Interagir avec les éléments

      5:36

    • 37.

      6.02 Initial Ajouter à la logique d'inventaire

      6:39

    • 38.

      6.03 Ajouter un article à l'inventaire

      6:25

    • 39.

      6.04 Créer une pile d'articles neufs

      37:16

    • 40.

      6.05 Trouver une pile partielle

      17:48

    • 41.

      6.06 Optimiser l'inventaire

      13:05

    • 42.

      7.01 Ajouter l'opération de glisser-déposer

      5:37

    • 43.

      7.02 Dropping item de l'inventaire

      14:37

    • 44.

      7.03 Permettre la physique des armes

      3:37

    • 45.

      8.01 Obtenir des informations sur la machine à sous

      4:10

    • 46.

      8.02 Mettre à jour l'information sur la machine à sous

      3:49

    • 47.

      8.03 Dropping item sur la fente d'inventaire

      5:46

    • 48.

      8.04 Mettre à jour les fentes d'inventaire

      9:10

    • 49.

      8.05 Ajouter des effets sonores

      6:45

    • 50.

      8.06 Tester le produit final

      3:24

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

148

apprenants

1

projets

À propos de ce cours

À propos de ce cours

Si vous n'êtes pas sûr de la façon de créer un système d'inventaire multijoueur pour votre jeu, ce cours est fait pour vous. Vous apprendrez à créer un système d'inventaire multi-joueur à partir de zéro sans écrire une ligne de code en utilisant les Blueprints Unreal Engine 5. Pas d'expérience nécessaire ! Vous verrez à quel point il est facile de créer un système d'inventaire similaire à celui dans les jeux populaires.

Vous apprendrez à concevoir l'inventaire et à programmer la fonctionnalité de celui-ci, y compris les articles empilables, les consommables, la quantité et plus encore. Vous serez en mesure de créer des catégories d'inventaire et de trier les éléments en conséquence. Enfin vous apprendrez à créer des articles lootable qui seront ajoutés à votre inventaire et à les déposer à d'autres joueurs.

Tout ce qui précède sera enseigné en utilisant la meilleure pratique de codage en suivant les vidéos en profondeur. Je vais également vous fournir le projet fini pour que vous puissiez l'inspecter comme vous le souhaitez en suivant le cours.

Rejoignez notre communauté favorable

Le développement de jeu peut être frustrant de temps en temps. Vous risquez de manquer une boîte non cochée quelque part, ce qui vous laisse dans les bois pendant des heures. Vous pouvez également avoir besoin d'un soutien moral et d'idées de la part d'aspirants développeurs comme vous. Nous sommes là pour vous chaque fois que vous en avez besoin. Rejoignez notre communauté Discord, notre site Web et les réseaux sociaux répertoriés dans la description de profil.

Je vous souhaite le meilleur voeux,

Moustafa Nafei

Rencontrez votre enseignant·e

Teacher Profile Image

Pixel Helmet

Game Developer & Publisher

Enseignant·e

Pixel Helmet is a video game developer and publisher based in Denmark. We have recently released our first game Farmtale on the Steam platform.

We decided to get on Skillshare to create high-quality courses and share our knowledge with the game development community. Learning can be tedious at times and we aim to create a fun learning experience.

We offer to create courses within Modeling, Texturing, Unreal Engine, Blueprints, C++, Game Design, and much more. If you need any help during a course, please let us know through Skillshare or connect with us on Discord, Twitter, or LinkedIn.

Voir le profil complet

Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. 1.01 Introduction: Dans ce cours, nous allons apprendre à développer un système d' inventaire RPG multijoueur utilisant des plans dans le fichier Unreal Engine Nous allons partir de zéro et aborder fois la conception de l'interface utilisateur et la programmation de l'inventaire. Ce cours explique comment concevoir l'interface utilisateur de l'inventaire. Comment créer des catégories d'inventaire, comment créer des emplacements d'inventaire, comment récupérer des objets de l'inventaire, comment afficher l' objet auquel vous faites allusion dans votre inventaire à l' aide d'une icône et d'un texte. Comment supprimer des objets de l'inventaire pour les déplacer vers l' extérieur pour changer d'emplacement d'inventaire, deux objets et comment ajouter des effets sonores à l'inventaire. À la fin de ce cours, vous serez en mesure de créer en toute confiance votre propre système d'inventaire RPG multijoueur à implémenter dans vos projets de jeu actuels ou futurs. J'ai conçu ce cours pour tous ceux qui souhaitent créer un système d'inventaire pour leur jeu et Unreal Engine 5, en utilisant les meilleures pratiques de codage et un code optimisé. J'espère que vous vous joindrez à moi pour suivre ce cours. Et n'oubliez pas que je suis toujours là tout au long du cours pour vous aider. Et j'espère te revoir bientôt. 2. 1.02 Téléchargement du projet: Maintenant, allons-y et téléchargeons les supports de cours. Vous pouvez trouver les informations relatives aux coûts sur le site Web ou sur l'e-mail lorsque vous achetez le cours. Vérifiez donc le site Web ou l'e-mail. Ouvrons le matériel de cours. Et à l'intérieur, nous avons ce projet appelé RPG Inventory. Maintenant, en général, si vous avez suivi mes cours précédents, je préfère commencer par un projet Unreal Engine vide , car je veux tout vous apprendre à partir de zéro et vous permettre de développer des jeux à l'aise. Cependant, puisque nous faisons un inventaire, nous avons besoin d'un jeu qui fonctionne déjà. C'est juste un jeu très, très basique. Je n'ai pas fait grand-chose. Allons-y et faisons glisser ce dossier d'inventaire de RPG sur le bureau, car nous devons l'extraire. Il s'agit d'un dossier zip, nous devons donc en extraire le contenu. Cela va prendre du temps. Je vais attendre que ça se termine ici. Bien, maintenant que c'est fait, je peux double-cliquer dessus. Et à l'intérieur de ce dossier, vous pouvez voir qu'il s'agit du projet Unreal Engine sur lequel nous allons travailler. Maintenant, fermons-le et passons à Documents. Et au lieu de documents, nous avons ce que l'on appelle un dossier de projets irréels. Et c'est là que se trouvent tous vos projets Unreal Engine précédents. Si vous n'avez jamais réalisé projets auparavant, ce champ sera vide. Donc, dans Documents, Unreal Engine ou Unreal Projects, cliquons et faisons glisser notre dossier d'inventaire de RPG à l'intérieur. Et lorsque vous le faites, lorsque vous ouvrez le lanceur Epic Games et que vous accédez à la bibliothèque, vous pouvez voir apparaître le projet d' inventaire de RPG que nous venons d'extraire dans le dossier Unreal Projects. Maintenant, j'utilise Unreal Engine 5.1, 0.1. Mais si vous avez 5.1, 0,2 ou trois, ou 5.2, etc. Les nouvelles versions, ça n'a pas vraiment d'importance. Vous pouvez également suivre. Double-cliquez sur ce projet d' inventaire de RPG et ouvrons-le . C'est sur ce projet que nous allons travailler. Et avant de passer à la leçon suivante, jetons un coup d'œil à un bref aperçu d' Unreal Engine 5. 3. 1.03 Unreal Engine 5 Aperçu: Avant de commencer à développer l'inventaire, faisons un bref aperçu d'Unreal Engine 5. Si vous avez suivi mes cours précédents et que vous connaissez déjà Unreal Engine 5, vous pouvez simplement sauter cette leçon et passer à la suivante. Mais si vous êtes nouveau ici, jetons un coup d' œil à la façon dont Unreal Engine 5 est construit. C'est ici, au milieu, que se trouve la chose la plus importante. À mon avis, c' est la fenêtre d'affichage. Et dans la fenêtre d'affichage, vous pouvez voir à quoi ressemble le jeu. Donc, à l'intérieur de cette fenêtre, vous pouvez maintenir le bouton droit de la souris enfoncé et regarder vous pouvez maintenir le bouton droit de la souris enfoncé et regarder à quoi cela ressemble. C'est donc le niveau de construction simple pour cela. Pour cette leçon, vous pouvez également vous déplacer en maintenant bouton droit de la souris enfoncé et en cliquant sur W pour avancer, en cliquant sur S pour reculer, en cliquant sur D pour vous déplacer vers la droite et en cliquant sur a pour vous déplacer vers la gauche. Encore une fois, n'oubliez pas de maintenir le bouton droit de la souris enfoncé pendant que vous cliquez sur W, D, S et a pour vous déplacer. Et c'est ainsi que je navigue principalement à l'intérieur de la fenêtre d'affichage. Je maintiens simplement le bouton droit de la souris enfoncé et appuie sur ces touches pour me déplacer. Vous pouvez également maintenir le bouton droit de la souris enfoncé et cliquer sur e pour monter ou cliquer sur un signal pour descendre. Mais vous pouvez également maintenir le bouton gauche de la souris enfoncé. Et quand tu fais ça, tu peux te déplacer comme ça. Je ne l'utilise généralement pas et peut-être parfois sur mon ordinateur portable, mais généralement pas. Vous pouvez également maintenir simultanément le bouton gauche et le bouton droit de la souris enfoncés. Et tu peux aussi te déplacer comme ça. Enfin, vous pouvez zoomer et dézoomer à l'aide de la molette de défilement de votre souris. Donc zoom avant et zoom arrière. Vous pouvez également à nouveau maintenir le bouton droit de la souris enfoncé, cliquer sur W pour accéder à cet élément ou cliquer sur S pour vous éloigner de l'élément. Encore une fois, c'est principalement ainsi que je navigue dans la fenêtre d'affichage, mais vous pouvez simplement regarder le côté de ces niveaux. Apprenez à vous déplacer à l'intérieur d'ici et voyez ce qui vous convient le mieux. Au lieu de la fenêtre d'affichage, nous avons différents boutons. Donc, là-haut, ce n'est pas vraiment très important pour ce cours. Par exemple, nous avons la vue en perspective ce moment, nous sommes dans la vue en perspective. Vous pouvez voir le jeu depuis la vue de dessus. Donc, si vous effectuez un zoom arrière, un zoom avant et un zoom arrière à l'aide de la molette de votre souris, vous pouvez voir à quoi ressemble le jeu vu du haut. Encore une fois, vous pouvez simplement cliquer ici pour revenir au mode perspective. vraiment trop important pour ce cours, mais il est bon de savoir que nous avons ces boutons qui nous permettent de visualiser le jeu dans différents modes d' affichage. Par exemple, si je n'éclairais pas cette carte, elle serait très sombre. Et c'est pourquoi parfois je clique ici et je passe en mode éteint. Maintenant, je peux voir mon niveau même si je n'ai pas d'éclairage. Et quand j'allume mon jeu, je clique ici et je reviens au mode live. Très, très important. Nous avons différents outils ici. Le premier est donc l'outil de sélection. En cliquant dessus, vous pouvez sélectionner différents éléments à l'intérieur du port d'affichage. Ici, à côté, nous avons l'outil Move qui clique dessus. Désormais, lorsque vous cliquez sur un élément, vous pouvez voir ces points de pivot. Le rouge est l'axe X. Et si vous cliquez dessus, vous pouvez déplacer cet élément en abscisse. Le vert correspond à l'axe Y et le bleu à l'axe Z. Ce sont les points de pivot. Vous pouvez déplacer les éléments lorsque outil de déplacement est sélectionné. Vous pouvez également les déplacer dans deux directions en maintenant ici près du milieu. Et ceci, et cette case ici, déplaçant dans l'axe à la fois, si je clique simplement sur Control Z pour annuler mon déplacement ici, et juste pour revenir en arrière, nous avons également l' outil de rotation qui clique dessus. Vous pouvez faire pivoter un élément de trois degrés différents de cette manière. Vous pouvez également les redimensionner en cliquant sur l'outil de mise à l'échelle. Et vous pouvez le redimensionner. Je vais cliquer, cliquer sur Control Z pour que tout soit à nouveau visible, pour que tout soit clair. Vous pouvez le redimensionner sur ces trois axes différents. Maintenant, si vous souhaitez le redimensionner de manière uniforme, vous pouvez cliquer sur cette case blanche au milieu. Et lorsque vous redimensionnez, cela se fera de manière uniforme. Ok, cliquez à nouveau sur Control Z. est maintenant très important de savoir que nous avons des raccourcis pour ces outils, car cela prendrait beaucoup de temps si vous deviez cliquer ici, déplacer cet élément, cliquer à nouveau ici pour le faire pivoter, etc. Donc, si vous cliquez sur Q sur votre clavier, vous disposez de l'outil de sélection. Vous cliquez sur W, vous avez l'outil Move. Si vous cliquez sur E, vous avez l'outil de rotation. Et si vous cliquez sur la zone, vous avez l'outil de mise à l'échelle. Par exemple, pour ce journal, je peux cliquer sur W pour le déplacer. Je peux cliquer sur E pour le faire pivoter. Et peut-être que je le veux comme ça, comme ici. Et je peux cliquer sur W pour le déplacer vers le haut, comme sur R2, peut-être l'agrandir comme ça, déplacer vers le haut, etc. Vous pouvez donc constater que c'est beaucoup plus rapide de travailler de cette façon, au lieu de simplement cliquer ici tout le temps pour travailler sur Control Z. Pour y remédier, nous avons également des outils de capture. Donc, ici, vous pouvez voir quand je déplace mon objet, si je déplace simplement ce stylo, par exemple, vous pouvez voir qu'il s' accroche à une grille. Et c'est parce que vous l' avez activé ici. Donc, si vous cliquez dessus et que vous le déplacez, vous pouvez voir qu'il se déplace en douceur. Et si je clique à nouveau dessus, vous pouvez voir maintenant qu'il s'agit à nouveau de clichés. Vous pouvez également cliquer sur ce numéro et augmenter le nombre de prises de vue. Maintenant, vous pouvez voir que lorsque je le fais glisser, il s'accroche sur une grille beaucoup plus grande et vous pouvez la réduire à nouveau si vous le souhaitez. Il s'agit donc des outils de capture ou du mouvement, de la l'échelle ou la rotation, ainsi que de la mise à l'échelle. Vous pouvez donc voir si j'accède à mon outil de rotation en cliquant sur E du clavier. Je peux le faire pivoter et il se brise tous les dix degrés. Je peux cliquer dessus ici pour le désactiver. Et maintenant je peux, je peux le faire pivoter doucement comme ça. Et en cliquant à nouveau sur Control Z. Voici donc les outils d'accrochage pour l'outil de déplacement, l'outil de rotation et l'outil de mise à l'échelle. La dernière chose que nous avons est la vitesse de la caméra, et c'est la vitesse de cette caméra en ce moment . Dans cette fenêtre d'affichage, vous pouvez cliquer dessus et diminuer la vitesse. Et maintenant, vous pouvez voir que c'est très lent. Ceci est généralement utilisé lorsque vous souhaitez vous concentrer sur très petits objets à l'intérieur du niveau afin que la caméra ne se déplace pas trop rapidement. Si vous avez un niveau élevé, que vous souhaitez vous déplacer, vous pouvez augmenter la vitesse de la caméra. Et maintenant, vous pouvez voir que je progresse beaucoup plus vite dans mon niveau. Je vais le remettre à la vitesse de caméra de quatre. Ici, nous avons la barre d'outils. Ce n'est pas vraiment très important pour le moment. Mais le plus important, c'est que nous pouvons cliquer sur ce bouton Jouer pour jouer à notre jeu, ou en cliquant sur jouer ici, vous pouvez voir que je joue maintenant à mon jeu. Je peux me déplacer avec les touches W, S, a et D. Je peux donc me déplacer et regarder autour de moi avec ma souris. C'est la chose la plus importante que vous devez savoir en ce moment, ici. En cliquant sur Escape pour arrêter le jeu et en cliquant sur ces trois boutons, vous pouvez choisir la façon dont vous souhaitez jouer. Donc, généralement, cela commence par cette fenêtre sélectionnée. Donc, si je joue à mon jeu comme ça, je jouais dans la fenêtre d'affichage. Ce que j'aime en multijoueur. J'aime jouer dans la nouvelle fenêtre de l'éditeur parce que deux fenêtres sont ouvertes pour le mode multijoueur, donc j'aime bien le faire de cette façon. Fermons-le pour le moment. Et le mode multijoueur se trouve ici. Nous allons donc nous occuper de cela plus tard dans les leçons suivantes. Parfois, votre moteur peut avoir une mauvaise apparence et vous pouvez essayer de le reprendre. Regardez ici, dans les paramètres, vous avez ce que l' on appelle les paramètres d' évolutivité des moteurs. heure actuelle, les miens sont prêts à être épiques parce que mon ordinateur est rapide. Mais si vous avez un ordinateur plus lent, vous pouvez le remplacer par une qualité faible ou moyenne, etc. donc très agréable de savoir que c'est là, à droite, que nous avons l'outliner et que l'outliner est simplement composé d'objets que vous avez dans vos niveaux. Donc, tous ces objets que vous voyez ici se trouvent à l'intérieur de ce niveau actuel. Et si je sélectionne par exemple ce tabouret ici, si je clique dessus, vous pouvez voir qu'il le sélectionne également ici dans le plan. Donc, quoi que vous choisissiez dans le niveau, vous pouvez le voir ici dans l'outliner. Vous pouvez également sélectionner des éléments en cliquant simplement dessus ici. Maintenant, vous pouvez voir que lorsque je clique dessus, cela les sélectionne également dans mon niveau. Maintenant, cela est utile lorsque vous souhaitez trouver quelque chose de spécifique, par exemple, vous pouvez effectuer une recherche ici. Je veux trouver mon tabouret, par exemple, et c'est celui-ci en bas. Pour cet outil, je l'ai trouvé ici, je peux cliquer dessus. Et c'est celui-là. Lorsque vous avez un niveau très élevé et que vous ne trouvez pas d'objets, vous pouvez les rechercher ici. Disons que vous ne saviez pas où c'était. Comme si vous aviez sélectionné un très grand niveau et que vous ne pouviez pas vraiment le voir. Vous pouvez cliquer sur F sur votre clavier et vous y serez automatiquement redirigé. De plus, j'ai oublié de dire que si vous souhaitez doubler ou dupliquer cet élément, vous pouvez maintenir la touche Alt enfoncée sur votre clavier, puis le faire glisser ici. Donc, en maintenant la touche Alt enfoncée sur le clavier, en faisant glisser la souris, cela copiera l'élément. C'est donc parfois très utile lorsque vous souhaitez concevoir le niveau. Vous n'avez donc pas à faire glisser cet élément encore et encore, en cliquant dessus en cliquant sur Supprimer pour les Je vais cliquer sur le X en haut pour pouvoir revoir tous les éléments. Si vous souhaitez organiser vos éléments ici dans le plan, vous pouvez toujours cliquer sur cette icône de dossier. Cela créera des dossiers et vous pouvez simplement cliquer et glisser-déposer ces éléments à l'intérieur des dossiers. Et vous pouvez organiser votre sac de voyage. Je vais juste le faire glisser à nouveau et supprimer celui-ci ici. Ensuite, nous avons le panneau Détails. Et les panneaux de détails affichent simplement les détails de l' élément sélectionné dans la fenêtre d'affichage. Donc, si je sélectionne ce stylo ici, vous pouvez voir, je peux voir différents détails à propos de ce stylo. Je peux voir où il se trouve et le monde. Je peux voir sa rotation, son échelle. Je peux voir quel maillage statique il utilise. Une sensation, par exemple, cliquez sur cette icône ici. Vous pouvez le trouver dans le navigateur de contenu. Et je vois bien que c'est celui-ci. Je peux voir quels matériaux il utilise. Informations sur la physique, la collision, etc. Et c'est différent pour chaque article que vous sélectionnez. Donc, si je sélectionne celui-ci, je peux afficher différents détails sur cet article, différents détails sur cet article, etc. donc très important, le panneau de détails est quelque chose que vous utilisez tout le temps dans le moteur. Si je clique dessus, hé, par exemple, peux définir l'emplacement en je peux définir l'emplacement en cliquant et en le faisant glisser ici. Donc, au lieu d'utiliser l'outil Move comme celui-ci, je peux simplement cliquer et faire glisser sur ces cases si vous le souhaitez. Parfois, vous voulez simplement vous déplacer comme ça, et parfois vous voulez des chiffres spécifiques. Vous pouvez donc simplement cliquer ici et écrire, par exemple , 1 400, la position X. Et vous pouvez voir que c' est passé ici. Et c'est vrai, je pense que c'est -1 400. Ce sera ici. Donc -1 400. Vous pouvez voir qu'il est retourné ici. Maintenant, si vous avez des chiffres spécifiques à écrire, vous pouvez les écrire ici au lieu d'essayer de les regarder ici. Enfin, nous avons le Content Browser. Donc, généralement, cela n'est pas disponible ou cela ne s'affiche pas lorsque vous ouvrez Unreal Engine 5 pour la première fois. Je peux donc cliquer avec le bouton droit et nous pouvons fermer. Et voici à quoi cela ressemble généralement lorsque vous ouvrez Unreal Engine 5 Pour la première fois, vous avez le contenu Draw au lieu du navigateur de contenu. En cliquant dessus, vous pouvez voir même onglet que celui que nous avons vu auparavant, mais la ligne de contenu disparaît chaque fois que vous cliquez dans cette fenêtre d'affichage. Donc, en cliquant sur le contenu ROA, si je veux cliquer sur quelque chose ici, vous pouvez le voir disparaître et je trouve cela un peu ennuyeux car je suis habituée à Unreal Engine 4, où il fonctionne tout le temps. Vous pouvez donc cliquer sur ce contenu ROA, puis sur Duck in Layout. Et ça va rester allumé tout le temps. Et très, très simple. Le navigateur de contenu contient uniquement tous les fichiers dont vous disposez pour le jeu. Donc, par exemple, pour les actifs, sont en fait les dossiers que j'ai créés pour atteindre ce niveau. Donc, par exemple, ici, dans les objets, nous allons l'utiliser plus tard pour créer des objets pour l'inventaire. Et vous pouvez simplement cliquer dessus et le faire glisser dans le niveau. Et vous pouvez voir à quoi ils ressemblent. Annulé, double-cliquez dessus et affichez-les également dans cette visionneuse. Voici donc tous les fichiers que vous avez, ce sont toutes les animations. Allons-y et supprimons tous ceux qui créent des dossiers à l'intérieur, nous pouvons cliquer avec le bouton droit de la souris et créer un nouveau dossier. Vous pouvez également modifier la couleur d'un dossier en cliquant dessus, en cliquant bouton droit de la souris et en sélectionnant Définir la couleur. C'est très cool lorsque vous souhaitez organiser vos fichiers et les voir rapidement. Vous pouvez simplement leur donner des couleurs. Je vais juste supprimer celui-ci pour le moment. Pour ajouter des éléments dans le navigateur de contenu, vous pouvez cliquer ici avec le bouton droit de la souris ou cliquer sur le bouton Ajouter. D'habitude, je clique, je clique dessus avec le bouton droit de la souris, et vous pouvez ajouter des plans. Nous allons beaucoup le faire pour programmer notre inventaire. Nous utiliserons également l'interface utilisateur pour créer l'interface utilisateur de l'inventaire. Et vous avez, par exemple , une animation, vous pouvez créer un nouveau niveau, lire un nouveau dossier. Ici, vous pouvez voir que nous pouvons créer beaucoup de choses et cela semble bouleversant. Mais vous n'utiliserez probablement pas beaucoup de ces outils au départ. Vous n'avez donc pas vraiment besoin de tout savoir à l'intérieur. Concentrez-vous sur ce qui est très important. Dans ce cours, nous nous concentrons donc uniquement sur la création d'un inventaire pour le moment. Lors de la création de l'inventaire, nous allons utiliser un grand nombre de ces éléments. Nous allons utiliser de nombreux nœuds Blueprints, bleus et Blueprint. Et nous allons utiliser l'interface utilisateur. Nous allons utiliser les sons pour créer des effets sonores et ainsi de suite. Donc, dans ce cours, vous allez apprendre beaucoup de ces choses ici. Alors ne vous inquiétez pas pour le moment et jetez un coup d' œil ici. Dans ce moteur, vous pouvez simplement vous déplacer, cliquer sur des objets, les déplacer. Pas vraiment trop important si vous détruisez des objets à l'intérieur de ce niveau. Et parfois, lorsqu'il vous indique que vous avez un éclairage à reconstruire, vous pouvez cliquer dessus, construire et construire tous les niveaux, et cela créera automatiquement tout l'éclairage pour vous. Maintenant, cela peut prendre un certain temps si votre ordinateur est très lent, mais vous pouvez voir la progression ici. Et quand il aura fini de construire l'éclairage, vous pourrez l'éteindre. Et allons-y et cliquez sur Fichier et tout enregistrer. Et passons à la leçon suivante. 4. 1.04 Ce que le projet contient déjà: Avant de commencer, examinons ce que ce projet contient déjà. Maintenant, j'ai conçu ce jeu rapide pour vous. Il ne contient pas grand-chose, mais nous avions besoin de quelque chose pour commencer à programmer l'inventaire. Donc, ici, dans le dossier des ressources, j'ai quelques éléments. Nous utiliserons ces objets pour créer des objets que nous pouvons perdre dans notre inventaire et les placer dans notre inventaire. Maintenant, supprimons-le pour le moment. Je vais vous apprendre à fabriquer des objets et à leur apparence. Et en ce qui concerne le joueur, nous avons les différentes animations et vous pouvez voir si vous cliquez sur jouer pour le jeu, et nous avons déjà un ensemble de plans d' animation. Et pour ce qui est du terrain, je n'ai que les textures pour ce terrain. J'ai également inclus des effets sonores que nous pouvons utiliser lorsque nous faisons allusion à des objets, ouvrons l'inventaire, etc. Et dans les plans, c' est très basique. J'ai créé un mode de jeu. Le mode est vide et cette vue s' affiche généralement si vous n'avez rien dans la classe Blueprint. Vous devez donc cliquer ici pour ouvrir l'éditeur de plans complet. Et voici à quoi ça ressemble. Vide, je n'ai vraiment rien touché. C'est juste, mais la manette du joueur et la classe de pion par défaut et l'ouverture de la manette du joueur sont vides également. Nous avons le joueur, le joueur ici au lieu du joueur. Très basique. Je viens d'ajouter le nouveau système de mouvements pour ce joueur. Il suffit donc de se déplacer d' avant en arrière et de regarder autour de soi avec notre souris. Il ne se passe donc rien de fou ici. Ensuite, nous avons le plan d' animation pour l'animation destinée au joueur. Et encore une fois, nous avons ici le mouvement qui permet de marcher en avant, en arrière, à gauche et à droite. Et nous avons les cartes. Voici la carte sur laquelle nous nous trouvons actuellement. Nous avons quelques articles du Marketplace. J'utilise ce fantastique pack de village. Vous pouvez le trouver gratuitement sur le marché. Et ceci est juste utilisé pour concevoir ce niveau. Nous avons le ciel des marchandises, c' est-à-dire ce type là-haut. J'ai juste ajouté du brouillard pour que nous ne puissions pas vraiment le voir juste pour rendre ce niveau un peu plus intéressant. Et puis il y a ces personnages. Vous pouvez également les trouver sur le marché. Des trucs très, très cool. Je les utilise aussi parfois pour prototyper certains de mes autres jeux. Donc, si je crée un jeu de tir et ainsi de suite, supprimons celui-ci pour le moment. C'est donc ce que j' ai à l'intérieur. Et le dernier est l'interface utilisateur. Nous allons nous en servir pour concevoir notre inventaire. Nous avons quelques boutons ici. Au fait, si vous avez une vue très large comme celle-ci, j'ai une fourchette, une petite, donc elle apparaît très grande comme celle-ci. Vous pouvez cliquer sur Paramètres et taille des vignettes. Je peux le faire petit, par exemple, et il ressemblera à ceci. Je vais juste utiliser le support que vous puissiez mieux le voir pour ce cours. J'ai également inclus une police ici, afin que vous puissiez l'utiliser pour l'interface utilisateur. J'ai quelques icônes que nous pouvons utiliser lorsque nous éluons la banane, par exemple nous pouvons ajouter cette icône à l'inventaire. Et puis nous avons les images, qui sont essentiellement l'emplacement d'inventaire. Voici donc tous les articles. Jeu très basique, on peut juste se balader, c'est la seule chose que nous pouvons faire pour le moment. Et regardez autour de vous. Et vous pouvez imaginer si vous avez acheté ce jeu d'un ami ou de quelqu'un que vous avez trouvé sur Reddit ou ailleurs. Et il vous demande simplement de mettre un inventaire dans son jeu. C'est donc ce que nous allons faire. 5. 2.01 Introduction aux plans de widget: Avant de commencer à concevoir l'interface utilisateur, examinons ce qu'est un plan de widget. Passons donc au dossier de l'interface utilisateur. Cliquez ici avec le bouton droit de la souris. Et passons à l'interface utilisateur. Il s'agit de tous les éléments de l'interface utilisateur. Ici, nous pouvons sélectionner le plan du widget. Créons-en un ici. Sélectionnez les widgets utilisateur, et allez-y, appelez-les Je l'appelle généralement wb ou voudriez-vous un plan comme préfixe ? Et puis appelons-la principale. Donc, l'interface utilisateur principale, celle-ci, sera affichée comme notre interface utilisateur principale. Plus tard. Double-cliquez dessus. Et voici à quoi ressemble un plan de widget. Donc, Widget Blueprint, vous pouvez concevoir l'interface utilisateur ici. Vous avez un concepteur , puis vous avez un graphique. Ainsi, dans le concepteur, vous concevez l'interface utilisateur. Et dans le graphique, vous programmez les fonctionnalités de l'interface utilisateur que vous avez conçue. À l'intérieur, vous pouvez voir que vous avez une pastille et qu'à la place de la palette, vous pouvez ajouter différentes choses à votre plan, par exemple vous pouvez ajouter un bouton. Vous pouvez soit cliquer dessus , soit le faire glisser ici. heure actuelle, vous pouvez voir que le bouton est énorme, et c'est parce que je vais cliquer sur Ensembles de commandes. Et c'est parce que nous ajoutons généralement une toile pour commencer. Donc, si vous recherchez Canvas et que nous ajoutons celui-ci, avant d'ajouter quoi que ce soit de Canvas, vous pouvez soit le faire glisser à l'intérieur d'ici soit cliquer et le glisser-déposer ici. Donc, si je supprime simplement celui-ci ici, je peux le cliquer et le faire glisser ici à la place. Vous pouvez donc les faire glisser ici, ici. Revenons donc en arrière et prenons le bouton, par exemple vous pouvez l'ajouter au canevas, ou vous pouvez ajouter le bouton à nouveau comme ceci, où vous le faites glisser vers le bas dans la hiérarchie, quelque chose comme ceci. Et vous pouvez voir qu'il a été ajouté ici. Et vous pouvez toujours cliquer dessus et faire glisser sur le canevas. Vous pouvez également modifier la position comme avant que nous n'ayons un panneau de détails. Souvenez-vous que je vous l'ai déjà dit, si vous cliquez sur des éléments dans votre fenêtre d'affichage, vous avez un panneau de détails. Vous l'avez également dans le Widget Blueprint. Vous avez donc des détails sur ce bouton. Vous pouvez voir la position. Vous pouvez également modifier la position ici. Ou tu peux le faire glisser. Si vous voulez le faire glisser, vous voulez peut-être mettre quelque chose, un numéro précis, par exemple, nous pouvons écrire 1800 et c'est peut-être ce que nous aimons. Vous pouvez également cliquer dessus et le redimensionner. Encore une fois. Vous pouvez également le redimensionner ici si vous le souhaitez. Tous les détails du bouton. Encore une fois, si vous ajoutez simplement d'autres éléments, vous pouvez voir qu'ils ont des détails différents. Donc, par exemple, si je prends le texte ici, vous pouvez voir dans le texte que je peux modifier la couleur du texte. Je peux modifier la police. Alors, quelle police vais-je utiliser ? J'ai inclus une police pour vous. N'oubliez pas que dans le dossier de l'interface utilisateur, polices, j'ai inclus cette police pour vous. Vous pouvez donc également la sélectionner ici dans la famille de polices. Ici, nous avons une animation de l'interface utilisateur. Nous pourrions nous y intéresser. Je ne suis pas vraiment sûr, mais ce n'est pas très important pour le moment. Je vais donc cliquer ici avec le bouton droit de la souris et cliquer sur Fermer car nous n'en avons pas vraiment besoin. Et la dernière chose qui est importante ici c'est que vous pouvez cliquer sur compiler. Il dit que tout ce qui est sale doit être recompilé. Et cela ne fait que vérifier si vous avez des erreurs dans votre code. Et pour l'instant, nous n'avons pas vraiment de code, donc tout va être nettoyé ici. Mais si nous le faisions, cela vous avertirait et vous indiquerait que quelque chose ne va pas. Vous pouvez donc essayer de jouer ici et essayer de prendre une image, par exemple plaçant ici, vous pouvez la redimensionner. Vous pouvez voir quels détails vous avez pour une image, par exemple le pinceau. Vous pouvez entendre sur l'image, vous pouvez modifier l'image, par exemple ce burger ici. Et maintenant, vous pouvez voir que vous pouvez en modifier la taille. Et vous pouvez également en modifier la taille ici. En cliquant sur ces petites flèches, vous souhaitez simplement rétablir la valeur par défaut. Alors en cliquant dessus. Et la valeur par défaut est 15150. Et vous pouvez voir que lorsque je change la taille ici, cela n'est pas vraiment affecté. Et c'est parce que vous redimensionnez en fait l'ensemble de l'image comme ceci. Vous devez cliquer sur Taille du contenu si vous souhaitez que cela prenne effet sur celui-ci ici. Donc, si l'on considère notre réinitialisation à la valeur par défaut, il s' agit de la taille par pour ce burger. Oui, et c'est tout. C'est très, très simple. Ainsi, le concepteur concevra l'interface utilisateur dans la prochaine leçon. Et dans le graphique, nous codons les fonctionnalités de l'interface utilisateur. Mais pour l'instant, concentrons-nous sur la conception de l'interface utilisateur. Donc, avant de terminer cette leçon, je vais supprimer toutes ces choses, y compris le Canvas. Compilons, sauvegardons, sauvegardons tout ici et fermons-le. Et passons à la leçon suivante. 6. 2.02 Créer l'interface utilisateur principale: Bien, nous sommes maintenant prêts à concevoir l'interface utilisateur principale si vous n'avez pas suivi la leçon précédente. Allez-y. Dans le dossier UI, vous pouvez cliquer avec le bouton droit sur l'interface utilisateur et créer un plan de widget. Et voici le plan du widget pour l'interface utilisateur principale que nous avons déjà créé. Double-cliquez dessus. Et avant de commencer, je veux vous montrer ce que nous allons faire. C'est donc toujours agréable de voir ce que nous allons créer avant que vous ne le fassiez. Nous pouvons donc le visualiser. Ici, dans le menu I. Nous n'aurons que ce bouton. Il s'agit du bouton d'inventaire sur lequel vous pouvez cliquer pour ouvrir l'inventaire. C'est très, très simple. C'est ce que nous essayons de faire. Revenons donc à notre point de vue ici. Et comme je vous l'ai déjà dit, nous devons ajouter un Canvas avant d'ajouter quoi que ce soit. Donc, ici, si vous recherchez un panneau de toile, vous pouvez le faire glisser dans la hiérarchie ci-dessous. Et maintenant, nous avons ajouté le panneau de toile pour le bouton, pour le bouton d'inventaire. De toute évidence, nous avons besoin de l' interface utilisateur du bouton ici pour pouvoir le faire glisser ici. Mais comme vous l'avez déjà vu, nous avons besoin d'une icône en haut du bouton. C'est pourquoi nous utilisons ce que l'on appelle une superposition. Si vous recherchez Overlay, vous pouvez également les trouver ici. Vous pouvez donc cliquer sur ces flèches pour trouver des éléments que vous pouvez ajouter à votre toile. C'est donc celle que nous voulons ajouter en ce moment , appelée overlay, ou vous pouvez la rechercher ici. Donc, si vous ne connaissez pas toutes ces choses, cela peut être difficile à comprendre, mais faites-le une, deux ou trois fois. Et c'est très facile parce que vous le faites tout le temps. Donc, comme nous avons besoin d'un bouton et d'une icône au-dessus, nous avons besoin de ce que l' on appelle une superposition. Alors, permettez-moi de supprimer à nouveau ce bouton. Et je vais faire glisser cette superposition sur le canevas. Et généralement, ils sont additionnés ici. Et pour celui-ci maintenant, ajoutons un bouton. Ensuite, nous ajoutons une image. Il s'agit de l'icône qui se trouvera en haut du bouton. Maintenant, laissez-moi le faire glisser ici, juste pour que nous puissions voir à quoi il ressemble. Alors maintenant, cliquons sur le bouton et concevons-le. Si tu veux. Vous pouvez désactiver l'image pour le moment. Vous pouvez donc cliquer sur cet œil ici. Cela ne fait que mettre en valeur l'image pour le moment. Cliquez sur le bouton et le style ici, changeons son apparence. la fin, j'ai inclus pour vous les boutons du dossier des boutons de l' interface utilisateur. J'ai inclus pour vous des boutons que nous pouvons utiliser. Dans la normalité. Allons-y et changeons l'image pour ce bouton, racine carrée bleue. Pour la taille, nous pouvons cliquer sur cette flèche pour la redimensionner selon la normale. À l'heure actuelle, vous pouvez voir que je suis zoomé plus sept. Il est donc très important de le savoir. Je zoome plus sept, donc ce n'est pas à ça que ça ressemblera quand je jouerai au jeu. Ça va ressembler à ça. Donc, si je dézoome, voici à quoi ça va ressembler. Donc en tête-à-tête ici. Maintenant, généralement, lorsque vous créez un bouton, la couleur est grise pour une raison quelconque. Je ne sais pas pourquoi. Cliquez donc sur cette teinte ici, et changeons-la en blanc. La vraie couleur apparaît donc ici. Et au lieu de faire une boîte ronde autour des dollars, donnez-vous une étrange touche votre bouton et je ne veux pas ça. Je veux y aller, cliquer plutôt sur dollars. Et vous pouvez voir que lorsque vous redimensionnez l'image, cela semble très étrange. Mais si vous utilisez un cadre et que vous définissez la marge sur 0,5, vous pouvez réellement la redimensionner sans perdre les détails de ce bouton. Vous pouvez donc voir que je peux le redimensionner. Et ça a l'air bien. Si vous n'avez pas utilisé la marge de 0,5, cela ressemblera à ceci. Donc, marge 0,5 et ça a l'air bien. OK, donc en cliquant dessus ici, passons au Hubbard et sélectionnons le bouton, carré bleu survolé. Et pour celui-ci, en fait, vous pouvez faire quelque chose très rapidement. Je l'utilise lorsque je développe mon jeu. Je peux déplacer et cliquer avec le bouton droit ici, ou vous pouvez simplement cliquer avec le bouton droit de la souris et cliquer sur Copier. D'habitude, j'appuie simplement sur Shift et sur le bouton droit de la souris. Donc, déplacez le bouton droit de la souris pour copier ceci. Et vous pouvez déplacer le bouton gauche de la souris pour le coller en haut d'ici. Et en plus de cela, vous pouvez voir que c'est très rapide. Vous avez donc toutes les informations. Et puis n'oubliez pas de changer ces deux. Ici. Il y en a 12 autres. Encore une fois, pensez à modifier la taille ici. Je pense que pour celui-ci, je vais utiliser quelque chose comme 90. Celui-ci est juste par défaut, donc juste par défaut 68 et celui-ci 190. Je vais de nouveau cliquer avec le bouton droit de la souris. Je vais maintenir la touche Shift enfoncée et cliquer à nouveau avec le bouton droit de la souris ici pour la copier, puis maintenir la touche Maj enfoncée et cliquer avec le bouton gauche de la souris pour la coller au-dessus de cette taille d'image. Maintenant, vous vous demandez peut-être pourquoi ne pas la redimensionner ici dans le x. Et c'est parce qu' elle sera redimensionnée automatiquement lorsque nous ajouterons l'image. Pour l'instant, compilons et laissons ce bouton. Passons à l'image. Cliquez donc sur l'image, cliquez sur cette icône pour afficher l'image. Et pour l'image, nous devons trouver l'icône du sac à dos. C'est donc ici, ou vous pouvez le rechercher ici en sélectionnant l'icône du sac à dos. Et quand j'ai conçu l'interface utilisateur, j'ai constaté que 100 x 100 était une taille idéale pour cela. Je vais juste changer celui-ci à 100 x 100 et à la taille de l'image. Vous pouvez voir que si je clique sur ce bouton par défaut, la valeur par défaut est 150. Je vais le réduire à 100 sur 100. Et au lieu de créer cette superposition comme ceci, au lieu de la redimensionner comme ça, je vais cliquer sur Size to content. Cette superposition est donc désormais dimensionnée en fonction du contenu qu'elle contient. Donc, ce bouton ici, au lieu de l'avoir ici dans ce coin, je vais l'aligner horizontalement. Il va donc remplir toute la superposition. Ce bouton remplit maintenant toute la superposition. C'est ce que cela signifie. Et je vais l'aligner ici verticalement en bas. C'est donc en bas de l'image. Je vais juste l'aligner au centre du bouton. Cliquez sur l' image, cliquez sur l'alignement central pour la verticale et l'horizontale. C'est donc juste au milieu de cette superposition. Nous devons maintenant pousser cette image vers le haut. Vous pouvez soit utiliser la traduction ici dans la transformation, soit je vais simplement utiliser le rembourrage ici. Donc, pour le rembourrage en bas, cela signifie que vous poussez l' image de bas en haut. Je vais donc le pousser de 15 pixels. Et vous pouvez voir que je mets l'image ici et elle est superbe en ce moment. Je vais le pousser du 12e vers la gauche et du 12e vers la droite. Nous lui donnons donc plus d'espace ici pour ce bouton, donc il est beaucoup plus beau maintenant. Maintenant, la dernière chose que nous devons faire, donc au lieu d'avoir ce bouton au milieu, nous pouvons le placer ici. Donc, ce que vous pouvez faire ici, c'est voir si vous réglez la position sur 00 ici, vous voyez qu'elle s' enclenche dans ce coin en haut, mais je veux qu'elle soit ici en bas sur mon écran. Je ne veux pas que mes boutons apparaissent ici. Je veux que mon bouton soit en bas. Ce que vous pouvez faire ici, c'est modifier le point d'ancrage. Donc, en cliquant sur votre superposition, vous obtenez ce que l' on appelle des ancres. En cliquant ici. Et vous pouvez changer le point d'ancrage en bas. Le point d'ancrage signifie que, disons que vous avez fait glisser ce bouton ici comme ceci, et qu'il semble correct. Et vous ne modifiez pas le point d'ancrage. Cela signifie donc que votre fenêtre de jeu diminue. Alors, prenons ça ici. Et disons que le bouton est là. Si votre fenêtre de jeu diminue ainsi, si quelqu'un redimensionne votre jeu, le bouton volera vers le haut jusqu'à ce coin. Donc, si votre écran est très petit comme celui-ci, le bouton est en fait en haut et non en bas. Cela ne semble donc pas correct. Et c'est ce que signifie l'ancrage. Vous indiquez simplement au jeu où se trouve initialement votre bouton. Je vais l'ancrer ici au lieu de mettre une position sur 00. Vous pouvez voir qu'il est maintenant hors de l'écran. Et pour le faire entrer dans l'écran, vous devez utiliser ce que l' on appelle l'alignement. Et vous pouvez voir que c'est zéro ou un. Vous pouvez voir que si j'en écris un ici, 0,5, c'est le milieu. C'est le x, c'est le y. Et 0,2 et ainsi de suite. Vous pouvez donc voir que si j'en écris un, je le mets ici. Et encore une fois, pour aligner le y, vous devez également le placer à un pour le pousser à l'intérieur de cette fenêtre afin de pouvoir jouer avec l'alignement. Nous utilisons généralement 0,5 pour le placer au milieu ou en un. Nous l'avons mis ici comme ça. OK, donc au lieu de l' avoir directement sur l'écran, je voudrais lui donner un peu plus d'espace sur les sites. Je vais donc cliquer sur la position de superposition pour le x -35 et sur la position pour le y -35. Maintenant, nous avons un peu plus d' espace sur le côté, donc les écrous se fixent directement à l'écran. Très bien, compilons. Et la dernière chose que vous puissiez faire, c'est de bien vous entraîner. Vous pouvez voir que si vous accédez au graphique, vous pouvez voir qu'il s'appelle bouton et image. Ce sont les variables qui ont été créées parce que vous avez conçu cette interface utilisateur ici. Et vous pouvez voir que ce sont leurs noms. Ils apparaissent également sous forme de variables dans votre code. Cependant, c'est une très mauvaise pratique de les laisser ainsi car si vous avez plusieurs boutons comme celui-ci, par exemple, ne savez pas vraiment lequel est lequel. Par exemple, si vous avez un bouton pour l'inventaire, un bouton pour vos compétences, vos statistiques , etc., vous ne savez pas vraiment ce que c'est s' ils s'appellent ainsi . Permettez-moi donc de tous les supprimer. Au fait, si vous voulez savoir comment je l'ai dupliqué, vous pouvez simplement cliquer avec le bouton droit de la souris et cliquer sur Dupliquer ou cliquer sur Control D. OK, changeons le nom ici. Vous pouvez cliquer sur F2 votre clavier en cliquant sur ce joli F2. Et je vais l' appeler btn pour bouton. Et appelons-le inventaire. Idem pour l' image, l'inventaire des images et la superposition. Optez pour Overlay, et appelez-le inventaire. Bon, maintenant nous en avons terminé avec l'interface utilisateur principale. Je vais aller un peu plus vite sur les autres modèles de widgets. Mais maintenant, vous connaissez les bases et vous savez comment créer quelque chose de très simple. Sauvegardons tout, fermons cette page et passons à la leçon suivante. 7. 2.03 Créer les boutons de catégorie d'inventaire: Concevons maintenant le bouton de catégorie d'inventaire ici dans le dossier de l'interface utilisateur. Encore une fois, cliquez avec le bouton droit sur l'interface utilisateur. Créez un nouveau plan de widget. Utilisez ou sélectionnez le widget utilisateur. Et appelons cela une catégorie d'inventaire, comme ceci. Maintenant, entrons dans le vif du sujet. Et comme avant, oubliez pas que nous devons ajouter un canevas avant de faire quoi que ce soit à l'intérieur. Faisons donc glisser ce panneau de toile et modifions-le. Et maintenant, nous pouvons commencer à concevoir la catégorie. Donc, pour la catégorie, encore une fois, je veux vous montrer ce que nous allons faire. C'est ce que nous allons faire. Nous allons concevoir ce bouton ici. Cette icône sera modifiée en fonction de la catégorie que nous avons, mais voici à quoi elle ressemble. Très, très simple. Encore une fois, revenons ici. Ajoutons une superposition. Tout comme avant, nous avons besoin d' un bouton surmonté d'une icône. Et je vais juste ajouter une superposition à l'intérieur de celui-ci. Et je vais vous montrer pourquoi dans un instant. C'est un peu confus en ce moment. Cherchons donc à nouveau le bouton et ajoutons-le à cette superposition ici. Et cherchons l'image et ajoutons-la à la superposition. Comme avant. Le truc en plus, c'est que nous avons juste cette superposition ici et je vais vous montrer pourquoi. Donc, pour les boutons de catégorie, nous n'avons pas vraiment besoin de l'ensemble du canevas, comme nous l'avons fait pour l'interface utilisateur principale. Souvenez-vous donc que pour le menu, j'utilisais l' ensemble de ce Canvas et que nous ajoutons ce bouton ici, qui se trouve dans le menu de lecture ou dans l'interface utilisateur principale. Vous pouvez donc imaginer si vous jouiez au jeu, le bouton se trouve ici, mais dans quelle catégorie nous n'avons pas vraiment besoin de l'ensemble du Canvas. Nous pouvons donc cliquer sur le canevas ici, ou simplement monter ici et remplir l'écran et sélectionner celui qui s'appelle souhaité. Nous n'avons pas vraiment besoin de tout l'espace. Nous avons juste besoin de ce que nous avons conçu ici. En cliquant à nouveau sur le bouton, nous allons modifier ces paramètres. Mais vous pouvez accéder à l'interface utilisateur principale si vous souhaitez cliquer sur ce bouton. Et encore une fois, maintenez Shift enfoncé et cliquez avec le bouton droit pour copier. Et maintenez la touche Maj enfoncée et cliquez avec le bouton gauche pour coller. Je vais donc simplement coller ces informations. Et pour cette taille ici, je vais juste le faire un par un. Tu vois, à vingt, c' est la taille que je veux. Et vous pouvez voir que cela ne change pas vraiment dans le y ici. C'est-à-dire, souvenez-vous avant de vous dire que vous pouvez cliquer sur cette superposition et cliquer sur Taille par rapport au contenu, afin de dimensionner le contenu, quelle que soit la taille du contenu. Et pour celui-ci, je vais juste le porter à 12120. Faites à nouveau attention au zoom ici. Voici à quoi cela ressemble un par un. C'est à cela que nous allons ressembler, pas à ça. OK, allons-y et copions la taille de l'image collée ici. Et en cliquant sur cette image, je veux l'aligner au centre de ce bouton. Cliquez donc sur ces alignements centrés, horizontaux et verticaux. Et pour l'image, je vais à nouveau utiliser le sac à dos. Peu importe ce que vous utilisez ici, car vous allez modifier cette image en fonction de la catégorie que vous avez. Plus tard, nous allons, par exemple créer une catégorie pour , créer une catégorie pour les consommables de qualité alimentaire et créer une catégorie d'armes. Donc, en fonction de la catégorie, nous allons modifier cette image afin que ce que vous avez sélectionné ici n'ait pas vraiment d'importance. Je vais juste faire en sorte que l'image ait une taille de 85, 80. Comme avant. N'oubliez pas que nous avons fait apparaître l' icône ici dans le menu. Nous allons donc faire la même chose pour le bas de l'échelle. Je vais juste en écrire six ici. Vous pouvez simplement le tester. Tu peux écrire 1018. Vois ce qui fonctionne pour toi, mais six ont marché pour moi et pour la gauche et la droite, je vais juste écrire 12 par 12, comme ça. Donc, juste au cas où le bouton deviendrait très petit, il me reste encore de la place ici. Donc je pense que c'était ça. Alors, prenons-le, car nous avons tout et tout semble bien. Compilons et sauvegardons tout. La dernière chose que vous devez changer, c'est avant de l'oublier, c' est la visibilité, la visibilité. Qu'est-ce que c'est. Maintenant, lorsque vous jouez au jeu et que vous souhaitez cliquer sur ce bouton situé derrière cette image, cette image bloquera votre bouton et vous ne pourrez pas appuyer dessus. Cela est dû au fait que la visibilité est définie sur Visible pour cette image. Donc, ce que vous devez changer, c'est qu'aucun hit n'est testable. Ce qui est indiqué ici dans la description de l' infobulle visible mais non testable, ce qui signifie que vous ne pouvez pas interagir avec le curseur. Et c'est ce que nous voulons, c'est juste une image pour vous montrer qu'il s'agit du bouton pour la catégorie, ou dans ce cas pour l' inventaire ici dans le menu I. Nous devons donc faire la même chose ici. Cliquez donc sur l'interface utilisateur principale changer la divisibilité en festival sans succès. Maintenant, nous pouvons cliquer sur cette image et appuyer sur le bouton même si cette image se trouve devant elle. Alors compilons. N'oubliez pas de tout enregistrer. Comme avant. Changeons les noms ici, bouton, catégorie et catégorie d'image et superposons ici, catégorie. OK, donc la raison pour laquelle j'ai ajouté cette superposition ici abord de changer le point d'ancrage au milieu. Je vais donc déplacer le point d'ancrage vers le milieu. Et n'oubliez pas que si vous écrivez des zéros, zéro pour la position, vous pouvez le voir s'ancrer comme ceci. Si vous vous souvenez de la leçon précédente, vous devez modifier l'alignement. Je vous l'ai donc déjà dit, nous utilisions 00.5 ou 1.0. 0,5 est la bonne valeur si nous voulons qu'elle reste au milieu. Donc 0,50, 0,5, et vous pouvez voir ma position 00. Maintenant, le bouton se trouve au milieu pour cette superposition. raison pour laquelle j'en ai créé deux c'est parce que maintenant, dans la deuxième superposition, je peux utiliser ce rembourrage si vous n'en aviez pas besoin. Imaginez que si vous n' avez que celui-ci, vous n'avez probablement pas de rembourrage. Si ce n'est pas comme un enfant. Vous pouvez voir que cette superposition est un enfant de cette superposition. Et pour les enfants, nous pouvons utiliser ce rembourrage ici. Et nous fabriquons ce rembourrage. Écrivons cinq pour le moment, je vais en écrire cinq. Et cela lui donne juste cinq à la fois à gauche, haut, à droite et en bas. Donc, la raison pour laquelle je le fais est plus tard, lorsque nous créerons les catégories manière dynamique, est un certain espacement entre les catégories. Par exemple, imaginez que vous ayez cinq catégories ici. Il y a un certain espacement entre les boutons. Si vous n'aviez pas l'espacement, ils seraient superposés. si vous voulez supprimer ces lignes pointillées, fait, si vous voulez supprimer ces lignes pointillées, une astuce rapide, vous pouvez simplement cliquer ici et vous pouvez voir à quoi cela ressemble sans toutes ces lignes. OK, gardons tout ce que c'était pour ici. Fermons-le, enregistrons le tout et passons à la leçon suivante. 8. 2.04 Créer les créneaux d'inventaire: Concevons maintenant les emplacements d'inventaire. Cliquons donc sur l'interface utilisateur. Cliquez avec le bouton droit ici sur l'interface utilisateur et créons un schéma de widget, comme un widget utilisateur. Donc, la même chose que ce que nous avons fait jusqu'à présent. Eh bien, celui-ci, des emplacements d'inventaire. Voici donc les emplacements où les objets seront affichés en cliquant sur cet emplacement d'inventaire. Comme avant, vous devez avoir un Canvas avant que nous puissions faire quoi que ce soit. Ajoutez donc une toile en haut et en remplissant l'écran, en sélectionnant la valeur souhaitée, comme nous l'avons fait pour la catégorie. Donc, à l'intérieur, nous pouvons maintenant ajouter une superposition, et je vais ajouter une autre superposition à l'intérieur afin que nous puissions ajouter du rembourrage, comme nous l'avons fait pour la catégorie. Et je vais ajouter un bouton, en fait juste une image. Nous n'avons pas vraiment besoin d'un bouton ici. Je vais ajouter une image à l'intérieur de cette superposition. Et cette image ne sera que de la boue. Donc, si nous allons simplement ici, nous avons celui-ci appelé emplacements d'inventaire, ou cet emplacement d'inventaire. du tirage au sort, je vais sélectionner des dollars et écrire la marge à 0,5, juste pour que nous puissions l'augmenter et que cela n'ait pas l'air bizarre. Donc, si vous l'avez comme image par défaut, vous pouvez voir que vous allez perdre en qualité. Nous sommes en train de remplacer l' écriture de Bach par 0,5 dans la marge, nous pouvons la redimensionner sans perdre en qualité. Je vais cliquer sur cette superposition ici et encore une fois, sélectionner la taille du contenu. Et pour cette image ici, pour l'emplacement d'inventaire, je vais juste la faire au format 90 x 90. Donc ça ressemble à ça. Et pour l'alignement au lieu de l'alignement, cela n'a pas vraiment d' importance dans ce cas, mais pour que ce soit plus net, je vais aligner horizontalement et verticalement. Donc, tout ce qui est ici pour cette superposition, je veux qu'elle reste au centre. Encore une fois, le point d'ancrage pour le point central, l' alignement 0,50, 0,5 et la taille ou la position à zéro. À zéro. Il reste au centre. Et je vais revenir ici dans la superposition, pour lui donner un peu de rembourrage. Et comme avant, je vais juste lui en donner une paire de cinq. Nous avons donc des espaces entre les emplacements d'inventaire. Et cela sera beaucoup plus clair lorsque nous créerons l'inventaire global. Et vous pouvez voir l' espace entre les fentes. Nous avons maintenant besoin d'un objet dans ces emplacements d'inventaire. Je vais ajouter une autre image à cette superposition. Je vais le centrer ici. Il suffit de sélectionner une icône aléatoire. Cela n'a pas vraiment d' importance. Nous sommes en train de modifier cela de manière dynamique dans le jeu. Je vais donc simplement sélectionner cette icône qui se rencontre, faisons en sorte qu'elle soit 160 par 60. Et nous n'avons pas vraiment besoin de le transformer en boîte, car il ne s'agit que d'une image, d'une icône. Et la dernière chose que nous voulons faire, c'est mettre du texte ici, comme un chiffre. Si vous avez trouvé, il doit y avoir un chiffre de cinq. Cherchons donc du texte ici et faisons-le glisser vers la superposition, comme ce texte. Alignez-le verticalement vers le bas et horizontalement vers la droite, sorte qu'il soit en bas. Et laissez-moi simplement écrire un chiffre, par exemple 23, juste pour l'instant comme espace réservé pour la famille de polices Je vais sélectionner «  Voyons voir », peut-être la version en gras, la couleur miroir et la mise en gras. Je vais passer à la taille 18. Et je vais juste en donner un aperçu. Donc, en cliquant ici, vous pouvez lui donner un aperçu et voir le plan apparaître ici si vous écrivez 23456 et ainsi de suite. Alors, écrivez-en peut-être deux, et voici la couleur du contour. Cliquez donc sur la couleur du contour et sélectionnez simplement une couleur aléatoire ici. Peut-être quelque chose comme ça, quelque chose qui correspond à l'arrière-plan. Vous pouvez également utiliser le sélecteur de couleurs. Choisissez cette couleur de fond, cliquez à nouveau dessus ici, et revenez à la couleur du contour et assombrir un peu, quelque chose comme ça qui a l'air bien. En cliquant sur OK, il y a un petit effet qui a l'air cool. Donc, ici, dans l'ombre, si vous créez simplement le, donnez-lui une petite ombre, par exemple 1,2 dans le y. moment, cela n' apparaît pas parce que Pour le moment, cela n' apparaît pas parce que votre alpha n'est pas réglé sur zéro, alors réglez-le sur un et vous pouvez voir les ombres apparaître réellement derrière le texte. Je vais régler celui-ci sur 1.2. Et un effet intéressant, c'est que si vous cette couleur d'ombre la même couleur que la couleur de votre contour, vous obtiendrez un effet 3D intéressant. suffit donc de cliquer dessus, copier la couleur linéaire hexadécimale, de passer à la couleur de l'ombre, de la coller ici. Vous pouvez voir que cela donne cet effet d'ombre 3D, qui a l'air très cool. Maintenant, pour ce qui est de sa position, vous pouvez voir qu'il se trouve ici, sur le bord. Je vais juste le faire, au lieu d'utiliser le rembourrage, je vais simplement descendre ici et la traduction, si je peux la trouver ici. Et dans le x, je vais juste appuyer dessus , quelque chose comme ça. Peut-être que si je zoomais jusqu'à 11 ici pour voir à quoi cela ressemble réellement. Peut-être que quelque chose comme ça est bien. Si je n'en écris que cinq, par exemple si nous avons cinq rencontres, voici à quoi cela ressemblera. Encore une fois, vous pouvez cliquer sur ce bouton pour supprimer les tirets afin de voir à quoi cela ressemble. Et je trouve ça cool. Nous pouvons donc l'utiliser. Compilons, sauvegardons tout. Encore une fois, pensez à renommer vos articles ici. Il s'agit donc de machines à sous d'inventaire d'images. Celui-ci est un article d' inventaire illustré. Et celle-ci est, vous pouvez l' appeler « item one city ». Peut-être qu'au lieu d' appeler article d'inventaire, je pourrais simplement l'appeler objet de n'importe quel nom. Et pour cette superposition, je vais juste les laisser entrer dans une zone pas vraiment trop importante pour le moment. OK. C'était donc ça. Et souvenez-vous encore une fois, peut-être devons-nous changer cela pour que la visibilité soit à nouveau testable pour ne pas être affectée. Mais je ne suis pas vraiment sûre pour le moment. Laissons-nous faire et nous pourrons le changer plus tard. Accédez à Fichier, enregistrez tout et passons à la leçon suivante. 9. 2.05 Créer l'inventaire: Concevons maintenant l'inventaire. Pour ce qui est de l'inventaire, ce à quoi va ressembler quelque chose comme ça. Nous avons donc conçu l'emplacement d'inventaire, et c'est ce que je voulais dire à propos de l'espacement entre les emplacements d'inventaire. C'est pourquoi nous avons ajouté un rembourrage à la superposition. Nous avons donc un peu de distance entre ces emplacements d'inventaire. C'est donc à cela que va ressembler. Les catégories sont affichées sur le côté. Nous allons donc le concevoir. Allons-y et cliquez à nouveau avec le bouton droit sur l'interface utilisateur, le plan du widget. Appelons cela un inventaire. Donc, à l'intérieur d'ici, encore une fois , comme avant, ajoutons une toile. Et pour l'inventaire, vous devez visualiser ce que vous essayez de faire. Donc, pour toute interface utilisateur que vous essayez de faire. Donc, voici ce que nous essayons de faire, c'est placer les catégories sur le côté, puis nous avons l'inventaire. Nous avons donc besoin de ce que l' on appelle une boîte horizontale. Nous avons donc besoin que les catégories soient à côté de l'inventaire. Et ici, nous allons utiliser ce que l' on appelle la boîte horizontale. Et vous pouvez simplement y ajouter des éléments pour voir ce qu'il fait. Donc, si vous recherchez simplement un bouton, par exemple, et que vous l'ajoutez dans la zone horizontale. Si vous utilisez la touche Contrôle D pour le dupliquer, vous pouvez voir quels éléments sont horizontalement les uns par rapport aux autres. Supprimons donc ces boutons. La zone horizontale contiendra une zone verticale dans laquelle les boutons de catégorie seront alignés verticalement. Ensuite, nous aurons une superposition où nous aurons notre inventaire. Juste comme ça. Nous avons dans la case horizontale, les bugs verticaux pour les catégories. Renommez-le simplement pour le moment. Je vais laisser VB pour la boîte verticale et je vais l' appeler x demandes. Et pour la superposition, appelons-la simplement inventaire comme ceci. La superposition de l'inventaire consiste donc en une image. Nous avons besoin du contexte pour l'inventaire. Donc, en y ajoutant une image et cette image, au lieu de lui définir une taille, elle se remplira simplement horizontalement et verticalement. Vous pouvez voir qu'il ne se remplit pas horizontalement. Et c'est parce que cette superposition, qui est le parent de cette image, ne se remplit pas non plus. Donc, au lieu de cliquer automatiquement ici, cliquez sur Remplir et le tout sera rempli. Donc, peu importe ce que je déciderai de changer la taille deux de la boîte horizontale, elle remplira cet espace ici. Maintenant, en cliquant pour revenir à l'image, changeons celle-ci en bouton carré bleu. Je l'utilise également comme arrière-plan. Ça a l'air sympa. Maintenant, uniquement pour les boutons et dessinez sous forme de boîte, cinq dans la marge, afin de ne pas perdre en qualité. Nous avons donc maintenant le contexte de l'inventaire. Et maintenant, ce que nous devons faire, c'est avoir un texte ici qui dit inventaire. Ensuite, nous avons besoin des paresseux de l' inventaire ici. Vous pouvez donc imaginer que nous avons besoin d'une boîte verticale. Cherchons une zone verticale ajoutée à la superposition. Laisse-moi juste aligner cette case verticale, remplir le tout. Et nous avons besoin d'un peu d' espacement, car au lieu de dessiner sur les bords de cet inventaire, je vais y ajouter du rembourrage. Peut-être quelque chose comme 30. Nous allons simplement y ajouter des éléments ici afin ne pas toucher les bords de l' arrière-plan pour le haut. Et peut-être que je vais juste écrire 25, juste comme ça. Et ajoutons maintenant un texte. Ce texte ne fera que parler d'inventaire. Alignons ce texte au milieu. Changeons la police ici. Et je vais juste sélectionner celui-ci très audacieux. Et changeons la taille. Peut-être que les choses se passent comme ça. C'est vraiment sympa. Si vous avez juste ce zoom un par un. Vous pouvez voir à quoi cela ressemble. Pour celui-ci, disons inventaire, inventaire, et nous pouvons y ajouter une ombre. Je vais juste en faire 23.4, l'Alpha 0.3. Vous pouvez maintenant voir que nous avons une ombre subtile sous ce texte, qui le rend beaucoup plus beau et moins plat. Ensuite, nous allons ajouter les emplacements d'inventaire. Pour ce faire, nous avons besoin de ce que l'on appelle un panneau de grille. Donc, si nous cherchons simplement une grille, nous avons ce superbe panneau. Ajoutons-le à cette boîte verticale ici dans le grand panneau. Si vous vous contentez de monter ici et de rechercher un inventaire. Vous pouvez maintenant voir les plans de widgets que vous avez créés ici. Nous avons donc la catégorie et les machines à sous. Donc, en prenant cet emplacement et en l'ajoutant au panneau de la grille, vous pouvez voir à quoi il ressemble. Cliquez sur celui-ci, cliquez sur Control D pour le dupliquer. Remplacez ensuite la ligne par une. Et maintenant, nous pouvons voir à quoi cela ressemble. Dupliquez donc celui-ci à nouveau et écrivez-en un ici dans la colonne. Je voulais juste voir à quoi ça ressemble. Je vais le copier à nouveau, accord, deux dans la colonne. Et voici à quoi ça ressemble. Tu peux le voir. De toute évidence, cela ne semble pas correct. Nous devons donc découvrir ce qui ne va pas. Nous pouvons maintenant cliquer sur cette superposition ici et tout semble correct. Nous devons cliquer sur cette case horizontale et vous pouvez voir qu'elle semble correcte si je la redimensionne. Et au lieu de le placer sur la gauche, nous pouvons cliquer sur cet alignement central. C'est donc toujours un goût intermédiaire. Cependant, cette boîte horizontale va bien, elle a l'air bien maintenant. Et à la place, nous pouvons cliquer sur Size to content. La taille de l'inventaire est donc simplement proportionnelle à l'arrière-plan de l'inventaire. Il aura la même taille que le contenu de l'inventaire. Très bien, il en va de même pour les Vertical Bucks. Donc, si vous allez ici et que vous recherchez un inventaire, prenez cette catégorie, faites-la glisser vers cette case verticale que nous avons créée auparavant. Je vais juste cliquer sur Control D juste pour copier afin de voir à quoi il ressemble. Vous pouvez l'avoir de cette façon ou vous pouvez l'aligner au milieu. Donc, si je me contente de le dupliquer et de l'agrandir, je pourrai voir à quoi cela ressemble. Nous allons d'ailleurs les supprimer, nous allons les ajouter tous dynamiquement en fonction des objets que nous avons pillés et pas celui-ci ici, nous n'avons que trois catégories. Donc, au lieu de l'avoir comme ça, je vais cliquer sur la case verticale et l'aligner au centre ici et peut-être l'aligner horizontalement ici vers la gauche. Et pour le rembourrage, je vais ajouter un peu de rembourrage sur la droite parce que je veux un peu plus d'espacement entre les deux. En cliquant sur la case verticale, en ajoutant, en ajoutant à droite, peut-être dix, comme ceci. Et je trouve que ça a l'air encore une fois sympa et on peut cliquer sur cet inventaire. y a vraiment aucune raison pour que nous n'ayons pas vraiment de boutons autour de lui. Mais juste au cas où vous auriez un bouton quelque part ici, modifiez la visibilité du texte pour qu'il n'y ait aucun résultat testable car nous n'avons pas vraiment besoin d' interagir avec le curseur de la souris. OK, maintenant compilons et sauvegardons tout. Et c'est en fait ce à quoi va ressembler. Nous pouvons donc supprimer tous ces emplacements d'inventaire. Nous pouvons supprimer toutes les catégories pour le moment, car nous les ajouterons toutes de manière dynamique pendant le jeu. Maintenant, ce que vous pouvez faire, c'est simplement changer le nom de chacun d'entre eux. Donc, en fait, ça a l'air sympa et vous savez quoi, ça l'est. Super panel. Voici les grilles, l'inventaire. Juste comme ça. Renommons tout. Et parfois, certaines choses ne sont pas trop importantes pour changer le nom de celui-ci : l'inventaire des images, peut-être l' image d'arrière-plan ou l'arrière-plan. Il ne s'agit que de la boîte horizontale. Nous devons maintenant l'aligner ici. Donc, le point d'ancrage est que je vais faire l'inventaire ici. Cliquez donc sur l'ancre, prêtez-la ici. Et si vous écrivez la position entre zéro et zéro, encore une fois, comme avant de la voir, elle se trouve en fait en dehors de l'écran. Donc, comme avant, vous devez ajuster l'alignement un par un. Et je vais donner un peu plus d' espace aux sites. Donc, écrivez la position à -35 -35. Nous avons maintenant un peu plus d'espace. C'était donc tout pour l'inventaire. Sauvegardons tout, fermons-le et passons à la leçon suivante. 10. 3.01 Affichage de l'interface utilisateur principale: Il est maintenant temps d'afficher l'interface utilisateur principale à l'écran. Il s'agit de l'interface utilisateur principale que nous avons créée. Et il ne s'agit que d'un seul bouton, qui permet d' ouvrir l'inventaire. Maintenant, ce que nous voulons faire, c'est généralement travailler avec l'interface utilisateur intégrée à la manette du joueur. Nous avons déjà une manette de jeu dans ce jeu. Si vous optez pour les plans, nous avons celui-ci appelé PC. Il s'agit de la manette du joueur. Double-cliquez dessus et cette vue s'ouvre lorsque le plan perdu est vide. Nous devons donc cliquer sur Ouvrir, ouvrir l'éditeur de plans complet. Je n'ai donc rien fait à l'intérieur, même s'il est complètement vide et neuf. Et ce que nous pouvons faire ici c'est tout supprimer pour le moment. Mais nous essayons d' utiliser celui-ci appelé si vous cliquez avec le bouton droit ici dans cet éditeur et que vous écrivez crée des widgets. N'oubliez pas que nous travaillons avec des modèles de widgets. C'est donc ce que nous avons créé ici, un plan de widget. Donc, si vous cliquez simplement avec le bouton droit ici, à droite, pour créer des widgets, vous trouverez ce nœud ici. Cette fonction va créer notre widget. Nous allons donc sélectionner ce que nous voulons créer. Nous voulons créer l'interface utilisateur principale, celle-ci, WB main. Cliquons dessus. Maintenant, cliquez dessus avec le bouton droit de la souris et promouvons-la en une variable que j'écris . J'aime que mon interface utilisateur soit composée de variables, je la promouvrai en variable. Et disons que ce ne serait plus le principal. Bon, maintenant nous l'avons et pour l' afficher à l'écran, vous pouvez maintenant cliquer sur compiler. Je le fais habituellement si tu me vois le faire tout le temps. Il s'agit simplement de vérifier si vous avez des bogues dans votre code. Si c'est le cas, cela vous donne un ticket, ce qui signifie que c'est propre. Tout va donc bien jusqu'à présent. OK, donc ce que nous pouvons faire ici, c'est faire glisser cette variable. Et si vous n'avez pas créé de variable, vous pouvez simplement la faire glisser à partir d'ici. Alors faites glisser le curseur à partir d'ici et dites Ajouter à la fenêtre d'affichage. C'est ce que je fais. Bien, nous avons maintenant terminé l'ajout à la fenêtre d'affichage. Et si vous cliquez sur Jouer maintenant, si vous connaissez déjà les plans, cela n'arrivera pas. Donc, si vous cliquez sur Play et que rien ne se passe vraiment. Rien de tel qu'il n'y a aucun bouton sur notre écran, n'est-ce pas ? Maintenant. Si vous connaissez déjà les plans, vous savez que nous avons besoin d'un événement pour exécuter le code. Ainsi, dans Blueprint, vous avez toujours besoin d'un événement pour exécuter le code. Vous ne pouvez pas exécuter de code sans événements. Donc, si vous cliquez ici avec le bouton droit de la souris et que vous recherchez Commencer à jouer, nous avons ce que l'on appelle un événement Pig Can Play. Cliquez sur celui-ci. Si vous souhaitez voir d'autres événements, vous pouvez toujours cliquer avec le bouton droit de la souris et effectuer une recherche. Vous pouvez simplement rechercher des événements et vous pouvez voir tous les événements parmi lesquels vous pouvez choisir. Par exemple, l' événement n'est pas détruit au tic-tac, qui s'exécute 60 fois par seconde. Et peut-être tout dommage utilisé lorsque la couche a été endommagée, etc. Supprimons donc cela pour le moment. Pourquoi avons-nous besoin maintenant d'un outil très basique appelé Begin Play. Cet événement indique donc simplement ce qui se passe lorsque vous commencez à jouer au jeu. Et connectons-le ici. D'accord ? Ainsi, lorsque nous commencerons à jouer au jeu, nous voulons créer ce widget et l'ajouter à la fenêtre d'affichage. Mais compilons, sauvegardons tout ce qu'ils peuvent jouer. Et maintenant, vous pouvez voir que le bouton apparaît ici à l'écran. D'accord ? Tout fonctionne donc. Et si je minimise celui-ci pour le moment, cliquant sur ces trois points, nombre de joueurs, je le changerai à deux. Et pour le mode net, pour l'instant, je vais juste cliquer sur « jouer en tant que serveur écouté ». Je vais cliquer sur Play. Et c'est en fait sur mon deuxième écran, qui se trouve ici. Maintenant, nous avons deux joueurs. Et vous pouvez voir qu'ils ont tous les deux ce bouton. OK, Nice. Et maintenant, vous pouvez voir que nous avons un bogue. Et cela signifie que X n'essaie pas de lire la propriété créée par WB, qui est celle-ci. Il ne sait pas ce que c'est vraiment. Ce que x n'est pas signifie que cette variable est vide. Je ne sais pas ce que c'est. Et c'est parce que nous travaillons en mode multijoueur. Tu ne peux pas faire ça. C'est bien pour le mode solo, mais pour le mode multijoueur, vous ne pouvez pas le faire directement. En multijoueur, nous avons ce qu'on appelle un client, et nous avons quelque chose qui s'appelle le serveur. Quelques clics sur Play. Vous pouvez voir ici qu'il est écrit serveur. Et ici, il est dit que client aura le client et le serveur. D'accord, donc généralement, l'interface utilisateur n'est exécutée que sur le client, elle n'est jamais exécutée sur le serveur. Dans la leçon suivante, je vais vous expliquer le serveur et le client de manière plus approfondie. Mais pour l'instant, sachez simplement que l'interface utilisateur doit être exécutée via le client. Vous ne pouvez pas exécuter l'interface utilisateur via le serveur. Donc, ce que nous devons faire, c'est simplement le déconnecter. Et pour le déconnecter rapidement, vous pouvez cliquer sur Alt sur le clavier et cliquer dessus. Cela déconnectera les broches. Et ce que vous voulez faire, c'est cliquer ici avec le bouton droit de la souris et écrire des événements personnalisés. Astuce rapide pour le faire également. Vous pouvez écrire un point T et cela apparaîtra rapidement. Donc, en créant ces événements personnalisés, appelons celui-ci des widgets d'initialisation. Juste comme ça. Et n'oubliez pas de cliquer sur cet événement sur les répliques, cliquer sur Exécuter pour être propriétaire, client et fiable. Je vais vous expliquer ce que cela signifie dans la prochaine leçon. Mais pour l'instant, assurez-vous qu'il fonctionne sur le client et qu'il est fiable et connectez-le ici. Nous nous assurons donc que l'interface utilisateur est exécutée avec le client. Et maintenant, encore une fois, les plans, n'oubliez pas que lorsque vous cliquez sur Play, rien ne se passe. C'est parce que vous devez toujours lui indiquer les plans de la date à laquelle vous organiserez cet événement. Parce que votre code ne sait pas vraiment ou que votre jeu ne sait pas vraiment quand lancer cet événement. Donc, lorsque nous avons commencé à jouer au jeu, je voudrais appeler cet événement appelé initialize widgets. OK, alors compilons. Ils peuvent jouer maintenant. Nous pouvons maintenant le voir apparaître à l'écran ou ceci ici et cette année. Et si je quitte le jeu, tu peux voir que je n'ai pas de boîte. Maintenant, cela ne me donne aucune erreur. Et c'est parce qu' il fonctionne correctement maintenant. Maintenant, toute l'interface utilisateur est exécutée via le client comme il se doit. Et n'oubliez pas de compiler, cliquez sur Tout enregistrer. Et je vais passer à la leçon suivante où j'expliquerai plus en détail le serveur et le client. 11. 3.02 Qu'est-ce que la réplication d'événements: Très bien, donc avant de continuer, je veux juste vous expliquer rapidement le serveur et le client dans Unreal Engine. Encore une fois, comme vous l'avez déjà vu, lorsque nous cliquons sur Play, nous avons le serveur, puis nous avons ce que l'on appelle un client. Mais ce que vous devez comprendre dans Unreal Engine, c'est que le serveur est l'autorité du jeu, donc le serveur est le vrai jeu. Et qu'est-ce que cela signifie ? Cela signifie que pour le serveur, vous voyez tout correctement. Donc, par exemple, si j' aurais dû aller sur mon serveur ici et si je tire avec un pistolet, alors le pistolet est parfaitement bien tiré. Si je tire sur le client et que le serveur ne l' a pas autorisé à utiliser cette arme, cela n'arrivera jamais. Donc, quoi que vous fassiez sur le client, il le vérifie toujours auprès du serveur. Le serveur vérifie donc. Le client fait-il quelque chose de légal ou fait-il quelque chose comme cela est considéré comme de la triche. Donc, tous les clients se sont connectés à vous, disons que vous avez créé un serveur Counter-Strike un serveur de quinze jours ou autre. Et tous vos amis sont connectés à vous, à vos amis ou aux clients, à vous ou au serveur. Donc, si l'un de vos amis triche, par exemple, il tire avec une arme à feu sans balles. Il le vérifiera toujours auprès du serveur. Et si le serveur constate que ce joueur n'a pas de balles, il ne sera jamais fermé. Le serveur vérifie donc toujours quels sont les clients, et celui-ci est bon. Si vous pouvez rechercher UE for Network Compendium sur Google, cela vous indiquera tout sur le mode multijoueur. Mais je veux simplement vous faciliter la tâche car c'est un long document. Et je veux juste vous montrer ces cercles, comme nous l'avons fait dans la leçon précédente. Nous exécutons les widgets sur le client. Vous pouvez donc voir ici que les widgets sont toujours exécutés sur le client. Les contrôleurs des joueurs sont exécutés sur le serveur et les clients afin de pouvoir communiquer avec le serveur et le client. Et le mode de jeu ne fonctionne que sur le serveur. Donc, si vous avez écrit du code dans le mode jeu et que vous souhaitez y accéder via le client. Cela est impossible car le mode de jeu n' existe que sur le serveur. Et encore une fois, la manette existe à la fois sur le serveur et sur le client, ce vous permet de communiquer avec les deux. Donc, ce que nous avons fait dans notre jeu jusqu'à présent, est au sein du client que nous avons travaillé. Donc, si je reviens à mon jeu, si je reviens aux plans, souvenez-vous que nous avons écrit ce code ici, dans la manette du joueur. Et la manette de jeu existe à la fois sur le serveur et sur le client. Nous devons donc spécifier à l'intérieur : travaillons-nous avec le serveur ou travaillons-nous avec le client ? Si nous travaillons avec le serveur, nous devons répliquer pour fonctionner sur le serveur. Mais comme vous êtes toujours géré via le client, nous devons exécuter le client puis créer l' interface utilisateur, travailler avec l'interface utilisateur. Il est donc très, très important de comprendre. L'interface utilisateur est toujours gérée par le client. Et si vous ne les faites pas passer par les clients, comme nous l'avons déjà vu, si vous les exécutez directement comme ça, vous recevrez de l'argent. Maintenant, outre l'interface utilisateur, par exemple certaines mécaniques de jeu, disons que plus tard, nous allons créer des objets. Donc, ici, dans les objets, nous allons créer des objets. Et supposons que le joueur va lancer cette manipulation depuis le sol et l'ajouter à l'inventaire. Le joueur se dirige donc vers le joueur se dirige vers cette potion. Et lorsque le joueur appuie sur E, par exemple pour récupérer la potion, celle-ci s' exécute sur les serveurs. Nous allons créer un événement personnalisé sur le serveur. Ensuite, le serveur va gérer la logique, donc le serveur va la vérifier. Ce joueur appuie en fait sur E. Ce joueur est-il réellement à proximité cette potion pour pouvoir la diluer ? Si vous ne vérifiez pas ces éléments, leur client peut tricher. C'est pourquoi nous le vérifions auprès du serveur. Supposons que le client se trouve ici et que vous ne pouvez le charger à cette personne que lorsque vous êtes ici. Mais si vous ne le vérifiez pas avec le serveur et le client par rapport à E ici, ils trichent. Ils peuvent facilement perdre cette potion. Nous devons donc exécuter sur le serveur, vérifier si la couche interagit réellement avec cette potion. Si le joueur en a ***** suffisamment dans l'inventaire pour charger cette potion et ainsi de suite. Nous allons donc parcourir le serveur plus tard, alors vérifiez ces éléments. Mais pour l'interface utilisateur, nous l' exécutons sur le client. 12. 3.03 Clé de liaison pour ouvrir l'inventaire: Lions maintenant la touche I pour ouvrir l'inventaire. Vous pouvez également lier la touche B, qui est parfois utilisée pour le sac à dos. Revenons donc aux plans, dossier Blueprints. Et dans le lecteur, j'ai déjà créé celui-ci appelé input mapping context and input action. Il s'agit du nouveau système de mouvement et d'Unreal Engine. Si vous ne savez rien à ce sujet, vous pouvez toujours aller sur mon youtube et consulter le tutoriel que j'ai créé à ce sujet. Vous pouvez donc maintenant double-cliquer sur celui-ci , le contexte cartographique. Et si vous l' ouvrez, vous pouvez voir que j'ai déjà créé le mouvement. Et lorsque vous regardez avec votre souris, nous devons en créer une nouvelle, ou voulez-vous ouvrir votre inventaire ? Cliquez ici avec le bouton droit de la souris. Passons aux entrées et passons à l'action de saisie. Appelons cela IA pour les actions de saisie, et appelons-le inventaire ouvert. Maintenant, ce que nous pouvons faire, c'est tout sauver. le contexte cartographique, nous pouvons maintenant cliquer sur le bouton Plus ici, cliquer ici et sélectionner l'inventaire ouvert que nous venons de créer. Vous pouvez ensuite sélectionner une clé pour cela. Vous pouvez soit sélectionner l' œil, soit sélectionner B. Vous pouvez simplement cliquer sur cette icône ici et écrire V sur votre clavier. Par exemple, vous pouvez également le trouver ici si vous le souhaitez, regardant sur le clavier puis en trouvant la touche. Je peux donc également ajouter deux boutons. Je peux simplement cliquer sur ce bouton plus et sur la touche. Vous pouvez maintenant ouvrir l'inventaire l'aide du bec et de la clé en forme d'œil. D'accord ? Il y a donc une petite erreur jusqu'à présent. À l'heure actuelle, il fonctionne sur Tick. Et je vais vous le montrer dans un instant. Si vous accédez au nom réel de la manette du joueur, revenons au joueur ici. C'est ici que nous gérons les entrées. Donc, à l'intérieur, si vous cliquez avec le bouton droit de la souris et que vous recherchez maintenant l'inventaire ouvert d'IA que nous venons de créer. Vous trouvez cet événement ici et vous venez de vous en rendre compte, cette icône signifie qu'il s' agit d'un événement en cliquant dessus. Et maintenant, nous avons celui-ci que nous venons de créer. Maintenant, si vous faites simplement glisser la souris depuis le déclencheur et écrivez une chaîne d'impression juste pour voir ce qui se passe. Et cela ne fera qu'écrire des textes à l'écran. Il ne nous reste plus qu' à cliquer sur Play, Play. Et ici, je vais cliquer sur le bouton I. Et vous pouvez voir qu'il imprime bonjour de nombreuses fois et ce n' est pas ce que nous voulons. Nous voulons simplement ouvrir l' inventaire une fois lorsque nous cliquons, est-ce que cela ne fait que spammer l'inventaire à ce stade ? Si vous cliquez sur AI. Revenons donc ici. Revenez au contexte cartographique. Et ici, dans l'inventaire ouvert du Peaky et de l'Ikea, pensez à appuyer sur cette petite flèche pour les ouvrir ici. Ce que nous voulons faire ici, c'est pour les déclencheurs, cliquez sur le bouton plus, et sélectionnez ici enfoncé. Et qu'est-ce que ça dit ? déclencheur ne se déclenche qu'une seule fois, et c'est ce que nous voulons faire. Cliquez donc dessus ici. Et il en va de même pour les yeux. Nous voulons juste le déclencher une fois lorsque nous cliquons sur le bouton. Sauvegardons-le. Revenons en arrière. Cliquez sur Play. Et maintenant, je vais appuyer sur la touche I. Et tu ne le vois qu' une seule fois quand j'appuie dessus. Et même si je le tiens comme maintenant, je l'appuie plusieurs fois. Mais même si je le maintenais enfoncé, maintenant je vais maintenir le bouton enfoncé. Vous pouvez voir qu'il ne se déclenche qu' une seule fois et c'est aussi ce que nous voulons. Très bien, il est maintenant temps d'afficher l'inventaire à l'écran lorsque nous cliquons sur le bouton. Mais passons à la leçon suivante. Vous devez en apprendre davantage sur ce que l'on appelle une énumération. Alors sauvegardez tout et passons à autre chose. 13. 3.04 Introduction à l'énumération: Ce qu'est une énumération, c'est juste une liste de tous les éléments que vous souhaitez en faire. Passons donc aux plans. Ici. Cliquez avec le bouton droit de la souris, créons un nouveau dossier et appelons-le enums. Voici donc les énumérations qui se trouveront à l'intérieur d'ici. Maintenant, cliquez avec le bouton droit ici, accédez aux plans et vous pouvez voir que nous avons ce qu'on appelle une énumération. Créons-en un et voyons ce que c'est. Je leur donne généralement le préfixe E ou une énumération. Et pour celui-ci, appelez-le simplement widgets de jeu. Nous allons faire une liste de widgets de jeu. Rentrons ici. Et maintenant, vous pouvez voir que c'est très simple. Nous n'avons pas grand-chose à l'intérieur. Vous pouvez cliquer sur Ajouter un énumérateur. Et à l'intérieur, vous obtenez ce nom d'affichage et vous pouvez lui donner un nom et une description. Donc, ce qu'est une énumération, c'est juste une liste. C'est tout simplement ce que c'est. Ce n'est qu'une liste et peut être une liste de n'importe quoi, par exemple celle-ci s'appelle Gameboy jets. Donc, je veux juste faire une liste de jeux. Jusqu'à présent, nous voulons ouvrir l'inventaire. L'un des widgets que nous avons jusqu'à présent est l'inventaire. Nous avons également l'interface utilisateur principale, mais je n'en ai pas vraiment besoin ici. Maintenant que nous avons l'inventaire, nous n'en avons pas plus. Mais nous pourrions par exemple avoir quelque chose comme un menu de compétences. Disons que nous avons un jeu plus important. Nous avons un menu d'artisanat. Nous pourrions avoir un menu de pause, par exemple nous pourrions avoir beaucoup de widgets ici en fonction de ce que vous souhaitez ajouter. Je vais tous les supprimer en cliquant sur cette icône. Mais vous pouvez également faire une liste de tout le reste, par exemple des objets d'artisanat. Peut-être que tu as besoin d'un lingot d'or. Ça va comme ça. Peut-être que tu as besoin de peau de vache ou quelque chose comme ça. Il peut donc s'agir d'une liste de n'importe quoi. Mais pour l'instant, nous allons juste créer, nous voulions simplement répertorier les widgets de jeu que nous avons actuellement, c'est juste l'inventaire. C'était donc très facile et l'énumération n' est qu'une liste de n'importe quoi. Et nous allons utiliser cette liste dans la leçon suivante pour afficher l'inventaire. 14. 3.05 Créer l'événement Open and Close Widget: Bon, maintenant, dans les plans du dossier enums, nous avons créé l' énumération des widgets du jeu. Et la seule chose dont nous disposons pour le moment est simplement l'inventaire que nous pouvons fermer et ouvrir en tant qu'interface utilisateur. Essayons donc de créer des événements d'ouverture et de fermeture du widget afin qu'il puisse réellement ouvrir et fermer des widgets. Et en général, encore une fois, nous travaillons avec l' interface utilisateur intégrée à la manette du joueur. Revenons donc aux plans. Ouvrons notre manette de jeu. Et jusqu'à présent, nous avons créé cette interface utilisateur principale, que nous ajoutons à la fenêtre d'affichage. Maintenant, ce que je veux que vous fassiez, c'est cliquer avec le bouton droit ici et créer des événements personnalisés. Pour cet événement, appelons cela des widgets ouverts et fermés. Nous utilisons donc cet événement pour ouvrir et fermer des widgets, par exemple vous ouvrez et fermez l'inventaire, ou vous ouvrez et fermez le menu de pause, ou vous ouvrez et fermez tout ce que vous voulez, par exemple Sharp, que vous ouvrez pour acheter des armes, etc. Donc, pour l'instant, nous ouvrons et fermons l'inventaire. Donc, cet événement ici, encore une fois, souvenez-vous que nous avons parlé de la nécessité d'exécuter l'interface utilisateur sur le client. Nous devons donc créer un nouvel événement, un nouvel événement personnalisé, et appeler celui-ci C L pour les clients. Et appelons celui-ci des widgets ouverts. Et généralement, pour le client, je l'appelle Cl comme préfixe. Et en fait, j' aurais dû le faire ici aussi , juste pour rester constant. Et je vais aussi l'appeler CL ici. OK, donc pour celui-ci, souvenons-nous des répliques, exécutons-le sur des clients propriétaires et aussi de manière fiable. Et à partir de ce premier événement costumé, n' oublions pas d' exécuter ce code autrement. Cela ne fonctionnera jamais. Donc, cette initiative Cl n'a pas été initialisée avec ce seul widget ouvert et fermé. Maintenant, nous exécutons également ce code. Ok, tu peux compiler. En gros, ce que je veux avec ce widget, c'est que nous devons sélectionner le widget que nous voulons ouvrir. Ensuite, nous devons choisir si nous voulons l'ouvrir ou le fermer. Donc, pour sélectionner le widget que nous voulons ouvrir, n'oubliez pas que nous avons créé cette énumération appelée widgets de jeu E. Alors, pour ce widget d'ouverture et de fermeture, cliquez maintenant sur le plus ici. Nous ajoutons donc une variable à cet événement. Et sélectionnons ici le type de variable. Cherchons des widgets de jeux électroniques. Celui que nous venons de faire, c'est l'énumération. Alors, cliquons dessus. Et je vais juste appeler ça des widgets. Et vous pouvez le voir ici maintenant, nous devons maintenant connecter cette énumération à celle du client. Donc, ici, je vais en fait créer le même clic sur le Plus. Il est déjà configuré sur les widgets du jeu. Je vais l'appeler à nouveau Widget. Et maintenant, nous pouvons le connecter ici comme ça. D'accord ? Nous avons donc besoin d' une autre variable. Nous devons spécifier si nous voulons réellement ouvrir ou fermer ce widget. Nous devons donc ajouter un booléen. Cliquons sur le plus en haut. Sélectionnez un booléen comme type de variable et appelez celui-ci ouvert. Encore une fois. Faisons-le ici. Cliquez sur le plus Collatz pour ouvrir et connectons-les ici. D'accord, donc par exemple juste pour vous le présenter rapidement. Donc, ici, au début, jouez, disons que je fais glisser d'ici et que je dis open lows widget, celui-ci sans client, donc celui-ci ici. Alors maintenant, je peux spécifier quel widget je veux ouvrir ? C'est parce que nous avons ajouté cette variable ici, en spécifiant, par exemple je veux ouvrir l' inventaire et n'oubliez pas cocher cette valeur booléenne parce que vous voulez l'ouvrir. Si vous ne voulez pas l' ouvrir comme ça, cela signifie que vous le fermez , que vous le fermez. En cliquant ici. Cela signifie que vous voulez l'ouvrir. Il va passer par cet événement et les résultats seront là. OK, donc je vais juste supprimer celui-ci pour le moment. Donc, ici, ce que nous devons faire ici maintenant, nous devons vérifier. Vous souhaitez ouvrir ou fermer le widget ? Donc, faire glisser la souris à partir de ce booléen, écrire B et sélectionner cette branche pour ce booléen, c'est juste pour rester cohérent. J'écris généralement B comme préfixe, et cela se fait en C plus plus pour trouver les booléens plus rapidement. Vous pouvez donc voir que même si j'écris un b, cela n'apparaît pas ici, donc c'est un petit secret, écrit avant les booléens, les noms booléens. ce que je fais d'habitude. OK, revenons ici. Donc, créez une branche ici, droite en V, et créez une branche. Maintenant, nous nous demandons si ce booléen est vrai ou faux ? Si c'est vrai, nous voulons ouvrir le widget. Si c'est faux, nous voulons fermer le widget. Mais créons deux fonctions ici, en cliquant sur ce bouton plus, appelons celle-ci. Des widgets, et créons le second et appelons-le des widgets de flux. Revenons à l'Event Graph. Faisons les sortir ici. Et maintenant, connectons-les. Donc, si c'est vrai, nous voulons ouvrir le widget. Si c'est faux. Si l' ouverture est définie sur false, nous voulons fermer le widget. Vous devez maintenant spécifier de quels widgets vous parlez. Encore une fois, dans la saisie, je vais cliquer sur le signe plus, sélectionner le widget du jeu EA et l' appeler ici widgets. Et en faisant de même pour le widget de fermeture, cliquez sur le plus. Ensuite, vous devez connecter ce widget ici. Et maintenant, nous avons le flux complet. Donc, ce qui se passe essentiellement maintenant c'est si vous appelez ce widget ouvert/fermeture, encore une fois ici, par exemple vous dites widget ouvert/fermeture. Vous souhaitez ouvrir l' inventaire de cette manière. Maintenant, ça va descendre ici. Lorsque vous appelez le code comme ceci, il va apparaître ici. Il sait que vous avez défini ce widget comme inventaire. Il va donc s'ouvrir parce que c'est vrai. Donc ça va descendre ici. C'est vrai Et elle sait que la valeur réside dans les stocks. Cela va donc ouvrir l'inventaire des widgets, les avons donc pas encore créés. Alors allons-y. Il s'agit de la fonction d'ouverture du widget ici. Donc, pour l'instant, vous pouvez faire glisser votre souris à partir de cette énumération. Et nous avons ce que l'on appelle l'énumération par activation. Allumez-le donc si vous cliquez dessus maintenant. Maintenant, quel interrupteur est allumé ? Elle peut jouer différentes valeurs en fonction de la valeur que vous avez sélectionnée pour cette énumération. heure actuelle, nous n'avons que l'inventaire en tant que valeur, mais si vous aviez plusieurs valeurs, vous auriez plusieurs épingles ici. Vous pouvez donc effectuer une action en fonction ce que vous avez sélectionné comme énumération. Donc, voici l' inventaire, n'oubliez pas que nous sommes à l'intérieur du widget ouvert. Alors allons-y et disons Créer des widgets et sélectionnons celui-ci ici. Et nous voulons créer le widget d'inventaire. Nous voulons ouvrir l'inventaire. Très bon inventaire de widgets. Ensuite, je vais cliquer avec le bouton droit de la souris sur une variable parce que j'aime les avoir dans des variables et appeler celle-ci un inventaire WB. OK, maintenant j'ai cette variable et je veux l' ajouter à vos ports comme ça. Mais maintenant, nous sommes en train de l' ajouter à la fenêtre d'affichage. Juste une vérification rapide avant de le faire, vous pouvez, encore une fois, vous rappeler que nous pouvons maintenir la touche Alt enfoncée et cliquer dessus ici aussi, pour vous déconnecter rapidement. Avant cela, permettez-moi de prendre cette variable d'inventaire. Vous pouvez maintenir la touche Ctrl enfoncée et la faire glisser. Si vous maintenez la touche Ctrl enfoncée et que vous faites glisser la souris, vous prenez cette valeur variable. Si vous maintenez la touche Alt enfoncée et que vous la faites glisser, vous définissez cette variable en maintenant le contrôle enfoncé et en la faisant glisser, vous l'obtenez. Et maintenant, nous pouvons cliquer avec le bouton droit sur cette variable et la convertir en un get validé. Et cela vous permet de vérifier avant de le faire. Vous êtes en train de vérifier si cela est déjà créé ou non, car nous n'avons pas vraiment besoin créer, puis de définir la variable si elle a déjà été définie précédemment. C'est donc ce que nous sommes en train de faire. Donc, si elle n'est pas valide, si cette variable ne contient rien, cela signifie que nous ne l'avons pas encore créée. Si elle n'est pas valide, nous voulons créer cette variable. Cependant, si cette variable est valide, qui signifie que nous avons déjà exécuté ce code auparavant, nous voulons simplement l' ajouter à la fenêtre d'affichage comme ça. Nous n'avons donc pas besoin de le créer encore et encore si nous l'avons déjà créé auparavant, n'est-ce pas, c'était tout pour le widget ouvert. Le widget de fermeture est beaucoup plus simple. Encore une fois, faites glisser le curseur à partir d'ici et dites « activer l'énumération ». Donc, en fonction de ce que nous voulons clôturer, ce cas, nous voulons fermer l'inventaire. Reprenons donc l' inventaire ici, cliquez avec le bouton droit de la souris, convertissez-le pour valider son obtention. Et si cela est ouvert, cela signifie que oui, si c'est valide, cela signifie que l' inventaire est ouvert. Nous voulons sortir d'ici et dire Supprimer de la liste des parents. Et voici comment je supprime l' interface utilisateur des fenêtres d'affichage. Très bien, maintenant nous avons terminé et juste une brève explication avant de terminer, juste pour que nous ne soyons pas trop confus à ce sujet. Permettez-moi donc de le supprimer pour le moment. Maintenant, nous avons créé cet événement personnalisé ici et il s'exécute sur le client. Par exemple, je veux ouvrir le jeu de départ ici. Je veux ouvrir l'inventaire, disons ouvrir les widgets. Nous appelons donc ici cet événement que nous avons organisé. Nous sélectionnons comme widget, l'inventaire, car n'oubliez pas que dans notre énumération, nous n'avons pas plus de valeurs. Disons que j'ai ajouté une autre valeur plus tard, que je l'ai appelée boutique d'armes, par exemple . Cliquez sur Enregistrer, tout enregistrer. Maintenant, je peux voir à l'intérieur de ma manette que je peux sélectionner l'arme la plus précise. Et supposons que cela passe jusqu'ici et que le widget s'ouvre. Maintenant, vous pouvez voir que je peux faire autre chose avec un magasin d'armes. J'aurais pu créer un autre widget pour l'arme Sharp et l' afficher dans la fenêtre d'affichage, voir à quel point il est pratique d'avoir des énumérations. Permettez-moi de supprimer celui-ci pour le moment et de revenir en arrière. Donc, dans le graphique des événements, disons que j'ai appelé , il suffit de le remettre en inventaire. C'est ce que j'appelle l'inventaire ouvert-clôture. J'ai sélectionné l'inventaire comme entrée pour le widget. Et je le sélectionne ouvert comme ça. Et cela signifie que ça va passer par ici. Il sait que ce booléen est vrai, ce qui signifie qu'il apparaît ici et ouvre mon widget, et il sait ce que c'est parce que je l'ai configuré ici. Maintenant, je vais aller ici et ajouter l' interface utilisateur de l'inventaire à ma fenêtre d'affichage. Il ajoute donc cette interface utilisateur ici, inventaire WB à la fenêtre d'affichage. Et voici l'inventaire. Cela n'a pas l'air bien parce que nous ne l'avons pas encore vraiment terminé, car nous devons également le programmer. Mais c'est essentiellement ce qui se passe. Si ce paramètre est défini sur false. Ça va être faux ici. Et cela va supprimer l' inventaire de l'écran. Très bien, alors maintenant, supprimons cela ici. Nous ne voulons pas ouvrir l'inventaire lorsque nous commençons à jouer au jeu. Cependant, ce que nous voulons faire , c' est tout fermer ici. Revenons au lecteur Blueprints et à notre lecteur BP ici. Donc, lorsque nous cliquons sur Ouvrir l'inventaire, nous voulons exécuter ce code ici dans notre contrôleur appelé widgets ouvert-fermeture. Et nous voulons ouvrir l'inventaire, appuyez sur le bouton Ouvrir l'inventaire. Cependant, n'oubliez pas que notre code se trouve à l'intérieur la manette du joueur et que nous sommes maintenant à l'intérieur du joueur. Alors, comment faire pour que cet événement, qui se trouve à l'intérieur de la manette du joueur, puisse être joué ici et par le joueur Maintenant, si vous avez suivi mes cours précédents, vous pouvez essayer de le faire vous-même. Tu devrais probablement en être capable. Toutefois, si vous êtes nouveau ici ou si je ne m'en souviens pas, aborderons la question dans la prochaine leçon, car nous devons maintenant parler de la communication par Blueprint, aborderons la question dans la prochaine leçon, car nous devons maintenant parler de la communication par Blueprint, qui consiste à communiquer entre deux plans différents. 15. 3.06 Introduction à la communication des plans directeurs: Bonjour et bon retour. Nous allons donc maintenant parler de la communication Blueprint. Et ce qu'est la communication Blueprint. Nous communiquons simplement entre différentes classes de plans. Donc, dans ce cas, nous voulons ouvrir l'inventaire. Les événements d'ouverture et de fermeture du widget se trouvent à l'intérieur de la manette du joueur. Alors, comment pouvons-nous obtenir les informations d' une autre classe Blueprint auprès du joueur ? Donc, ce que nous devons essentiellement faire en premier lieu, obtenir la référence de cette manette de jeu. Je vais supprimer cette chaîne d'impression hello, qui l'imprime simplement à l'écran. Maintenant, ce que nous devons faire est de cliquer avec le bouton droit de la souris ici et d'écrire get controller. Et cela renvoie la manette à cet acteur. Donc, vous obtenez cette manette à afficher ici. Nous devons maintenant spécifier de quel contrôleur vous parlez. Celui-ci n'est qu'un contrôleur général. N'oubliez pas que nous avons créé notre modèle personnalisé ici. Nous devons maintenant indiquer au moteur qu'il s' agit en fait d'un contrôleur de disque en particulier. C'est donc là que la communication entre en jeu. C'est ce qu' on appelle le coût de conduire d'ici et de dire jeté. Et maintenant, nous devons écrire le nom du plan du contrôleur ici. Alors disons PC Town. Donc celui-ci a coûté à PC4 haut de la ville et le déclencheur, connectons-le ici. Maintenant, en tant que manette , je peux accéder à tout ce qui se trouve à l'intérieur de cette manette de jeu, y compris à ces variables. Donc, ainsi que ces fonctions ici. C'est donc en cela que Blueprint Communication est très, très simple. Vous obtenez la manette. Il ne s'agit que d'une référence générale. Ensuite, nous précisons quel contrôleur parlez-vous spécifiquement ? Je parle de ce PC en panne comme celui-ci. Maintenant, nous pouvons dire que je veux lancer cet événement appelé Ouvrir le widget Fermer. Le joueur que je peux faire glisser d'ici et dire ouvrir fermer le widget, celui-ci ici. Maintenant, je peux vraiment le faire. Donc, par exemple, pour l'inventaire, vous voulez l'ouvrir. Et si je compile et que je clique sur Play, je peux maintenant cliquer sur I sur le clavier et vous pouvez voir nos inventaires réellement ouverts. Nous pouvons maintenant cliquer à nouveau sur I car il ne se fermera pas. Nous devons tout de même programmer cette logique. Alors fermons-le. Il s'agit donc essentiellement de la communication Blueprint, très, très simple. Cependant, il y a un petit problème avec le casting. Le casting fait des références concrètes et indique quel point les références difficiles doivent être chargées chaque fois que le jeu se charge. Cela ralentira donc votre jeu. Parfois, vous y voyez des jeux très, très lents lorsqu'ils se chargent. Et c'est peut-être parce qu'ils l' ont intégré à de nombreuses choses dans leur jeu. Imaginez que votre jeu peut être très, très volumineux lorsque vous l'avez terminé. Et peut-être que vous avez 100 100 objets qui coûtent deux ou 100 plans qui en coûtent deux. Et tout cela crée des références tangibles, ce qui ralentit votre jeu. Je ne dis pas que vous ne devriez jamais l'utiliser, mais vous devriez éviter de l' utiliser chaque fois que vous le pouvez. Et dans ce cas, nous pouvons réellement l'éviter en utilisant ce que l'on appelle des interfaces Blueprint. Passons donc à la leçon suivante et parlons des interfaces Blueprint. 16. 3.07 Interfaces du plan directeur: Maintenant que nous avons parlé de l'établissement des coûts, parlons maintenant des interfaces Blueprint. Ce sujet est donc généralement un peu difficile pour les débutants, mais je vais essayer de l' expliquer du mieux que je peux. Mais maintenant, fermons tout ici et ici et le dossier Blueprints. Cliquez avec le bouton droit de la souris, accédez aux plans et créons celui-ci sous nom d'interface Blueprint. Et d'habitude je le donne à int comme préfixe. Et pour celui-ci, appelons-le le nom du plan auquel je veux faire référence. Je veux donc faire référence à cette manette noire pour obtenir l'événement d'ouverture et de fermeture de mon widget. Appelons donc cela un contrôleur à une couche. Maintenant, je vais également cliquer avec le bouton droit de la souris et créer un nouveau dossier appelé Interfaces, juste pour rester cohérent , et le faire glisser dans ce dossier. Et laissez-moi aller dans le dossier, ouvrez mon interface Blueprint. Alors, quelles interfaces Blueprint vous pouvez voir ici. Très, très simple. Je ne peux vraiment rien faire dans ce graphique. Je ne peux rien déplacer ni faire quoi que ce soit. Et nous ne sommes pas vraiment censés travailler ici. Ce que nous sommes censés faire ici à droite, créer des fonctions. Donc, cette première fonction, vous pouvez cliquer dessus. Vous pouvez cliquer sur F2 sur le clavier pour le renommer. Et je vais l' appeler get's Layout Controller reference parce que c'est ce que j'essaie de faire. Ici, dans la sortie. Cliquons dessus et définissons une variable ici. Maintenant, vous devez sélectionner ce à quoi vous voulez faire référence. Je veux faire référence à ma manette de jeu appelée EC Hook Town. Alors, sélectionnez-le ici. Et maintenant, appelons-le manette de lecteur. OK, donc c'est en fait ça pour le moment. Maintenant, nous avons créé cette fonction permet de contrôler ou de référencer les couches, ou nous essayons d'obtenir la référence pour ce contrôleur de lecteur PC. Bien, fermons maintenant cette interface et revenons aux plans. Et nous devons entrer dans cette manette de jeu et y ajouter l'interface que nous venons de créer. Et nous le faisons en cliquant sur les derniers paramètres. Et ici, dans les interfaces, cliquons ici et recherchons les extrémités du contrôleur de couche, c'est celui que nous venons de créer. Cliquez donc dessus ici. Maintenant, compilons. Si vous le faites maintenant, nous pouvons voir ici que nous avons un onglet appelé interfaces. Et si vous cliquez sur la flèche, vous verrez votre interface. Une toute petite erreur que beaucoup de gens commettent ici. Si vous revenez à l'interface, vous devez penser à cliquer sur compiler. Sinon, vous ne le verrez pas ici lorsque vous ajouterez votre interface. Pensez donc à cliquer sur compiler. Très, très important de toujours compiler votre code. Maintenant, dans l'interface, nous pouvons double-cliquer dessus. Pour cela, pour cela ici, pour cette référence à cette variable, nous pouvons faire glisser la souris à partir d' ici et écrire self. En gros, ce que cela demande, c'est que nous devons spécifier quelle est cette variable de ville EC ****, qu'est-ce que c'est ? Et en gros, nous sommes en train traîner ici et de nous dire nous-mêmes. Parce que n'oubliez pas que nous sommes déjà dans ce plan, la manette de jeu à laquelle nous essayons de faire référence. Donc, en gros, nous disons que cette référence variable est self, signifie tout ce dans quoi nous nous trouvons actuellement, qui signifie tout ce dans quoi nous nous trouvons actuellement, à savoir cette classe de plan ici. Maintenant, ce que nous pouvons faire, c'est revenir aux plans, au joueur et au joueur BP. Revenons donc ici. Au lieu de lancer, supprimons simplement cette partie. Nous avons ici le contrôleur général. Ainsi, au lieu d'utiliser un costume, nous pouvons désormais utiliser le glisser-déposer obtenir leur référence de contrôleur, car c'est ce que nous avons créé dans cette fonction ici. Faites-le glisser ici et dites qu'il s'agit d'une référence au lecteur, à la manette, et qu'il doit indiquer un message à la fin, ce qui signifie que cela provient d'une interface Blueprint. Il s'agit donc d'une fonction de l'interface Blueprint, en cliquant dessus ici. Et maintenant, nous pouvons le connecter ici et d'ici, comme avant, nous pouvons accéder à tout ce qui trouve à l'intérieur de ce contrôleur de couche. Et maintenant, nous pouvons dire que le widget Open Llows est le suivant. Et maintenant, il fonctionne pleinement. Vous pouvez voir que si je clique sur jouer et que je clique sur I sur mon clavier, cela ouvre l'inventaire comme avant, et nous évitons le jeûne qui créait une référence difficile, ce qui peut ralentir notre jeu. C'est donc bien mieux à faire. Je vais donc le parcourir rapidement parce que je sais que c'est un sujet confus pour certains et qu'il l' était aussi pour moi il y a quelque temps lorsque j'ai commencé. Revenons donc ici. Nous avons créé une interface Blueprint. À l'intérieur d'ici. Et dans cette interface Blueprint, nous venons de créer une fonction appelée getline Controller reference, laquelle nous avons ajouté la référence de contrôleur de joueur à laquelle nous voulons faire référence. Et nous voulons faire spécifiquement référence à celui-ci. Maintenant, nous sommes allés sur ce contrôleur et nous avons ajouté l'interface et les paramètres de classe. Nous l'avons ajouté ici. Cela a fait apparaître cette fonction d'interface. Et ce que nous avons fait ici, nous devions maintenant spécifier si je déconnecte simplement cette variable de contrôleur municipal P****. Si vous ne le faites pas, il ne sait tout simplement pas de quoi vous parlez. Ceci. N'oubliez pas que si vous le mettez ainsi, cela signifie que cette variable est vide. Et quoi que vous essayiez de faire ici, cela vous donnera une erreur. Donc, si je clique sur jouer ici et que je clique sur moi, sur mon clavier, rien ne se passe. Et si je quitte, cela vous donnera une erreur disant que x n'est aucun accès, aucun signifie simplement que cette variable est vide. Je ne sais pas à quoi vous essayez d' accéder ou ce que vous essayez de faire avec cette variable, elle est vide. Je n'ai aucune information. C'est pourquoi vous devez dire self, car nous définissons essentiellement cette variable. Nous disons que cette manette nous parlons est elle-même, est-à-dire qu'il s'agit d'un plan. Quel que soit le plan dans lequel nous nous trouvons, cette autoréférence est celle-ci. Donc, le facteur PC, c'est la façon dont nous faisons référence à la manette du joueur. Et maintenant, à l'intérieur du lecteur, nous pouvons utiliser cette fonction Blueprint Interface. Et nous savons ce qu'est la variable parce que nous avons fait cette auto-référence ici. Et à partir de là, nous pouvons désormais accéder à tout ce qui se trouve à l'intérieur de ces contrôleurs de couche, ce qui nous permet même d'accéder à cette WB créée si nous le voulions. Vous pouvez voir ici que si je fais glisser la souris à partir d'ici et que je dis WB main, je peux également obtenir cette variable. Très bien, c'était donc tout pour le plan et les surfaces. Maintenant, nous pouvons ouvrir l'inventaire. Mais allons-y dans la leçon suivante et finalisons cela, car nous devons également clôturer l'inventaire. 17. 3.08 Affichage de l'inventaire: OK, c'est la dernière étape pour ouvrir et fermer l'inventaire. l'heure actuelle, le problème est que lorsque nous cliquons sur I sur le clavier, l'inventaire continue d'ouvrir, nous devons donc également le fermer. Je vais revenir à la manette du joueur. Et à l'intérieur, créons une nouvelle variable, une valeur booléenne appelée is, disons que l'inventaire est ouvert. Nous allons maintenant contrôler l'ouverture, en fermant par ce booléen. Donc, ici, dans le widget ouvert, allons-y. Alors pourquoi ne pas ouvrir l'inventaire et l'ajouter à la fenêtre d'affichage. Prenons ça ici. Et n'oubliez pas que vous pouvez maintenir la touche Alt enfoncée, la faire glisser et la définir ici pour définir la variable. Oui, donc si vous voulez le faire glisser et sélectionner Définir ici également. Nous allons donc définir ce booléen sur true. L'inventaire est donc ouvert, c'est vrai. Et lorsque nous fermerons l'inventaire, donc si vous revenez au graphique des événements et que vous cliquez sur le widget Fermer, nous allons le définir sur false. Bon, maintenant c'est faux. Et revenons au joueur. Donc, selon que c'est vrai ou faux, cette variable, nous voulons ouvrir ou fermer l'inventaire. N'oubliez pas que nous sommes déjà en train de communiquer cette interface Blueprint avec la manette du joueur afin de pouvoir accéder à tout ce qui se trouve à l'intérieur de cette manette noire, y compris à la variable que nous venons de créer communiquer cette interface Blueprint avec la manette du joueur afin de pouvoir accéder à tout ce qui se trouve à l'intérieur de cette manette noire, . Nous pouvons maintenant partir d' ici en voiture et nous demander : est-ce que les inventaires sont ouverts ici ? Nous pouvons sélectionner le booléen ici afin obtenir la valeur. Et maintenant, nous pouvons créer une branche. Donc, branche droite. Donc, si l'inventaire est ouvert, nous voulons le fermer. Copions-collons celui-ci ici. Et si l'inventaire n' est pas ouvert ici, nous allons l'ouvrir. Faisons-les glisser ici, connectons-les aux cibles. Et si vous voulez l'améliorer, vous pouvez simplement double-cliquer sur la ligne ici et vous pourrez l'organiser davantage. OK, donc, en gros, ce qui se passe ici, c'est que nous nous demandons si l'inventaire est ouvert. S'il est déjà ouvert lorsque nous cliquons sur le bouton, nous voulons le fermer. Si nous cliquons sur le bouton et que l'inventaire n'est pas ouvert, nous voulons en fait ouvrir l'inventaire. Et sauvegardons tout. Cliquons sur Play. Et maintenant, nous allons cliquer sur I pour ouvrir l'inventaire. Et je vais cliquer à nouveau sur I, et vous pouvez voir qu'il le ferme. Cliquez donc sur l'œil pour l'ouvrir. On peut encore une fois, ça le ferme. N'oubliez pas que j'ai également trouvé la touche B si vous appuyez sur la touche B. Et ce n'est que dans la couche des plans. Ici, si vous cliquez sur les contextes cartographiques, si vous avez également indiqué le BQ de l'inventaire, en fonction des touches que vous avez définies, vous pouvez appuyer sur ces touches ici et sur le joueur pour ouvrir l'inventaire. Maintenant, cela fonctionne comme il se doit. 18. 4.01 Créer le plan d'ensemble de base: Nous sommes maintenant prêts à passer aux objets. Et si nous créons les objets démarrables avant de coder l'inventaire, c'est parce que nous avons réellement besoin d'objets qui doivent figurer dans les emplacements d' inventaire. allons donc créer les éléments avant de poursuivre l' Nous allons donc créer les éléments avant de poursuivre l'inventaire dans le dossier Blueprint. Cliquez maintenant avec le bouton droit ici et créez un nouveau dossier. Appelons cela des objets. Et à l'intérieur, cliquez avec le bouton droit de la souris. Accédez au cours Blueprint. Et vous pouvez créer un acteur ici, car les objets ne sont que des acteurs statiques à l'intérieur du niveau. Par exemple, cette plante aurait pu être un objet. Cet outil aurait pu être un objet. Ce ne sont donc que des acteurs. Si vous lisez ici, il est dit qu' un acteur est un objet qui peut être placé ou réagir dans le monde. Nous allons donc sélectionner l'acteur et l'appeler BP Item Base. Donc, généralement, je crée une classe de base si je veux créer plusieurs de la même chose. Donc, si je veux créer plusieurs éléments, je crée une classe de base. Ensuite, à partir de cette classe de base, je peux créer les éléments. C'est ce que l'on appelle des plans pour enfants, mais nous en parlerons dans la prochaine leçon. Pour l'instant, je veux que vous accédiez à la base d'objets. Et à l'intérieur, allons-y et ajoutons un composant. Et cherchons un maillage statique. Et un maillage statique nous permet simplement d'ajouter les éléments que nous avons dans notre dossier. Et appelons cela un seul élément. D'accord ? Et vous pouvez voir ici que pour le maillage statique, nous pouvons ajouter un maillage, par exemple, nous pouvons ajouter la banane en tant qu'article, etc. Mais pour le moment, vous êtes dans la classe de base et nous ne voulons pas vraiment attribuer quoi que ce soit ici. Nous allons le faire plus tard. Je voulais juste créer cet article, des composants de maillage statiques. Ajoutons-en un autre en cliquant sur cet élément. Ensuite, nous allons ajouter, et ajoutons une collision. Ajoutons une sphère de collision, sphère de collision sélectionnée. Je vais l'appeler sphère de collision. Et si j' ajoute celui-ci, c'est parce que nous devons interagir avec l'objet. Alors imaginez que si nous accédons à des objets Assets, imaginez que si cet objet se trouve dans le monde, alors nous avons besoin d'une sphère de collision. Parce que nous devons savoir quand le joueur entre réellement en collision avec cet objet pour pouvoir le perdre ou non. Supprimons celui-ci pour le moment. Et pour ce qui est de l'article, revenons ici. Revenons à la collision. Donc, pour la collision, pour cet objet, je ne veux pas qu'il y ait de collision Supprimons les événements de superposition. Supprimons celui-ci. Et disons ici, dans le préréglage de collision, qu'il n'y a pas de collision. Compilons. Revenons maintenant à la sphère de collision. Maintenant, pour la sphère de collision en haut, je vais juste porter le rayon à 100 s. Vous pouvez donc regarder ici et voir si vous revenez aux objets et que vous les déposez en fonction du niveau, vous pouvez voir que c'est le rayon dans lequel le joueur peut interagir avec l'objet. Donc, si vous l'augmentez, ce joueur peut interagir avec l'objet lorsqu'il se trouve à l'intérieur de cette sphère. Vous pouvez donc simplement ajuster le rayon comme vous le souhaitez pour votre jeu. Je voulais juste le mettre à 100 pour l'instant. Je vais supprimer celui-ci dans le niveau et redescendre en collision. Et à l'intérieur, nous voulons générer des événements qui se chevauchent, donc c'est correct. Celui-ci est également correct. Et ici, dans le préréglage de collision, je veux juste que mon joueur interagisse avec cette sphère. Je ne veux pas que quelqu'un d'autre le fasse. Allons-y et disons, disons que le client est ici et que la collision est prédéfinie. Je vais tout ignorer sauf mon étang, qui est ma couche. Compilons. Et avant d'oublier, remontons ici dans la base d'objets BP dans les valeurs par défaut de la classe. Et ici, si vous faites défiler l'écran vers le haut, vous devez cliquer sur celui-ci, car n'oubliez pas que nous sommes en mode multijoueur et que la réplication signifie simplement, encore une fois, comme avant, que vous reproduisez les informations au client. Parce qu'ici, lorsque vous jouez en tant que serveur et que nous avons ici le client. Donc, si vous ne reproduisez pas le plan, le client ne pourra pas le voir. Seulement le serveur, qui est ce gars ici. Le serveur pourra voir l'élément, mais les clients, tous les clients qui le connectent à ce serveur, ne pourront pas voir l'élément. C'est ce que signifient les répliques. Il réplique les informations du serveur et envoie aux clients afin qu'ils puissent les consulter . Maintenant, nous voulons que les clients voient cet article. Nous allons donc cliquer sur les répliques, et nous allons également reproduire le mouvement de l' objet au cas où celui-ci bougerait. Et c'était tout pour la base d'objets. Allons-y, fermons ceci et passons à la leçon suivante. 19. 4.02 Introduction aux plans d'enfants: Maintenant que nous avons créé notre base d'objets, parlons maintenant des plans pour enfants. Revenons donc au dossier Blueprints et passons aux éléments. Maintenant, pour cette base d'objets, si j'ai créé une classe d'objets de base, c'est parce que nous voulons créer des plans pour enfants à partir de celle-ci. Et je vais expliquer ce que c'est si bien. Sur celui-ci, vous pouvez cliquer avec le bouton droit de la souris ici, vous pouvez voir quelque chose appelé classe Create Child Blueprint. Donc, en cliquant sur celui-ci, je vais juste l' appeler quelque chose de aléatoire. Nous avons maintenant une classe Child Blueprint laquelle vous pouvez passer la souris dessus pour indiquer que la classe parent est la base d'objets BP. Alors, qu'est-ce que cela signifie ? Cela signifie que si je modifie la base d'éléments, elle héritera de ces modifications et les appliquera à tous les enfants. Permettez-moi donc de cliquer à nouveau avec le bouton droit de la souris et de créer une autre classe Blueprint enfant. Assurez-vous simplement que cela provient de l' objet sur lequel vous le faites. Donc, en le faisant ici, et je vais juste l'appeler à nouveau quelque chose de aléatoire, cliquer avec le bouton droit sur l'article, le taux de base d'un autre enfant et l' appeler à nouveau, d'accord ? Nous avons maintenant trois enfants. Nous avons celui-ci, celui-ci et celui-ci. Et ce sont des enfants de la base d'objets. Maintenant, si je passe en revue l'une des classes Child Blueprint, vous pouvez constater qu'elle hérite déjà du composant de maillage statique que nous avons créé dans la base d'objets et hérite également de la sphère de collision. N'oubliez pas qu'il s'agit de composants que nous avons créés à l'intérieur de la base d'articles. Maintenant, dans la catégorie des objets, si je crée quelque chose, par exemple si je veux créer une variable et dire, est-ce une bulle de Troy ou quoi que ce soit d'autre, quelque chose d'aléatoire ? Voici Troy Abel et je clique sur compiler. Maintenant, si je clique sur l'un des plans de l'enfant, vous pouvez maintenant voir les dernières valeurs par défaut. Maintenant, je peux voir que cette variable peut être détruite, même si je n'ai aucune variable à l'intérieur. Cela est dû au fait qu'il hérite de tout ce que vous créez dans la base d'objets. Maintenant, je peux vraiment dire s'il est détruit ou en panne. Et c'est très pratique car toutes les classes Child Blueprint ont désormais les classes Child Blueprint les mêmes fonctionnalités. Je peux les régler pour détruire les bulles ou les noix. Nous faisons donc cela pour accélérer le développement de vos jeux. Donc, au lieu d'entrer dans chacun d'eux et de créer un double booléen détruit en entrant ici, créer un booléen est détruit. Donc, au lieu de le faire 100 fois, nous pouvons simplement le faire une fois dans le plan parent ici. Ensuite, tous les enfants hériteront de ces paramètres. Il en va de même pour les personnages. Disons que vous créez de nombreux skins, de nombreux skins de joueurs. Vous souhaitez évidemment créer une classe de plan principale, telle qu'un parent, pour le skin, puis créer des classes de plans pour enfants à partir de cette classe parent de skin de base. La raison pour laquelle vous recommencez si vous souhaitez modifier des paramètres spécifiques pour les 100 skins que vous avez créés, vous pouvez le faire une seule fois dans la classe parent Blueprint, la classe de base ici, et elle héritera de la sienne, tous ces enfants en hériteront également. D'accord. C'était donc ça. Très, très basique. Permettez-moi donc de les supprimer ici. Forts de ces connaissances, nous sommes maintenant prêts à créer tous les objets. 20. 4.03 Créer les éléments: OK, allons-y et créons tous les éléments. Permettez-moi de cliquer avec le bouton droit sur la base d'articles. Création de la classe Child Blueprint. Et pour la première, je vais l'appeler BP Banana. Et pour les objets que nous allons créer à nouveau, vous pouvez cliquer sur les actifs ici, les objets, et vous pouvez les consulter ici. Ce sont tous les objets que nous voulons fabriquer pour pouvoir les piller et les avoir dans notre inventaire. Permettez-moi de revenir aux articles. Cliquez à nouveau avec le bouton droit de l'objet et créons une saveur BP. Cliquez à nouveau avec le bouton droit de la souris avec un autre enfant, un couteau EP , un autre, et appelons cette méthode BP, océan. Un autre nuage de plans. Assurez-vous simplement que la classe parent est une base d'éléments. Assurez-vous de ne pas cliquer sur quelque chose de mal ici. Donc, le taux de base de l'objet , le plan, la pression artérielle se rencontrent, et le dernier concerne les potions d'endurance. Voici donc le titre VP Stamina Ocean. Bien, maintenant que nous avons tous les objets, ouvrons-les tous ici. Donc, le levier à bananes, la manipulation du couteau, la viande et l'endurance, les potions. Mais passons d'abord à la banane, cliquez sur l'article. Et ici, dans le maillage statique, vous devez lui attribuer le maillage statique. Je vais donc simplement rechercher ici banane sélectionnée ici, et la voici. Eh bien, maintenant, il est ajouté ici en tant qu'article. OK, compilons. Passons au couperet comme à un objet. Allez-y et sélectionnez le couperet. Il suffit de le rechercher, de le compiler. Passons maintenant au couteau et recherchez le couteau. C'est le même processus encore et encore. Passons à l'action sur la ménopause, cherchons une potion de manoir, compilons. Passez à la suivante. L'objet rencontre la compilation et le dernier, des potions d' endurance et cliquez sur l'objet Static Mesh. Allez-y, recherchez l' endurance et sélectionnez ce mouvement d'endurance. Maintenant, cliquons sur Fichier et tout enregistrer au cas où. OK, c'était donc ça. Et avant de terminer, je voudrais faire une dernière chose. Fermons tout. Je souhaite créer une variable appelée nom de l'article et nous l'utiliserons plus tard. Nous n'allons pas l'utiliser maintenant. Mais encore une fois, n'oubliez pas que vous n'avez pas à accéder à chacune de ces classes Child Blueprint et à créer une variable appelée name. Vous pouvez simplement accéder à la base d'objets. Supprimons celui-ci à cause de cela, nous l'avons juste créé aussi pour voir l'héritage. Créons donc une autre variable maintenant. Appelons cela le nom de l'article. Et pour le nom de l'élément, le type de variable, nous allons en faire une chaîne. Cliquez sur Compiler. Et comme vous le savez, une chaîne n'est qu'une ligne de texte, nous pouvons donc lui donner un nom d'élément. Et peut-être que si vous avez oublié, pourquoi n'avons-nous pas choisi des textes à la place d'une chaîne ? La raison pour laquelle nous avons choisi une chaîne est, rappelez-vous, un texte est la même chose, sauf que vous pouvez voir ce drapeau apparaître lorsque vous choisissez du texte. Et cela est dû au fait que le texte est localisable, ce qui signifie que vous pouvez traduire tout ce que vous écrivez ici dans d' autres langues ici dans Unreal Engine. Donc, dans Window, je crois que c'est le cas, ou en fait c'est dans les outils. Vous pouvez voir ici que nous avons ce que l'on appelle un tableau de bord de localisation. Et à l'intérieur, vous pouvez traduire votre jeu dans différentes langues, par exemple allemand, en japonais, en chinois, en arabe, etc. Vous pouvez traduire ces variables de texte. Toutefois, si vous choisissez une chaîne et que vous souhaiterez traduire votre jeu ultérieurement, vous ne pourrez pas le faire. Vous devez sélectionner les textes pour traduire le texte que vous souhaitez écrire ici. Je ne veux donc rien traduire. Ce nom de chaîne ne sera en fait que utilisé comme identifiant. Alors, sauvegardons tout. Je voulais juste être une corde. Nous avons maintenant créé ce nom d'article dans la base d'articles. Alors maintenant, chaque enfant ici a cet élément nommé variables. Je vais donc tous les ouvrir. Sur le premier. Vous pouvez le voir ici, il est indiqué le nom de l'article. Et si j'ouvre simplement l'éditeur de plans complet pour vous le montrer, et que la classe est définie par défaut pour cet enfant de plan, vous pouvez voir la variable de nom de l'élément chez Peers. Maintenant, pour le nom de l'article, nous pouvons écrire banane. C'est la compilation de bananes et pour la tige et une potion, appelons-la endurance, océan. Exactement comme ça pour la viande, disons que c'est de la viande. Et pour la partie consacrée aux stimuli de la ménopause, ici. Et pour les hommes et la potion, appelons-la Manner Ocean. Et pour le couteau, cliquez sur les valeurs par défaut de la classe, n'est-ce pas ? Couteau, compile. Et pour le couperet, écrivons levier. D'accord, et n'oubliez pas que cette vue apparaît avec ce bouton ici. Cela est dû au fait que la classe The Blueprint est vide et c'est pourquoi elle s' affiche ainsi. Bon, maintenant nous avons attribué tous les noms. Nous n'allons pas l'utiliser maintenant, mais nous allons l'utiliser très, très bientôt et vous verrez pourquoi j'ai créé cette variable de nom. Fermons tout maintenant et passons à la leçon suivante. 21. 4.04 Introduction aux structures: Bien, maintenant que nous avons créé tous les éléments, nous sommes prêts à créer les informations relatives aux éléments. Donc, le nom de l' article, la miniature, donc l'image qui apparaît à l'intérieur de l' inventaire lorsque vous faites allusion à l'article, la catégorie de l'article, etc. Jusqu'à ce que toutes les informations soient réunies pour un seul élément, nous devons définir toutes les informations. Donc, avant de le faire, nous pouvons réellement le faire à l'intérieur de structures. Passons aux plans. Et ici, cliquez avec le bouton droit de la souris et créez un nouveau dossier. Appelons-le. Vous pouvez appeler les structures, mais je les appelle généralement simplement des structures. C'est à vous de décider. À l'intérieur d'ici. Cliquez avec le bouton droit de la souris. Accédez aux plans et sélectionnez celui-ci appelé structure ou celui-ci. J'utilise généralement S t comme préfixe pour les structures. Et appelons-le informations sur l'article, car nous voulons créer les informations relatives à l'article. Double-cliquez dessus et vous verrez que voici à quoi ressemble ma structure. Une structure n'est donc qu'un ensemble de variables. Donc, au lieu d' accéder aux articles, par exemple ici, dans la base d'articles. Au lieu d'aller ici et de créer des variables, par exemple si l'article est empilable, ou peut-être souhaitez-vous avoir la miniature de l'élément, ou peut-être préférez-vous avoir la catégorie pour les yeux que vous pouvez voir. Cela touche à de nombreuses variables ici et parfois cela devient compliqué, donc nous ne le faisons généralement pas. Permettez-moi simplement de les supprimer ici. Mais vous pouvez créer une structure à l'intérieur d'ici. Vous pouvez créer toutes les variables. Par exemple, je voulais le nom de l'objet, par exemple, la valeur de la pièce si je veux le vendre et vous pouvez choisir le type de cette variable. la valeur de la pièce si je veux le vendre Par exemple, pour les pièces, je peux sélectionner un chiffre flottant, et pour le nom, je peux sélectionner un texte parce que je veux le traduire plus tard. Nous avons maintenant toutes ces variables à l'intérieur d'une structure. Donc, ce qui est cool maintenant, c'est si je passe à la base d'éléments, par exemple . Je peux créer une nouvelle variable ici en tant que type de variable. Je peux saisir le nom de la structure. Donc SC, informations sur l'article et je peux les sélectionner ici et je peux les enregistrer. Et maintenant, vous pouvez voir si je clique sur ma variable. J'ai maintenant toutes les informations ici pour cet article. Je peux donc avoir les informations sur l' article à l'intérieur de cette structure. Et si je clique sur l'un des plans de mon enfant, je peux voir ici les valeurs par défaut de la classe. Vous pouvez maintenant voir toutes ces informations, le nom de l'article, la valeur de la pièce et toutes les variables que vous ajoutez. Tellement cool. Les structures ne sont qu'un ensemble de variables que vous définissez ici. D'accord, supprimons tout cela pour le moment, et supprimons-le ici de la liste des éléments, car nous allons créer quelque chose de bien plus cool que cela. Laisse-moi tout enregistrer. Maintenant que vous savez ce qu'est une structure, passons à la création de la structure d'information de l'article. 22. 4.05 Structure d'information sur l'article: Très bien, allons-y et créons la structure d'information de l'article. Cliquons sur les structures. Ouvrons maintenant la structure d'informations de l'article. Et à l'intérieur, ce que nous voulons, c'est le nom de l'article. Créons une nouvelle variable. Nous voulons une miniature, c'est-à-dire l'image qui apparaît à l'intérieur de l'inventaire lorsque nous faisons allusion à Dyson. Et le type ici est une texture 2D, ce qui signifie simplement une image. Et sélectionnez-le ici, référence à l'objet. Et créons une nouvelle variable. Et nous voulons, par exemple une description de l' article. Tu n'es pas obligée. Cela dépend du jeu que vous créez. Certains jeux n' ont pas de description, mais ajoutons-la ici. Je ne sais pas si nous en avons besoin ou non, mais nous en aurons peut-être besoin. Créons donc une description pour l'article. Nous pouvons définir la catégorie de l'article. Choisissons donc celui-ci comme type de variable. En fait, je suis en train de vérifier que j'ai oublié ici. Donc, dans les énumérations, nous ne l'avons pas encore créé. Donc, dans l'énumération, vous pouvez réellement la créer si vous le souhaitez. Comme exercice d'énumération, je veux une énumération avec les catégories de l'élément. Nous avons donc la catégorie « armes, nourriture et potions  ». Vous pouvez les créer et les ajouter à la structure si vous le souhaitez. Essayons maintenant de le faire ensemble Je vais cliquer ici avec le bouton droit de la souris, accéder aux plans et sélectionner l'énumération. Cette seule catégorie d'articles. Je vais l'ouvrir et l'intégrer à cette liste. Rappelez-vous donc qu'une énumération n' est qu'une liste d'éléments. Je veux donc une liste de catégories. Je vais dire armes. Le prochain point que je vais ajouter concerne la nourriture, et le troisième, les océans. Nous avons donc ces trois catégories d'articles. Revenons maintenant aux informations sur l'article pour la catégorie . Je vais la sélectionner ici et dire catégorie d'article E. Donc, quel que soit le nom que vous appelez, l'énumération sélectionnée ici. Ensuite, je vais dire que j'enverrais un cours. Et la classe d'objet est juste là pour que nous puissions faire apparaître l'objet dans le monde si nous le retirons de l'inventaire. Nous allons donc le sélectionner ici et rechercher la base d'articles. N'oubliez pas que nous avons créé la base de l'article. Il s'agit maintenant de la classe d'articles sélectionnée ici et sélectionnez la référence de classe. C'est très important. La référence de classe, différente de la référence d'objet, est que la référence de classe est utilisée lorsque vous générez des objets. Nous voulons donc faire apparaître l'objet lorsque nous le retirons de l'inventaire Nous avons donc besoin de sa classe. Maintenant, ajoutons-en un autre et disons qu'il est sur Summable. Alors, pouvons-nous boire ou manger ce produit ? Et Boolean, c'est juste une question par oui ou par non. C'est donc un booléen et l' autre est empilable C'est donc cet objet empilable dans notre inventaire Pouvons-nous avoir deux objets et le même emplacement, . Pouvons-nous avoir deux objets et le même emplacement, trois objets, etc. Et le dernier, je vais dire la taille maximale de la pile. Alors, combien d'objets pouvons-nous avoir dans un emplacement d'inventaire  ? Par exemple, nous pouvons avoir 99 bananes avant d'en créer une autre, une autre pile. Donc, toute cette taille maximale de pile n' est qu'un entier. Très bien, nous en avons maintenant terminé avec les informations sur l'article. Et au lieu d' ajouter les informations sur l'objet à la glace et à la base sous forme de variable, je vais le faire via un tableau de données. Vous pouvez donc le voir ici, je ne recule pas en ce qui concerne les connaissances. J'essaie de vous montrer comment nous nous y prendrions de manière professionnelle dans un jeu vidéo. Je ne veux pas le faire facilement. Allons-y et découvrons les tables de données et je vais vous montrer une façon très intéressante d'ajouter la structure. 23. 4.06 Introduction aux tables de données: Très bien, allons-y maintenant et parlons des tableaux de données. Donc, dans le dossier Blueprints, cliquez avec le bouton droit de , créons un nouveau dossier et appelons-le tables de données. À l'intérieur, cliquez avec le bouton droit de la souris pour accéder à Divers. Et ici, nous pouvons sélectionner ce que l'on appelle une table de données. Vous pouvez voir ici qu'un tableau de feuille de calcul important est également appelé. Vous pouvez donc cliquer dessus ici. Et maintenant, nous devons sélectionner la structure que vous souhaitez utiliser. Vous avez donc besoin d'une structure avant de pouvoir créer une table de données. N'oubliez pas que nous avons déjà créé notre structure dans la leçon précédente. Nous pouvons maintenant procéder à la sélection de structure d'informations de notre article. Et maintenant, nous pouvons cliquer sur OK. Pour ce tableau de données, nous pouvons l'appeler informations sur les éléments, tableau de données, informations sur les éléments. Ouvrons maintenant cette table de données. Et voici à quoi cela ressemble, très, très simple. Cela ne fait que vous montrer des informations. Vous pouvez voir apparaître ici toutes les variables que vous avez créées à l'intérieur de votre structure. Et pour l'instant, c'est vide. Vous pouvez donc cliquer sur Ajouter si vous le souhaitez, et vous pouvez voir ce qui se passe lorsque vous cliquez sur Ajouter. Un élément sera ajouté à la table de données ici. Vous pouvez donc voir si je continue à ajouter des éléments, je continuerai à en ajouter ici. Ce que vous pouvez faire ici, en cliquant sur le premier, par exemple , vous pouvez voir chaque élément de votre jeu , définir son nom sa miniature. Nous pouvons définir la description de l'article, catégorie, le verre, par exemple , c'est la banane, etc. Ainsi, vous pouvez le voir, vous pouvez définir informations pour chaque élément et avoir de manière bien structurée dans un tableau de données. Maintenant, en gros, c'est ce qu'est une table. Il ne contient que des informations. Nous avons donc la structure. Et avec cette structure, nous créons un tableau de données afin que, pour chaque élément, nous puissions réellement spécifier des informations ici. Et nous allons le faire de manière beaucoup plus simple. D'habitude, on ne l' utilise pas à l'intérieur. Ainsi, au lieu d'utiliser des tableaux Delta, nous n'avons pas l'habitude d'entrer ici et d'y écrire le nom, par exemple la miniature, etc. Je vais vous montrer une façon plus complète de procéder. Allons-y et cliquez simplement sur Supprimer pour chacun d'entre eux ici, supprimez, supprimez, supprimez. Maintenant, il est à nouveau vide. Et sauvegardons tout. Fermons-le et passons à la leçon suivante Je vais vous montrer comment ajouter les informations relatives à l'élément. 24. 4.07 Informations sur l'article: OK, maintenant je veux que vous entriez dans Google Drive. Si vous n'en avez pas, veuillez créer un compte. Vous pouvez également utiliser Excel si vous avez Excel, mais c'est généralement le moyen le plus simple de l'utiliser ici Google Sheets, lorsque vous avez un compte ici dans Google, accède à Google Drive, ce que vous pouvez faire ici. Et en fait, ici. Et vous pouvez sélectionner Drive. Lorsque vous êtes dans Google Drive, cliquez avec le bouton droit de la souris ici et créez simplement un nouveau Google Sheets. Et Google Sheets, je vais juste l'appeler tables d'inventaire des RPG, juste au cas où nous en aurions plusieurs. Maintenant, nous avons celui-ci ici, et je vais juste le rendre un peu plus joli. C'est à vous de décider comment vous souhaitez concevoir le vôtre. Très bien, maintenant j' ai stylisé le mien. J'utilise juste celui-ci au centre. J'utilise celui-ci et j' utilise celui-ci ici. D'accord ? Donc, une autre chose très importante, c'est à vous de décider comment vous voulez le concevoir. Maintenant, ici, nous voulons écrire ID. Donc, là-haut, je vais juste les faire toutes exploser. Nous avons un identifiant et vous devez maintenant écrire chaque variable que vous avez écrite ici dans les informations de votre élément de structure. Nous avons donc un identifiant, vous devez l'avoir pour commencer. Et puis nous avons le nom, puis nous avons la miniature, nous avons la description. Et n'oubliez pas de les écrire exactement tels que vous les avez écrits ici dans votre structure. Par exemple, si vous avez un espace ici, vous devez également avoir un espace ici. Écrivez-les donc exactement comme vous les avez écrits dans la catégorie structure. Nous avons l'objet perdu, nous avons l'objet sur mobile, l' est empilable et le dernier, la taille maximale de la pile. Bon, maintenant nous les avons tous ici. Et pour ce qui est de l'identifiant, la raison pour laquelle nous avons besoin d'un identifiant est que plus tard dans le jeu, nous indiquons au moteur que nous lui donnons un identifiant ici et l'identifiant Si vous revenez à votre base d'objets, souvenez-vous que dans la base d'objets, vous avez créé cette variable de nom d' objet. Ce sera donc en fait RID ici. À partir de là, nous allons en fait identifier le moteur. Donc, par exemple, pour cette banane, nous allons indiquer au moteur de quelle rangée nous allons prendre ces informations. Donc, par exemple, si vous avez l'idée de la banane, vous allez prendre cette information ici. Elle sait qu'elle doit examiner cette rangée où les idées se bousculent. Et il connaît la miniature de la banane, sa description et ainsi de suite. C'est pourquoi nous avons créé ce nom d'article et nous l'avons écrit sur les plans de chaque enfant. Très bien, nous devons donc ajouter chaque élément ici pour que je ne m'en souvienne pas exactement. Permettez-moi donc de le minimiser et ouvrir Google Sheet comme ceci. Et maintenant, nous pouvons écrire Banana Lever. Ensuite, il y a Knife, manner, ocean and meat and stamina, ocean. Et n'oubliez pas d'écrire l' identifiant exactement comme vous avez écrit le nom de l'article ici pour chacun de vos articles. N'oubliez donc pas d'écrire la même chose ici. Il sait donc réellement quelles informations il doit extraire. Alors de quelle ligne il doit être extrait. Je vais tous les copier et les coller. Voici la miniature. Vous pouvez accéder à l'interface utilisateur et aux icônes. J'ai inclus quelques vignettes pour vous. Donc, pour la banane, vous pouvez cliquer avec le bouton droit de la souris, accéder à Copier la référence. Et maintenant, vous pouvez aller ici et coller cette référence. Voilà à quoi ça ressemble. Cela semble étrange, mais maintenant le moteur sait où se trouve cette icône de banane car vous en avez spécifié l'emplacement. Je ferai la même chose pour le couperet. Vous pouvez cliquer avec le bouton droit sur la référence intelligente de l'API. Et maintenant je peux le coller ici. Mais la référence au couteau, collez-la ici. Et je vais juste cliquer sur Non pour celui-ci. Et pour l'océan de la ménopause, montez votre référence et pour la viande aussi. Et pour l'océan d'endurance. Très bien, je vais juste remplir le premier et ensuite tu pourras faire le reste, sinon ça va prendre une éternité. Pour cette description, vous pouvez simplement ajouter une description pour vos articles. Par exemple, pour la banane, je peux écrire une délicieuse banane ou quelque chose comme ça. Pour la catégorie, n'oubliez pas que dans la catégorie des objets d'énumération, nous avons la catégorie des armes, de la nourriture et des potions. Et c'est aussi ce que vous avez dans les informations sur l'article. N'oubliez pas cette énumération pour la catégorie que vous utilisez. Cela peut donc être l'un de ces trois ce moment. Si nous revenons en arrière, par exemple , la banane est une nourriture, par exemple la potion est une potion. N'oubliez pas de l'écrire exactement comme vous l'avez écrit ici. Et pour la classe d'objets, pouvez pas obtenir cette référence en vous rendant ici et dans les éléments, en cliquant avec le bouton droit de la souris et en disant « copier la référence ». Parce que si vous faites cela, il ne s'agit en fait pas d'une classe d'objets. Il s'agit d'un acteur d'objets. Supprimons-le donc d'ici. La façon dont je le fais habituellement est de simplement accéder à un tableau de données ici. Et je vais juste créer un objet aléatoire ici. Et sélectionnons une catégorie d'articles, par exemple la banane. Je vais cliquer dessus avec le bouton droit de la souris et cliquer sur Copier. Maintenant, je peux retourner à mon Google Sheets et le coller ici. Et c'est la bonne pour les classes d'objets. Donc, pour la dernière référence, bonne est que si vous voyez une classe générée par un plan , c' est la bonne. Bon, maintenant que nous avons la banane ici , vous pouvez simplement la copier, la coller ici, coller ici, et vous pouvez simplement changer le nom de la banane en couperet. Et celui-ci ici aussi. Donc, deux fois levier, levier. Il peut le faire car le reste est consommable. C'est juste un oui ou un non. Ce que je fais habituellement dans Google Sheets, c'est que je vais Format et que je fais une mise en forme conditionnelle. Et au lieu d'ici, je sélectionne pour la règle de format, je sélectionne le texte qui se trouve exactement ici. On peut dire faux. Et cela indiquera le rouge, ou la couleur sera rouge si c'est faux. Et je vais ajouter une autre règle et la changer en vrai. Et puis changez la couleur en vert si c'est vrai, comme ceci. Maintenant, je peux voir si j'écris faux ici, ça devient rouge, de la pyrite, vrai, ça devient vert. Et c'est pour les booléens ici. Chaque fois que vous prenez un booléen, il dit vrai, comme ceci. Chaque fois que vous ne l'avez pas cochée, elle indique « faux ». C'est donc très cool. Maintenant, laissez-moi simplement le supprimer et, à la place, je vais cliquer sur Insérer et sélectionner une case à cocher. Je peux voir que pour cette case à cocher, si elle n'est pas cochée, elle est rouge. Si c'est coché, ce qui est vrai. En fait, c'est comme ce vert. Il y en a beaucoup plus cool à mon avis. Vous pouvez simplement le faire glisser sur tous vos objets comme ça. En fait, laissez-moi le définir sur false avant de le faire, le faisant glisser vers tous les éléments, comme ça. Et je pense que c' est beaucoup plus propre. D'accord. Maintenant que toutes les informations remplies pour chaque élément, vous pouvez cliquer sur Fichier, puis sur Télécharger et le télécharger sous forme de fichier CSV. Maintenant, je vais cliquer ici et l'afficher dans le dossier de mon dossier Téléchargements. Maintenant, je peux le renommer et vous pouvez le renommer exactement avec le même nom que celui que vous avez donné à votre table de données. Nous appelons donc l'article DT Info. Maintenant, je peux ouvrir mon moteur et je vais tout arrêter. Je vais accéder à mon tableau de données. Et ici, ce que je veux que vous fassiez , c' est que cela soit compatible avec votre moteur. Vous pouvez donc simplement cliquer et faire glisser ceci dans ce tableau de données. Et maintenant, il va être écrit Importer. C'est bon, cool. Cliquons dessus ici et voyons s'il y a des erreurs. Vous pouvez maintenant voir une manière très cool de remplir toutes les informations. Maintenant, nous avons, par exemple, pour la banane , le nom, la miniature, la description, la catégorie, la classe d'article. S'il s'agit d'un objet consommable et empilable et s'il a la taille maximale de la pile, nous en avons pour chaque article. C'est le moyen le plus simple de le faire ici dans le tableau de données. Et la raison aussi, si vous avez des non-programmeurs dans votre équipe, par exemple des game designers, etc. Il leur est beaucoup plus facile de simplement modifier les informations des fiches techniques, de les télécharger ici et de les importer dans le jeu. De cette façon, ils modifient automatiquement toutes les informations relatives aux articles. Tellement cool. Si vous avez un game designer qui ne s'y connaît pas en programmation, il peut simplement modifier les informations. Par exemple, vous pouvez avoir quelque chose comme la valeur des pièces et vous pouvez définir le coût d'achat de ces objets dans la boutique. Et les gens peuvent simplement modifier les valeurs ici. Informations importantes , qui seront automatiquement modifiées ici. Bien, maintenant que c'est fait, nous allons créer une fonction de bibliothèque dans laquelle je vais vous montrer comment extraire des informations de chaque ligne. 25. 4.08 Fonction de la bibliothèque: Très bien, allons-y et cliquez sur le dossier d'ouverture bleu. Cliquez avec le bouton droit de la souris et créez un nouveau dossier appelé bibliothèques. Et à l'intérieur, cliquez avec le bouton droit de la souris. Accédez aux plans et sélectionnez celle appelée «  Voyons voir ici », fonctions de plans, une bibliothèque ici et appelez-la bibliothèque de fonctions PP, car nous ne pouvons en avoir qu'une. La bibliothèque de fonctions si vous l'ouvrez. Il s'agit essentiellement d'une bibliothèque de fonctions. Nous pouvons donc entendre que vous pouvez simplement ajouter de nouvelles fonctions. En gros, vous avez une bibliothèque de fonctions que vous créez ici. L'avantage d'une bibliothèque est que vous pouvez l'utiliser dans le monde entier. Donc, par exemple, ici, disons, haha, je ne sais pas. Nous allons juste appeler cette fonction hahaha. Et maintenant, dans le lecteur, nous pouvons simplement accéder au lecteur maintenant, cliquer avec le bouton droit et dire, hahaha. Et maintenant, nous pouvons voir que nous pouvons réellement appeler cette fonction depuis la bibliothèque de fonctions et nous pouvons l'utiliser ici. Ainsi, quoi que nous créions une bibliothèque de fonctions, nous pouvons l'utiliser globalement dans n'importe quel plan de notre choix. Donc, juste pour que vous le sachiez, votre jeu peut devenir très lent si vous avez des centaines de fonctions ici. C'est donc une mauvaise habitude de créer des fonctions ici au lieu de les intégrer à leurs plans respectifs si vous n'en avez pas besoin. Mais pour les informations sur l'article, les informations sur l'article, nous en avons en fait besoin dans plusieurs plans. C'est ainsi que vous devez utiliser les bibliothèques de fonctions. Vous devez vous demander combien de fois allez-vous utiliser cette fonction si vous voulez l'utiliser dans le lecteur et la manette du joueur, peut-être que vous allez l'utiliser dans une autre classe Blueprint. Si vous comptez l'utiliser plusieurs fois, il est préférable de le créer simplement dans la bibliothèque de fonctions. Vous n'avez donc pas à le refaire encore et encore dans chaque classe de Blueprint. Ici, créons une nouvelle fonction. Cliquez sur F2 pour changer le nom. Je vais l'appeler pour obtenir des informations sur l'article. Pour obtenir des informations sur les éléments, je veux cliquer avec le bouton droit de la souris ici et dire « accède à une ligne de tableau, une ligne table de données ». D'accord ? Donc, pour celui-ci, nous devons sélectionner de quelle table de données parlons-nous ? Je parle des informations sur les articles contenant du DDT. Et quel est l'élément ou quel est le nom de la ligne. Vous pouvez maintenant le voir ici, lorsque nous sélectionnons le nom d'une ligne, par exemple le couteau, et que nous exécutons cette fonction. Il sait qu'il doit recueillir des informations provenant de la rangée de couteaux. Donc, si j'ouvre à nouveau mon Google Drive, il prend des informations provenant de cet identifiant, qui est le couteau. Et puis il connaît toutes ces informations qui sont publiées ici. Parce que si vous le prenez ici et que vous dites pause, vous divisez ces informations en toutes les variables que vous avez créées. Ainsi, si nous sélectionnons le nom de ligne knife, il connaît désormais la miniature du couteau, sa description, la catégorie, car vous avez défini toutes ces valeurs ici dans votre tableau de données dans Google Drive. Et s'il connaît le nom de l'élément de ligne que vous avez, c'est parce que dans chaque élément, souvenez-vous, vous avez défini cette variable appelée nom de l'élément. Donc, pour la viande, par exemple il va falloir ce que vous avez écrit ici et que le nom de l'article correspond. Nous allons le passer en revue ici. N'oubliez pas qu'il s'agit d'une variable de chaîne. Tu vas à la même base. Nous l'avons créée en tant que variable de chaîne ici. Et pour les informations sur l'article, je vais juste saisir une chaîne de caractères que nous pourrons utiliser plus tard pour la mettre ici. Et appelons-le le nom de l'article. D'accord, nous avons donc celui-ci. Et maintenant, si vous accédez à la table de données, il y a donc une petite erreur si nous ne le faisons pas. Donc, dans le tableau de données, vous voyez ici que l'identifiant n'a pas d'espaces. Ainsi, même si vous mettez un espace dans votre Google Drive ou Google Sheets, vous pouvez voir ici que vous avez un espace, vous avez un espace, mais l'espace est automatiquement supprimé ici. Donc, par exemple, pour la potion, si je passe à l'article potions d' endurance et que je vois ici, vous avez écrit un espace. Mais pour les tables de données, ID ne peut pas contenir d' espaces. De cette façon, nous devons réellement faire quelque chose car tous vos articles ont de la place. C'est le tableau de données, ne contient pas d'espaces et il vous rapportera de l'argent sans savoir de quoi vous parlez. Nous devons donc supprimer les espaces de toutes ces manières, nous le faisons ici dans la fonction, il suffit de conduire à partir d'ici et de dire remplacer. Nous allons donc obtenir l'élément du nom. Nous allons remplacer, il suffit d'écrire comme espace ici au recto. Un seul espace. Et c'est tout. Il va donc remplacer tous les espaces par rien, ce qui signifie qu'il supprime cette base. Ensuite, il obtiendra le nom de la ligne. De cette façon, nous pouvons supprimer tous les espaces que nous avons créés de cette manière. Et supprimons celui-ci pour l'instant à partir d'ici et disons return node. Et faites-le glisser dans le retour maintenant pour créer automatiquement une sortie à partir des informations sur l'article. Et appelons cet article « info ». C'était donc la fonction dont nous avions besoin pour tout créer, compiler et enregistrer. Donc, ce qui est cool, c'est que, par exemple, le joueur, nous pouvons maintenant dire « obtenir des informations sur les objets ». C'est la fonction que nous venons de créer. Et vous pouvez voir ici nous n'avons pas vraiment besoin de connecter des broches à partir d'ici, car dans Blueprint, vous les connectez généralement ici parce que vous définissez des informations. Mais ceux-ci, ces verts , comme vous pouvez le voir ici, ne l'ont pas et c'est parce qu'ils ne font que recevoir des informations. Ils ne fixent aucune information. Mais nous n'avons pas besoin de le passer par celui-ci. Donc, pour obtenir des informations ici, revenons à la bibliothèque de fonctions. Ils peuvent obtenir des informations sur les articles, cliquer sur Pure et maintenant compiler. Et revenons au joueur. Maintenant, nous pouvons dire obtenir des informations sur l'article. Et vous pouvez voir qu'ici, cela devient une fonction get à la place. C'est pourquoi vous appuyez sur Pure. D'accord, nous pouvons maintenant obtenir des informations sur cet article. Ensuite, il suffit de préciser quel article il s'agit. Nous allons le faire plus tard. Nous allons donc le faire de manière dynamique dans l'inventaire en fonction de l'objet que vous sélectionnez ou que vous récupérez depuis le sol. Il va donc lui donner l'objet, par exemple nous faisons allusion à la tige dans une potion provenant du sol. OK, ça va passer par là. Le nom du rôle sera inscrit ici, des potions d'endurance. Et maintenant, il sait déjà de quelles informations vous parlez , car vous avez défini toutes ces informations ici. Donc, dans le résultat, si vous faites glisser le pointeur et dites break, il connaît maintenant l' endurance, les potions, la catégorie de description des vignettes, etc. Donc, des trucs très, très cool. Je te verrai dans la prochaine leçon. 26. 5.01 Créer le volet inventaire: Pour créer le composant d'inventaire, allons dans le dossier Blueprints. Et à l'intérieur, cliquez avec le bouton droit de la souris et créons un nouveau dossier, et je vais l'appeler composants. À l'intérieur de ce dossier, avec le bouton droit de la souris et cliquez sur la classe Blueprint. Donc, voici ce que nous allons créer, c'est ce composant acteur est essentiellement le composant d'inventaire que nous sommes en train de créer. Alors, cliquons dessus. Et je vais lui donner un préfixe AAC pour acteur et l' appeler inventaire. Très bien, donc si vous double-cliquez dessus, cela ressemble à ceci et à un plan ordinaire, comme vous en avez l'habitude maintenant. Donc, pour l'instant, ne travaillons pas ici à l'intérieur de celui-ci. Passons aux plans et trouvons le joueur. Ainsi, à l'intérieur du dossier du joueur et du lecteur, et à l'intérieur du lecteur, nous pouvons désormais ajouter les composants de l' inventaire. Donc, ici, dans les composants, cliquez sur Ajouter, puis recherchez l'inventaire AAC que vous venez de créer. Et nous l'avons ici. Nous avons maintenant l'inventaire. Mais pour le moment, nous ne pouvons pas vraiment en faire grand-chose. C'était donc tout pour cette leçon, il simplement d'ajouter, de créer et d'ajouter ces composants d'inventaire. Passons donc à autre chose. 27. 5.02 Structure des fentes d'inventaire: Avant de pouvoir continuer à travailler avec composant d'inventaire créé. Allons-y et créons deux autres structures. Il nous manque cette dernière structure dans la structure des catégories. Passons donc au dossier Strokes. Ici, nous avons créé les informations sur l'article. Maintenant, cliquez à nouveau ici avec le bouton droit de la souris, accédez aux plans et sélectionnez la structure. C'est ce que nous appellerons des emplacements d'inventaire. Et allons-y, quelle est la structure des emplacements d'inventaire. Il contient essentiellement des informations sur le contenu de cet emplacement d'inventaire spécifique. N'oubliez pas que dans l'interface utilisateur, nous avons créé cet emplacement d'inventaire. Nous avons donc essentiellement une structure qui contient des informations sur le contenu de l'emplacement spécifique de l'inventaire. Donc, tout d'abord, il contient l'article. Donc, peu importe ce que nous avons chargé et l'article, si vous cliquez ici, n'oubliez pas que nous avons créé une structure appelée informations sur l'article. Il contient donc cet élément à l'intérieur des diapositives. Deuxièmement, il contient également le nombre d' articles dont nous disposons, la quantité d'articles, et il ne s'agit que d'une valeur numérique entière. Ensuite, il contient le widget lui-même. Je vais donc l'appeler slot d'inventaire. Ensuite, en sélectionnant l'interface utilisateur, nous avons créé l'emplacement d'inventaire WB, qui contient la variable d' emplacement d'inventaire elle-même. Enfin, je voudrais ajouter un index d'emplacements, que nous pourrons utiliser plus tard. Ne t'en fais pas pour le moment. Mais l'index des emplacements est simplement de quel emplacement d'inventaire parlons-nous ? Parce que n'oubliez pas que lorsque vous créez un inventaire, vous avez de très nombreux emplacements dans l'inventaire. Il est donc toujours agréable de leur donner un index que vous pourrez utiliser plus tard si nécessaire. Et c'était tout pour l'emplacement d'inventaire. Passons donc à la leçon suivante. 28. 5.03 Catégorie d'inventaire Structure et tableau des données: Passons maintenant à la création de la structure des catégories. Revenez donc au dossier des structures, cliquez à nouveau avec le bouton droit de la souris et accédez à la structure des plans. Et appelons cela une catégorie d'inventaire. Ouvrons celui-ci ici. Celui-ci est très simple. Il contiendra simplement de quelle catégorie nous parlons. Et encore une fois, nous avons cette énumération appelée catégorie d'articles, celle-ci ici, catégorie d'articles. Et la deuxième chose dont nous avons besoin est l'icône de la catégorie. Alors, à quoi ça ressemble ? Oh, icône de catégorie. Et nous avons quelques icônes pour cette catégorie. Maintenant, ce type est une texture 2D. Texture 2D, juste une image. Cette texture 2D est de retour dans les ressources, en fait ici dans l'interface utilisateur, nous avons des icônes et des icônes pour les catégories. Donc, par exemple, la catégorie des armes est ce couteau nous avons ici la catégorie et l'icône elle-même. Ensuite, nous devons créer une table de données pour celui-ci, comme nous le faisions auparavant. Je vais donc l' ouvrir ici. Il s'agit du tableau de données d'informations sur l'article. Et en fait, ici, je vais l'appeler DT item info. Je vais en créer un nouveau en cliquant sur le signe plus en bas. Je vais appeler cette catégorie d'inventaire DT. Je vais juste faire glisser ces tableaux. Ces champs sont-ils un peu plus larges ici ? Juste comme ça. OK, donc comme avant , nous avons un identifiant. Et puis souvenez-vous que, d'après la structure que vous avez créée, nous avons la catégorie, puis l'icône de la catégorie. Je vais les mettre en valeur ici. Donc, pour l'identifiant, nous écrivons simplement le nom de la catégorie. Souvenez-vous que nous avons des armes, de la nourriture et des quotients. Je vais juste le recopier ici. Encore une fois, n'oubliez pas de l' écrire exactement comme vous l'avez écrit ici dans l'énumération, sinon cela ne fonctionnera pas. Donc, dans la catégorie des éléments d'énumération par numérateur, ce sont vos catégories. N'oubliez donc pas que dans le tableau de données, nous devons les spécifier exactement comme ceci. Maintenant, pour l'icône de la catégorie, nous devons copier les références. Je vais donc revenir ici dans l'interface utilisateur et les icônes. Maintenant, pour cette catégorie d'arme, j'ai celle-ci. Cliquez donc avec le bouton droit, comme avant avec les éléments, cliquez avec le bouton droit de la souris, copiez une référence, revenez ici. Passons maintenant à la nourriture, voyons de laquelle il s'agissait. Il s'agissait de cette seule catégorie d'aliments. Cliquez avec le bouton droit sur votre référence, goûtée. Et pour les potions, les consommables, les océans. Cliquez avec le bouton droit de la souris, copiez votre référence et collez-la ici. Maintenant, nous en avons pratiquement terminé avec celui-ci. Cliquez donc sur Fichier, téléchargez-le sous forme de fichier CSV, je vais renommer ce fichier CSV ici en catégorie d'inventaire DT. Et avant de faire quoi que ce soit, revenons au moteur. Accédez à Tables de données, cliquez ici avec le bouton droit de la souris, accédez à Divers, puis sélectionnez Table de données. Nous devons maintenant sélectionner de quelle structure parlons-nous ? Nous parlons de la structure des catégories d'inventaire, exemple d'accord, et nous appelons cette catégorie d'inventaire DT. Maintenant, vous pouvez à nouveau accéder au dossier de téléchargement. Nous pouvons le faire glisser au-dessus de cette table de données et tout sera automatiquement importé. Maintenant, ouvrons-le et voyons si tout est correct et vérifions tout ce que vous pouvez voir, il a tout importé correctement. Et maintenant, sauvegardons tout. La dernière chose que nous devons refaire créer une fonction de bibliothèque. Passons donc à la bibliothèque de fonctions de la bibliothèque. Et ici, comme avant, créons-en un nouveau intitulé Obtenir les informations sur la catégorie. Ou peut-être vaut-il mieux l'appeler « Obtenir des informations sur la catégorie d'inventaire ». Nous sommes donc précis quant à ce dont nous parlons. Là encore, je vais ajouter une entrée de chaîne comme avant. Et appelons-la un seul nom de catégorie. Et comme avant, je vais juste entrer dans les informations sur l'article et le copier-coller ici. N'oubliez pas que la seule chose que nous avons faite a été d'écrire un espace ici afin de supprimer tous les espaces. Nous les remplaçons par rien. Je vais donc accéder à la catégorie inventaire, la coller ici, en connectant la chaîne source. Et à partir de là, nous pouvons dire Get Data Table row. Comme auparavant, nous sélectionnons notre catégorie d'inventaire DT. Et pour ce qui est du nom, c'est écrit ici. Et pour la sortie, nous pouvons maintenant obtenir un nœud de retour sur un nœud de retour. Et encore une fois, comme avant, faites-la glisser dans le retour maintenant pour créer automatiquement une variable ici et l' appeler info de catégorie. Bon, maintenant on peut l' utiliser comme avant. Nous pouvons maintenant aller n'importe où dans n'importe quel Blueprint et obtenir ces informations. Donc, par exemple, je peux accéder au joueur et ici nous pouvons dire les informations sur la catégorie. Et comme vous pouvez le constater à nouveau, il s'agit d'une fonction définie Nous devons donc retourner à notre bibliothèque avant que j'oublie, cliquer sur les informations de la catégorie, régler sur pure. Et maintenant, vous pouvez voir que c'est pur. Il s'agit simplement d'obtenir des informations. Nous en avons donc besoin, nous n'avons pas besoin de le configurer. Nous devons donc écrire ici le nom de la catégorie. Ce paramètre sera défini automatiquement ultérieurement. C'est donc ce que nous avons fait jusqu'à présent. Nous avons créé une structure d'inventaire. Et puis ici, nous avons créé un tableau de données dans Google Sheets et l' important est là. Ensuite, nous avons créé une fonction de bibliothèque appelée obtenir des informations sur les catégories d'inventaire, qui permet simplement d' obtenir des informations sur le nom de ligne que nous saisirons ici plus tard. Et nous pouvons obtenir ces informations. 29. 5.04 Créer les variables d'inventaire: Allons-y et créons les variables pour l'inventaire. Revenons donc au dossier des composants qui se trouve le composant d'inventaire que nous avons créé précédemment. Ouvrons l'éditeur de plans complet. À l'intérieur, nous devons créer quelques variables. Tout d'abord, nous devons créer une variable appelée nombre de machines à sous. Nous devons donc définir le nombre de machines à sous de notre inventaire ? Et le type est un entier car il ne s'agit que d'une valeur numérique, comme vous pouvez le voir ici. Et la prochaine chose que nous devons ajouter est la catégorie d'inventaire sélectionnée. Plus tard, nous devrons définir catégorie que nous avons sélectionnée. Il s'agit d'une catégorie iGEM, tout comme celle-ci. Plus tard, nous pourrons définir la catégorie que nous avons sélectionnée en fonction du bouton de la catégorie sur lequel nous appuyons. Pour l'instant, nous pouvons simplement laisser les choses se passer comme ça. Ensuite, nous devons créer les catégories dont nous disposons. Nous devons donc avoir tous les éléments que nous éluons à partir du sol à l'intérieur de variables que nous pouvons contenir. Nous avons donc d'abord la catégorie des armes, puis nous avons la catégorie des aliments, puis nous avons les océans en guise de question. Et n'oubliez pas que, pour la catégorie présentée ici, dans les structures, nous avons créé ces emplacements d'inventaire. Cet emplacement d'inventaire contient l'article, la quantité, l'emplacement d'inventaire lui-même, le widget lui-même et l'index des diapositives. Ce sont donc en fait les catégories. Cliquons donc ici et disons emplacements d'inventaire et sélectionnons cette structure ici. Maintenant, si vous le compilez, vous pouvez voir que vous avez cet emplacement ici. Cependant, pour une catégorie, nous avons plusieurs emplacements. Donc, pour chaque catégorie, nous avons 16 machines à sous ou combien, dans ce cas, pour ce jeu, nous optons pour 16 machines à sous. Pour les catégories. Ils ne contiennent pas qu'un seul élément. N'oubliez pas que pour chaque catégorie, elles contiennent le nombre de machines à sous que nous avons défini ici. Ainsi, par exemple, si nous avons 16 emplacements, catégorie des armes en a 16, la catégorie des aliments en a 16, etc. Donc, au lieu de l'avoir comme une variable normale, nous devons changer le type de variable en tableau. Un tableau est simplement un conteneur dans lequel nous avons plusieurs de ces structures. Donc, en cliquant sur un tableau et en compilant, et maintenant je vais compiler. Vous pouvez voir ici, si je clique sur le signe plus, que nous avons maintenant cette place singulière à l'intérieur de ces catégories. Donc, ici, dans cet emplacement, il contient un article et la quantité. Et si je clique à nouveau sur Plus, il contient un autre article , la quantité, etc. Vous pouvez donc imaginer que pour une catégorie, nous avons 16 articles ici, en bas de la rangée. Vous pouvez donc maintenant voir qu'il est logique que nous ayons besoin d' un tableau, car il ne contient pas qu'un seul emplacement d'inventaire. Il contient plusieurs emplacements d'inventaire. Je vais supprimer tous ces emplacements ici. Nous allons les ajouter dynamiquement dans le jeu. Nous devons faire la même chose ici pour la catégorie des aliments, rechercher des lots d'inventaires. Et encore une fois, inventoriez les emplacements et n'oubliez pas de les remplacer par un tableau. Donc celui-ci aussi ou un tableau et les océans en un tableau et allez-y cliquez sur tout compiler et tout enregistrer. Et maintenant, c'est ce que nous avons jusqu'à présent. Nous allons donc définir le nombre de machines à sous. Revenons en fait au joueur. Le joueur qui l'ouvre. Et si vous cliquez sur le composant inventaire, vous pouvez maintenant voir que nous avons ces variables que nous pouvons modifier avec le nombre de diapositives. En fait, je vais en mettre 16 parce que c'est mon inventaire et que j'ai 16 emplacements. Si vous voulez plus de machines à sous, vous pouvez ajouter d' autres machines à sous à votre jeu. Et pour l'inventaire sélectionné, nous allons le configurer dynamiquement dans le jeu en fonction de la catégorie sur laquelle nous appuyons. Il en va de même pour les catégories, nous les définissons également de manière dynamique dans le jeu. C'était donc tout pour le moment. N'oubliez pas de définir la quantité de boue pour votre inventaire et passons à autre chose. 30. 5.05 Réaliser les variables de la catégorie des stocks: Nous voici à l'intérieur de la composante inventaire. Et avant de pouvoir utiliser ces tableaux ici, nous devons redimensionner les tableaux. Ainsi, lorsque vous créez un tableau et une variable d'un type de tableau, vous devez redimensionner le tableau avant de pouvoir réellement l'utiliser. Et pour ce tableau, nous allons en fait le redimensionner en fonction du nombre d'emplacements dont nous disposons dans l'inventaire. Je vais le supprimer ici, et je vais cliquer avec le bouton droit de la souris et dire événements personnalisés. Et appelons-le simplement l' inventaire d'initialisation , car nous allons l' exécuter en premier lieu. Ici en bas. Passons le tout aux clients. Donc CL, initialisez l'inventaire pour que la réplication soit exécutée sur un client propriétaire et fiable. Et n'oubliez pas de lancer le client ici et les événements personnalisés normaux comme ça. C'est très, très simple. Nous allons prendre l'une des variables ici. Et pour le tableau, si vous voulez savoir quelles fonctions vous pouvez créer pour un tableau, vous pouvez simplement écrire un tableau. Ensuite, vous pouvez voir que tout cela appartient à la gamme et vous pouvez jouer avec eux comme vous le souhaitez. Mais pour l'instant, nous allons dire redimensionner, c'est-à-dire redimensionner ce tableau. Sa taille correspond au nombre de machines à sous que nous avons créées ici. Il va donc le redimensionner, cette matrice pour qu'elle ait 16 emplacements. N'oubliez donc pas que dans le joueur, dans le lecteur BP ici, si vous cliquez sur le composant inventaire, en fonction du nombre de machines à sous que vous avez sélectionnées ici. Donc, pour ce jeu, je suis en train de créer 16 machines à sous. Il va donc redimensionner cette baie pour qu'elle ait également 16 emplacements. Faisons-le également pour la nourriture partir d'ici et disons «  redimensionner ». Et aussi, pour la potion, faites glisser ici » et dites « redimensionner ». Maintenant, connectez tout. Et vous pouvez également vous connecter ici à partir de ce nombre de machines à sous. Si vous souhaitez être plus organisé, encore une fois, vous pouvez double-cliquer sur les nœuds en attente et rediriger les nœuds. Et juste pour que vous puissiez tout sélectionner et appuyer sur Q et sur le mot clé qui rendra tout clair comme ça. Et n'oubliez pas que vous devez exécuter cet événement quelque part pour qu'il s'exécute, car pour le moment, nous n'exécutons cet événement nulle part dans notre code. Alors lançons-le ici pour le joueur chaque fois qu' il apparaît. Donc, au début, jouons, exécutons-le ici et nous pourrons nous inspirer de cet inventaire AAC. N'oubliez pas que cette climatisation répertorie notre inventaire Nous pouvons donc appeler cela des événements, ainsi nous pouvons appeler initialiser l'inventaire et nous pouvons le faire ici dès le début. Si vous voulez voir si cela fonctionne, car pour le moment, si vous cliquez sur Play, vous ne pouvez rien voir car il s'agit simplement d'un redimensionnement ici. Mais parfois, il est très agréable d'utiliser des nœuds d'impression. Donc, quand c'est une chaîne et ici, vous pouvez peut-être simplement prendre celle-ci, par exemple et dire longueur. Quelle est la longueur de ce tableau ici ? Connectons-le donc à cette chaîne d'impression. Et maintenant, compilons. Cliquez sur Play. Et ici, vous pouvez voir qu'il est écrit 16. Je peux le rallonger pour que tu le voies. Et laisse-moi créer la couleur rouge. Donc, si je clique sur Play, vous pouvez voir en haut à gauche de l' écran qu'il est écrit 16. La taille des tableaux est donc correcte. Maintenant, cliquons sur compiler, sauvegardons tout et passons à autre chose. 31. 5.06 Affichage des catégories d'inventaire: Nous allons maintenant afficher les widgets des catégories d'inventaire. Revenons donc au dossier Blueprints et passons à la manette du lecteur. N'oubliez pas que dans la manette du lecteur, nous travaillons avec des widgets. À l'intérieur, je veux que vous accédiez au graphe des événements avec le bouton droit de la souris et que vous créiez un événement personnalisé. Donc, pour cet événement personnalisé, nous allons l'appeler inventaire des tarifs, catégories, widgets. Et n'oubliez pas de copier le nom et d'en créer un pour le client. Parce que, encore une fois, l'interface utilisateur se fait par le biais des clients. Cliquez donc avec le bouton droit de la souris, créez un nouvel événement personnalisé et celui-ci sera exécuté via le client. Donc, pour les répliques, modifions-le pour qu'il fonctionne sur un client de clonage et qu'il soit fiable. Maintenant, exécutons ce client parmi les clients ordinaires. Nous exécutons donc le code et nous ressemblons à ceci. Donc, pour les widgets des catégories d'inventaire, si nous revenons à notre interface utilisateur et à l'intérieur de l'inventaire, nous avons créé une boîte verticale appelée catégories. Il s'agit donc de la boîte verticale et nous voulons ajouter les catégories à cette boîte verticale. Maintenant, pour le faire d'abord, cliquez sur cette case verticale et nous devons la définir comme variable. Nous pouvons donc réellement utiliser cette variable et y ajouter des éléments. Maintenant, quand c'est variable, revenons à la manette du joueur et nous devons maintenant y accéder. N'oubliez donc pas qu'elle se trouve dans l'inventaire WB et que vous en avez déjà créé une variable. Donc, faisons-le glisser ici, et obtenons cette variable. Nous pouvons maintenant faire glisser et écrire le nom de la boîte à légumes. Donc, catégories VB. Avant de faire quoi que ce soit , sortez d'ici et dites clairement, enfants. Parce que nous allons également redessiner widgets et les emplacements de chaque catégorie les widgets et les emplacements de chaque catégorie lorsque nous les créerons, les créer plus tard, lorsque nous redessinerons, nous devrons supprimer les anciens. Ainsi, par exemple, lorsque vous chargez un élément, vous devez tout redessiner pour mettre à jour l'interface utilisateur. Nous devons donc effacer les anciens avant de faire quoi que ce soit. Clarifions donc ces enfants avant de les ajouter à nouveau. Et pour ajouter les catégories, partons d'ici et supposons que les noms des lignes d'un tableau soient. Mais c'est le cas, si cela figure dans notre tableau de données pour la catégorie d'inventaire. Ici, il va obtenir chacune des lignes et nous pouvons les imprimer à l'écran. Voici donc tous les noms. Donc, voici ce que je veux que vous fassiez, c'est de faire glisser le curseur à partir ici et de dire pour chaque boucle. Nous allons donc parcourir chaque ligne en boucle. Revenons ici juste pour vous présenter les plans, les tableaux de données et la catégorie inventaire. À l'intérieur, nous avons trois noms de lignes. Donc les armes, la nourriture et les potions. Et c'est ce qui va se passer ici. Il va y avoir une boucle pour chacun de ces noms ici. Donc trois fois pour chacun d'eux. N'oubliez pas que nous avons créé une fonction dans la bibliothèque de fonctions, disant obtient les informations sur les catégories. Nous allons donc accéder à notre fonction d'information sur les catégories ici. Et maintenant, insérons ce nom dans cette chaîne et la de nom sera automatiquement convertie variable de nom sera automatiquement convertie en chaîne. Nous avons maintenant les informations sur la catégorie. Et si vous ne vous souvenez pas de quoi il s'agit, vous pouvez double-cliquer dessus pour accéder à la fonction et à la bibliothèque de la fonction. Et vous pouvez voir de quoi il s'agit : il obtient simplement le nom, puis obtient les informations de ligne de la table de données et les affiche ici. Nous pouvons donc réellement l'utiliser dans la manette du joueur. Donc, ici, vous pouvez soit cliquer avec le bouton droit et épingler Split Struct pour obtenir les informations soit vous pouvez faire glisser la souris et dire break, c'est ce que je fais habituellement. Et ici, vous pouvez également obtenir les informations. Donc, pour chacune de ces catégories d' inventaire, nous essayons de créer un widget et l' ajouter à cette boîte verticale. Maintenant, allons-y, glissons à partir d'ici et disons Créer un widget. Nous connaissons donc déjà cette fonction. Nous allons donc créer un widget. Et le widget que nous allons créer est ce widget de catégorie d'inventaire que nous avons créé plus tôt. N'oubliez pas que dans l'interface utilisateur, si nous accédons à la catégorie inventaire des catégories, il s'agit du widget que nous avons créé. C'est donc celui que nous sommes en train de créer. Et nous sommes en train de créer et pour chacun de ces noms de ligne. Nous allons donc le créer trois fois. C'est donc très cool de travailler avec des tables de données. Si vous décidez d'ajouter une quatrième catégorie, celle-ci sera automatiquement prise en compte ici et elle sera automatiquement ajoutée à l'inventaire. C'est donc très cool de le faire dynamiquement comme ça, car cela vous sera beaucoup plus facile plus tard. OK, donc ici, lorsque nous créons le widget, nous voulons lui indiquer quelle est la catégorie. Et nous voulons également insérer cette icône, car n'oubliez pas que nous avons cette icône statique et que nous voulons la modifier en fonction de la catégorie. Revenons donc à la catégorie inventaire. Ici, accédez au graphique. Et maintenant, nous allons cliquer sur le signe plus pour les variables. La première variable que nous allons créer est celle des catégories. Nous allons donc lui attribuer la catégorie. Ensuite, nous avons l'icône de la catégorie. Et celui-ci sera une texture 2D. Maintenant, nous allons cliquer sur le premier, puis cliquer sur Instance modifiable et exposer lors de l'apparition. Et tu peux le faire sur les deux. Donc, l'icône de la catégorie est également modifiable et exposée lors de l'apparition. Cela signifie que si vous revenez à la manette du lecteur maintenant, vous cliquez sur le fichier et vous actualisez tous les nœuds. Vous pouvez voir que nous les avons exposés ici afin que nous puissions réellement y intégrer des informations. Faisons donc glisser cette catégorie et attribuons-la ici. Et faisons glisser cette icône et attribuons-la également. Maintenant que nous avons créé un widget, allons donc créer trois widgets. Donc, jusqu'à présent, nous allons débarrasser les enfants de cette boîte verticale pour qu'elle soit propre. Ensuite, nous obtenons tous nos noms de ligne, qui contiennent tous ces trois noms ici. Ce que nous disons, c'est que pour chacune de ces lignes, nous allons prendre le nom, nous allons prendre les informations sur la catégorie d' inventaire. À partir de là, nous allons prendre l'icône et la catégorie et les intégrer à cette fonction de création de widget. Nous sommes donc en train de créer trois widgets, mais n'oubliez pas que nous ne faisons que les créer ici. Nous devons également les ajouter à la boîte verticale. Je vais donc copier ceci ici, les variables d'inventaire et de boîte verticale. Et maintenant, ce que nous pouvons faire, c'est faire glisser le pointeur depuis cette boîte verticale. Et on peut dire ajouter un enfant à la boîte verticale. Et connectons-le maintenant. Et quel enfant faut-il ajouter ? Tout simplement ce widget que nous venons de créer. Vous pouvez maintenant double-cliquer sur ces lignes pour créer des notes de chemin de fer et mieux organiser votre code. Et maintenant, compilons. Donc, pour l'instant, si nous cliquons sur Play, rien ne se passera. Et la raison pour laquelle ça n'ajoute rien. Donc, si vous cliquez sur I pour ouvrir l'inventaire, rien ne se passera. N'oubliez pas que vous n'avez exécuté ce code nulle part, vous devez donc l' écrire quelque part. Créez donc des widgets de catégories d'inventaire. En fait, exécutons-le pour le joueur. Donc, si vous revenez aux plans et que nous passons au joueur B, joueur ici au début, disons Get Controller. Et trouvons la manette pour ce joueur. Ensuite, nous pouvons dire : souvenez-vous que nous avons créé ici une interface appelée int player controller. Nous avons donc la référence à la manette du joueur. Nous pouvons donc dire qu'il s'agit d'une mise en page, un contrôle ou d'une référence, car il s'agit de l'interface que nous avons créée plus tôt. Maintenant, en tant que manette du joueur, parce que n'oubliez pas que nous avons travaillé sur la manette du joueur Nous avons donc besoin de la référence et nous pouvons maintenant appeler des widgets de catégories d'inventaire des taux. Donc, à l'intérieur de cette page, supposons créer des widgets de catégories d'inventaire. Et ça devrait fonctionner. Alors compilons et sauvegardons tout. Maintenant, ça va nous donner un bogue. Donc, si nous cliquons sur Play et que je clique sur l'œil, vous pouvez voir que rien ne se passe. Et si je sors d'ici, ça va nous donner un bug. Et la raison en est que si nous revenons à la manette du joueur , vous prenez des informations à partir de cette variable d'inventaire WB. Cependant, avant de cliquer sur l'œil, donc celui-ci, souvenez-vous vous l'exécutez instantanément lorsque le joueur apparaît. Toutefois, cette variable n' est pas encore créée. Cette variable n'est créée que lorsque vous cliquez sur le bouton I , car vous ouvrez ensuite le widget ici et vous créez cette variable. Donc, si vous pouvez le copier ici, nous créons un widget pour l'inventaire et vous revenez au graphique des événements. Et ici, lors de l' initialisation des widgets, je vais juste ajouter l'inventaire car les widgets India Sheila s'exécutent automatiquement lorsque nous avons commencé à jouer au jeu. Il est donc créé immédiatement et nous pouvons également l'utiliser ici au début du jeu pour le joueur. Et la raison pour laquelle il est créé plus rapidement dans la manette est que la manette du joueur est créée avant la création du joueur. C'est comme ça. Maintenant, nous allons cliquer sur Play. Et lorsque nous cliquons sur AI, vous pouvez voir, nous pouvons maintenant voir les informations ici. Nous pouvons voir les trois widgets. Cependant, les icônes n' ont pas changé. Et parce que c'est la dernière étape qui nous manque. Revenons donc ici. Passons à la catégorie d'inventaire WB. Ici. Supprimons-les et conservons la structure de l'événement. Pour ce qui est de la construction de l'événement, c'est exactement la même chose que pour le début de la partie. Ce que nous devons faire, c'est prendre cette catégorie d'images, car n'oubliez pas que si vous cliquez dessus, c'est comme vous l'avez nommée ici. Voici donc mon icône, mon image. Je dois donc prendre cette variable ici et dire, définit le pinceau à partir de la texture. Et maintenant, nous pouvons choisir la texture sur laquelle le définir. La texture est simplement cette icône de catégorie que nous venons de définir. Parce que n'oubliez pas que dans la manette du joueur, chaque fois que nous avons créé la catégorie, nous lui avons attribué l'icône de la catégorie correspondante . Cette variable est déjà prête et nous pouvons la connecter à la texture. Maintenant, compilons et cliquons sur Play. Et si je clique dessus maintenant, vous pouvez voir que toutes les icônes des catégories sont attribuées automatiquement. Donc, juste un bref aperçu. Si nous revenons ici, nous avons créé ces widgets de catégorie d'inventaire des crédits. Et nous l'exécutons via le client car les widgets doivent passer par le client. Ensuite, nous supprimons ou effaçons les enfants ici juste pour nous assurer qu'il est vide, puis nous obtenons tous les noms des lignes de la table de données. Et pour chacun de ces noms qui obtiennent leurs informations. Et avec ces informations, nous pouvons l'intégrer au widget de création. Nous créons donc les widgets un par un pour chaque boucle. Et nous sommes en train de saisir les informations. Nous les ajoutons également un par un avec la pente. Nous avons donc créé les catégories et les avons ajoutées à notre inventaire. Passons donc aux emplacements d'inventaire. 32. 5.07 Affichage des créneaux d'inventaire: Les emplacements d'inventaire, revenons à la manette du joueur. Et comme avant, les catégories, descendons ici et créons un nouvel événement personnalisé. Et appelons cela des widgets de machines à sous personnalisés pour l'inventaire des taux d'événements . Encore une fois, copions ce nom car nous devons en exécuter un via les clients. Faisons donc un événement personnalisé et exécutons-le via le client. N'oubliez pas de cliquer dessus. Fonctionne sur un client propriétaire et fiable. Et pour le client ou pour le client normal, nous devons exécuter le client. N'oubliez pas qu'il s'agit des widgets des machines à sous, et non de la catégorie. Sélectionnez donc les widgets de la machine à sous. Alors, ce que nous voulons faire avec ces widgets, si nous revenons à l'interface utilisateur et que nous cliquons sur l'inventaire. Donc, souvenez-vous que pour l'inventaire, nous avons créé cette grille de variables d'inventaire. Donc, pour cet inventaire de la grille, ce que nous devons refaire, vous devez cliquer ici est variable sinon nous ne pouvons pas utiliser cette variable. Donc, si je ne le fais pas, le clic est variable. Vous pouvez voir ici si je reçois mon inventaire et, sous forme de grille, nous ne pouvons tout simplement pas voir cette variable. Mais si je vais ici et que je clique sur la variable S pour cet inventaire de grilles, je peux maintenant faire glisser la souris à partir d' ici et dire grille. Et vous pouvez la voir comme une variable et nous pouvons l'utiliser comme avant. Éliminons les enfants et assurons-nous n' y a pas d' emplacements d'inventaire à l'intérieur il n' y a pas d' emplacements d'inventaire à l'intérieur. Chaque fois que nous évoquons un objet plus tard ou que nous le retirons de l'inventaire, nous devons redessiner tous les emplacements pour mettre à jour l'inventaire. Nous devons nous assurer que les anciens sont effacés avant d'en ajouter de nouveaux. Évacuons donc les enfants et assurons-nous qu'il est vide et propre. Maintenant, nous allons faire une boucle. Alors partez d'ici et dites boucle, puis sélectionnez celle-ci. Encore une fois, n'oubliez pas qu'en ce qui concerne le nombre de machines à sous, nous avons déjà une variable dans l'inventaire. Donc, si nous revenons à la composante inventaire, nous avons créé celle-ci appelée quantité de machines à sous. Nous avons besoin d'une référence à cet inventaire. Donc, ici, je vais cliquer sur le signe plus , puis trouver ma variable d'inventaire AAC. Et appelons-le inventaire. Et ensuite, faisons la même chose ici. Permettez-moi de cliquer sur le Plus, sélectionner la variable d'inventaire AAC et de l'appeler inventaire. Maintenant, ce que nous pouvons faire, c' est le brancher ici. Et pour celui-ci, créez des widgets d'emplacements d'inventaire. Allons au lecteur et cliquons sur le lecteur DP. Et à l'intérieur, encore une fois, exécutons-le dans le Begin Play. Nous pouvons le récupérer ici depuis le contrôleur, comme avant ce que nous faisions avec les catégories d'inventaire. Partons donc d' ici et disons créer des widgets d'emplacements d'inventaire. Donc, en sélectionnant celui-ci ici nous devons insérer l'inventaire. N'oubliez pas que vous pouvez simplement faire glisser votre souris à partir d'ici car vous avez déjà l'inventaire. Et vous avez également défini nombre de machines à sous que vous avez dans votre inventaire. Maintenant, vous pouvez avoir ce numéro, ce 16 que nous avons écrit. Donc, si nous revenons à la manette du joueur, nous devons la mettre en boucle autant de fois que ce que vous avez écrit ici pour le nombre de machines à sous, car c'est le nombre de machines à sous que nous voulons créer. Donc, en faisant glisser le curseur d'ici et en disant nombre de machines à sous, celui-ci est là. Maintenant, pour les boucles, elles partent de l'indice de zéro et non de un. Si nous les branchons ici, cela créera 17 emplacements d'inventaire et non 16. Nous devons prendre celui-ci et dire « moins ». Soustrayez et soustrayez par un, puis connectez-le au dernier index. Alors, qu'allons-nous faire 16 fois ? Nous allons simplement créer des widgets. Et ce que vous voulez créer, nous voulons créer des emplacements d'inventaire WB. Et ce qui est bien plus tard, c'est que nous aurons besoin de l'index des emplacements. Revenons donc à l'interface utilisateur et ouvrons l'emplacement d'inventaire. Je vais juste accéder au graphique et créer une nouvelle variable appelée index des emplacements, puis sélectionner l' entier et compiler. Et comme avant, sélectionnons l' instance modifiable et exposons lors de l'apparition. Revenez à la manette du lecteur comme dans le fichier et actualisez tous les nœuds. Maintenant, nous pouvons le prendre et l'insérer dans l'index des emplacements. C'est toujours agréable d'avoir cet index, car plus tard, vous pourrez en avoir besoin lorsque vous programmerez et que vous aurez besoin d'un emplacement spécifique. Très bien, donc pour terminer, tout comme avant de créer le widget, nous devons maintenant l'ajouter à la grille que nous avons. Donc, en prenant cela ici, l'inventaire WB, puis la variable d'inventaire du réseau. Et maintenant, partons d'ici et disons Ajouter un enfant au réseau et moins connecté. Donc, pour la grille, nous avons les lignes et les colonnes ici. Avant de le faire, le contenu que nous voulons ajouter est simplement ce widget que nous venons de créer. Et vous pouvez à nouveau double-cliquer ici pour créer un nœud de redirection. Maintenant, pour les lignes et les colonnes, c'est très, très simple. Vous pouvez faire glisser le pointeur à partir d'ici et dire divisé par quatre. Parce que ce que je veux, c'est que votre inventaire soit de quatre emplacements par la force, de nombreuses pertes de forêts par quatre emplacements. Et voici ce que tu peux faire. Nous avons donc 16 emplacements divisés par quatre, ce qui nous donnera quatre sur la colonne. Et les divisions par quatre ne sont pas divisées, mais module quatre, et cela nous donnera quatre par quatre. Donc, si nous faisons glisser à nouveau le curseur à partir d' ici et que nous disons module et que nous le sélectionnons ici, puis à nouveau quatre. Maintenant, nous pouvons le prendre et le connecter à la ligne, et le prendre et le connecter à la colonne. Vous pouvez donc toujours modifier ces chiffres. C'est parce que je veux avoir mes places quatre par quatre. Mais peut-être souhaitez-vous que vos diapositives soient de huit sur huit afin de pouvoir modifier ces chiffres en fonction de l'apparence de votre inventaire. Maintenant, cliquons sur compiler et cliquons sur un moyen pour voir ce qui se passe. Si je clique dessus, je peux voir mon inventaire est en train d'être ajouté à mon écran. Voilà à quoi ça ressemble. C'est très grand en ce moment, et je dois en réduire la taille. Mais supprimons toutes les icônes pour commencer par défaut, car je ne veux pas voir toutes les icônes apparaître par défaut. Je vais donc cliquer sur l'emplacement d'inventaire, pour revenir au concepteur. Et ici, vous pouvez cliquer sur l'icône et descendre ici dans la visibilité et la mettre en mode masqué. Même chose avec le numéro : cliquez dessus, revenez à la visibilité et réglez celui-ci sur Masqué. Maintenant, si je clique à nouveau sur Jouer, et maintenant je clique sur l'œil, vous pouvez voir que tout est masqué C'est plus agréable de cette façon, car nous pouvons ensuite afficher les icônes plus tard . Si nous avons réellement un élément et non cette icône par défaut pour la taille, cela peut vous convenir. Si je reviens ici, vous pouvez voir ici que je dessine en 1280 x 720. Il s'agit donc de mon écran de conception par défaut ici. C'est pour cela que je l'ai conçu. Les personnes utilisant des écrans plus petits le verront normalement ainsi. Vous pouvez voir que ce n'est pas le cas, ce n'est pas énorme comme ça. Si je clique sur Play et que je clique ici, vous pouvez voir que c'est très énorme ici. Et ça ne ressemble pas vraiment à ça ici. C'est parce que nous avons ce que l'on appelle la mise à l'échelle DPI. Maintenant, je travaille sur cette résolution. Cependant, si vous cliquez ici parce que j'ai une fourchette, un moniteur, je pense qu' il y a environ 3 000 ici, 3 800. Donc, en cliquant sur cette petite icône, vous pouvez voir ici qu'elle agrandit mon interface utilisateur en fonction de mon écran. Donc, en ce moment, je suis en train de le concevoir pour un écran ici. En fait, celui-ci est là. Cependant, mon écran est quelque part ici. Donc, vous pouvez voir que l'échelle correspond à une mise à l'échelle quatre fois ou 3,5 fois. Ce que vous pouvez faire, c'est simplement sélectionner celui-ci, puis réduire l'échelle pour qu' elle ne soit pas trop évolutive. Cliquez ici et réglez-le simplement sur deux, par exemple et ce n'est que si cela vous arrive. C'est donc généralement à ce moment-là que vous souhaitez redimensionner interface utilisateur de deux moniteurs différents et leur donner une bonne apparence pour différents moniteurs. Il y en a peut-être 2,5 et la taille en cliquant sur Play, je peux cliquer sur l'œil. Vous pouvez voir qu'il est beaucoup plus petit maintenant et je préfère qu'il soit ainsi. Très bien, nous avons maintenant ajouté les emplacements d'inventaire. Sauvegardons tout et passons à autre chose. 33. 5.08 Définir la catégorie d'inventaire sélectionnée: Maintenant , lorsque nous cliquons sur le bouton d'une catégorie pour l'inventaire, nous devons bouton d'une catégorie pour l'inventaire, le définir dans la catégorie sélectionnée. Alors allons-y avec les plans, et créons cette logique à l'intérieur du composant d'inventaire. Allons ici et créons de nouveaux événements personnalisés. Et celui-ci, nous allons l'appeler définir la catégorie d'inventaire sélectionnée. Et encore une fois, nous travaillons avec UI. Je vais donc le copier et créer un nouvel événement personnalisé et l' exécuter via le client. Donc, actif, client propriétaire et fiable. Alors, que devons-nous faire ici pour cette catégorie d'inventaire sélectionnée ? N'oubliez pas que nous avons fait de cette énumération la catégorie d'articles E, ensemble, la catégorie d'inventaire sélectionnée. Faisons le glisser à partir d'ici. Et tout en maintenant la touche Alt enfoncée, vous pouvez la déposer et elle se définit automatiquement comme suit. Nous définissons donc simplement cette variable et je vais la faire glisser et la déposer dans l'événement. Cela créera automatiquement une entrée ici. Vous pouvez le créer manuellement, ou nous pouvons simplement cliquer et glisser-déposer. Et il le créera pour vous. Maintenant, appelons le client ici, Définir la catégorie d'inventaire sélectionnée ». Je vais cliquer et faire glisser à nouveau ce lien ici, pour qu'il puisse suivre l'ensemble du processus. Maintenant, nous devons lancer cet événement chaque fois que nous cliquons sur un bouton ou sur les catégories. Revenons donc à l'interface utilisateur et cliquons sur la catégorie d'inventaire. Maintenant, cliquons sur ce bouton, la catégorie de boutons, et laissez-moi descendre. Et puis sur l'événement OnClick. Alors, que doit-il se passer lorsque je clique sur ce bouton ? Je veux simplement appeler cet ensemble catégorie d'inventaire sélectionnée. Alors, comment organiser cet événement ? Nous sommes à l'intérieur de l' inventaire et en ce moment, nous sommes dans l'interface utilisateur. Cela peut être une pratique qui vous permet d'essayer déterminer comment vous y arrivez réellement, comment vous accédez à cet inventaire. Maintenant, faisons-le ensemble afin que vous puissiez faire une pause si vous voulez le faire seul. Donc, ici, ce que nous voulons faire, c'est qu'il existe une fonction qui vous permet d'obtenir la couche propriétaire de cette interface utilisateur. Ainsi, chaque interface utilisateur créée pour un joueur appartient au joueur. Donc, pour le moment, nous pouvons cliquer avec le bouton droit de la souris et dire Get Owning layer on. Il essaie donc de trouver la couche propriétaire de cette interface utilisateur. Et ici, nous avons réellement besoin d'une référence au joueur, mais nous n'en avons pas encore fait. Souvenez-vous des plans lorsque nous abordons les interfaces. Ici, nous n'avons qu' une interface pour le contrôleur où nous avons le contrôle de la couche get, notre référence. Nous devons donc en créer un pour le joueur également. Je vais donc revenir ici aux interfaces, cliquez avec le bouton droit sur Blueprint, Blueprint Interface. Appelons-la couche int. Double-cliquez dessus. Et à l'intérieur, pour la fonction, appelons-la référence de couche get. Et maintenant, ici, n'oubliez pas que vous devez sélectionner la variable à laquelle vous voulez faire référence. Je veux donc faire référence à la couche BP, et appelons-la couche ici. Compilons. N'oubliez pas qu' il est très important de compiler ici. Passons maintenant au lecteur et ajoutons l'interface. Donc, bp player Les valeurs par défaut de la classe sont en fait les paramètres de la classe. Et ici, pour les interfaces, cliquons dessus et recherchons la compilation de la couche int. Et maintenant, vous verrez ici, dans les interfaces, obtenir la référence Blair. Comme avant, nous devons définir qui est le joueur. Nous faisons partie des acteurs du B2B. Donc tu peux juste essayer, te dire toi-même. Voici donc la référence de mise en page. OK, maintenant nous l'avons et nous pouvons maintenant revenir à l'interface utilisateur de notre catégorie d'inventaire. Alors, obtenez un pion de joueur propriétaire. Maintenant, il est demandé de quel joueur parlez-vous spécifiquement ? Je parle spécifiquement de BP Player. Nous pouvons donc dire que maintenant obtient référence au joueur que nous venons de créer. Et c'est un message parce qu'il provient d'une interface Blueprint. Maintenant, nous avons la référence du joueur, et maintenant, en tant que joueur, nous pouvons obtenir l' inventaire, car tout le processus consistait à obtenir l'inventaire. Nous pouvons donc appeler définir la catégorie d'inventaire sélectionnée. Donc, ici, dans l' interface utilisateur de la catégorie d'inventaire, faisons glisser à partir d'ici et disons AAC, inventaire. Et descendons et trouvons la variable. Les variables se trouvent toujours à la fin. Maintenant, en tant qu'inventaire, nous pouvons appeler définir la catégorie d'inventaire sélectionnée. Et quelle est cette catégorie ? Vous voulez le régler sur ? N'oubliez pas qu'en ce qui concerne la manette du joueur, si j'y reviens maintenant , ce sera un peu confus maintenant, car nous faisons des allers-retours sur ce que j' essaie de l'expliquer du mieux que je peux. N'oubliez pas que dans la manette du joueur , nous avons créé les catégories pour chacun des noms de ligne à partir de notre tableau de données. Nous avons pris la catégorie et l' dans le bouton créé ici. Donc, ici, dans le bouton, il sait déjà quelle est la catégorie. Vous pouvez donc simplement cliquer et faire glisser ceci et le brancher ici. Chaque bouton aura donc sa propre catégorie, laquelle il se connectera ici. Et les informations correctes seront définies ici. OK, c'est très important. Chaque fois que nous définissons la catégorie, nous voulons redessiner tous ces boutons. Donc, ici, dans les emplacements d'inventaire, nous voulons redessiner tous ces emplacements car nous changeons de catégorie. Nous ne voulons donc pas voir les anciennes machines à sous de l'ancienne catégorie. Maintenant, ce que nous devons faire, et c'est pourquoi nous avons déclaré les enfants, car nous voulons supprimer les anciens boutons ou les anciens emplacements d'inventaire avant d'en ajouter de nouveaux. Des widgets de machines à sous d'inventaire tellement géniaux. Nous devons l'appeler l'année où nous avons défini la catégorie d' entiers sélectionnée. Et maintenant, nous avons besoin d'une référence à la manette du joueur à partir de cet inventaire. Alors, comment s'y prendre ? Pour ce faire, nous devons d'abord trouver le joueur. Nous ne pouvons donc pas vraiment obtenir la manette du joueur directement à partir de ce composant. Mais n'oubliez pas que ce composant se trouve à l'intérieur du lecteur. Donc, ce que nous pouvons faire, c'est cliquer avec le bouton droit de la souris et dire « mais propriétaire », cela permettra d' obtenir le joueur. Et encore une fois, comme avant devoir le dire spécifiquement, nous sommes onéreux ou c' est ce dont nous parlons. Nous parlons spécifiquement de ce lecteur BP. Nous pouvons donc dire obtient la référence à la couche que nous venons de créer. Et maintenant, nous pouvons connecter celui-ci. Et ici, nous pouvons obtenir la manette. Vous pouvez donc suivre ici et dire Get Controller. Cependant, vous pouvez dire obtenir le contrôleur, puis vous pouvez dire Get layer, la référence du contrôleur. Et de cette façon, vous pouvez réellement appeler la création, créer des emplacements d'inventaire, des widgets. Tu peux le faire comme ça. Cependant, cela devient très long nous devons le faire à chaque fois. Revenons donc plutôt au joueur. Et au lieu de faire cela pour obtenir un contrôleur, créons-le en tant que variable. Donc, au début de la partie, au lieu de le faire, trouvons le Controller et, disons, obtenons référence du contrôleur de couche. Et maintenant, nous pouvons cliquer ici avec le bouton droit de la souris et la transformer en variable et l'appeler contrôleur de mise en page. Mais maintenant, nous avons la manette du joueur et nous n'avons à le faire à chaque fois à l'intérieur. Donc, lorsque nous aurons le contrôle de la plaque dentaire, supprimons ce coût. Comme nous avons maintenant cette interface Blueprint, nous pouvons la supprimer de temps en temps, puis nous pouvons simplement connecter ici au lieu de la connecter ensemble. Et rapprochons les choses. Et maintenant, ce régulateur de débit peut également être utilisé ici. Nous n'avons pas besoin d'appeler ce joueur manette. Encore une fois. Supprimons-le et connectons-les ici. Maintenant, la cible est à nouveau contrôleur du joueur de rôle de la plateforme. Prenons donc cette variable de contrôleur de mise en page que nous venons de créer. Et connectons-le ici. Ensuite, nous montons ici et vous pouvez voir c'est beaucoup plus propre qu'avant. Au lieu d'appeler la référence de la manette du joueur à chaque fois, nous pouvons simplement le faire. Je vais l'organiser un peu mieux, que ce ne soit pas trop compliqué ici. Très bien, maintenant nous avons cette manette et elle est superbe. Et nous pouvons également le faire ici. Pour le rendre plus propre, nous pouvons prendre la manette du joueur et simplement nous connecter ici. En fait, c'est faux. Alors prenons-le ici, appelons-le ici, et nous pouvons simplement le connecter manuellement comme ceci. Et nous pouvons supprimer cette manette noire. Maintenant, c'est beaucoup plus propre à regarder comme ça. Et laisse-moi les rapprocher. Le code est donc beaucoup plus clair ici. Et si nous revenons à l'inventaire AAC, au lieu de l'appeler ainsi, nous finissons par avoir la variable de contrôleur du joueur. C'est donc beaucoup plus propre. Et nous pouvons le connecter ici et appeler les widgets de création d'inventaire. Et encore une fois, nous pouvons prendre l'inventaire du joueur et appeler la variable d'inventaire AAC, descendre vers le bas, trouver la variable d'inventaire et la connecter ici. Très bien, c'est en fait terminé maintenant. Donc, quand je suis dans le jeu et que je clique sur l'œil, il est vraiment impossible de cliquer sur le bouton parce que pour le moment , nous n'avons pas de souris visible ou que nous pouvons contourner. Nous n'avons pas vraiment de souris. Alors, réglons ce problème. ce moment, je reçois une boîte car x fait neuf essayant de lire la propriété et elle parle du fait que vous obtenez un sous-système au niveau local, le contexte de mappage. Nous devons donc en revenir au joueur. Le contexte cartographique n' aime pas cela. Il y en aura quatre. En fait, nous l'avons configuré et branché. Disons que c'est valide depuis la manette divisée. Il suffit de s'assurer qu'il est valide avant qu'il ne s'exécute réellement. Ce code est valide. Et s'il est valide, vous pouvez exécuter le code. Vous pouvez maintenant double-cliquer dessus pour le rendre plus agréable. Et cliquons sur Play et voyons s'il y a à nouveau un bug. Courir partout. Si je l'exécute également sur le client, je peux le supprimer et vous pouvez voir que nous n'avons plus de box. Il suffit donc de s'assurer que c'est valide avant de le faire. Très bien, donc pour la souris, on passe à la manette du joueur. Ici, dans la classe, les valeurs par défaut. Vous avez affiché la souris, le curseur. Maintenant, cliquons dessus ici et cliquons sur Play. Maintenant, vous pouvez voir, je peux voir la souris et je ne peux plus vraiment regarder autour de moi. Ce n'est vraiment pas important car ce cours ne porte pas sur les mouvements, donc je m'en fous, mais vous pouvez tenir la souris retourner le joueur et regarder autour de vous. Mais ce n'est pas vraiment important pour le moment, ne vous souciez pas du mouvement ou de sa correction. Concentrons-nous sur l'inventaire. Donc, cliquer sur l' inventaire ne fonctionne pas car nous ne l'avons pas vraiment défini. Nous devons également régler ce problème. Lorsque je passe la souris sur les boutons des catégories, je ne peux pas non plus vraiment appuyer dessus. Voyons donc ce qui se passe avec ça. Alors fermons ça. Revenons à la catégorie inventaire et passons au concepteur. Donc, en regardant le bouton, je peux voir qu'il est entièrement réglé en bleu carré. Et c'est faux. Non, pour Hubbard, nous devons le remplacer par Hubbard. Et pour les opprimés, nous devons changer pour nous reposer. Et pensez à copier la taille de l'image car les boutons ont changé. Déplacez donc le bouton droit de la souris ici et clic gauche pour les coller ici pour l'image, en vous assurant simplement que la visibilité n'est pas testable, afin que cela ne bloque pas le bouton. Et maintenant, si nous passons au menu I, nous devons maintenant que ce bouton fonctionne également lorsque nous cliquons dessus. Donc, si je vais ici et que je sélectionne cette option sur J'aime, cela doit ouvrir l'inventaire. Donc, si je compile et que je reviens au lecteur. Donc, ici, lorsque nous ouvrons l'inventaire, nous pouvons créer un autre événement personnalisé et le lier ici. Cela fonctionne donc pour le bouton. Eh bien, cliquez avec le bouton droit ici et personnalisez un événement, et disons un inventaire ouvert. Branchez-le ici. Cela ne se déclenche donc que lorsque vous appuyez sur notre bouton, ouvrez l'inventaire. Revenons donc à l'interface utilisateur principale. Et encore une fois, pour ce bouton, comme avant, cliquez avec le bouton droit de la souris et dites Get Owning, couche dessus. Nous avons donc le joueur parce que c'est là que réside notre logique : il possède le joueur par référence à la couche. Et maintenant, connectons-les ensemble. Et ici, nous pouvons maintenant dire inventaire ouvert. Alors maintenant, ça devrait fonctionner. Compilons tout. Cliquons sur Play. Et si je clique sur l'interface utilisateur, vous pouvez voir l'inventaire s'ouvrir. Et si je clique sur un œil, il s'ouvre également. Donc c'est le cas, Oh, ça fonctionne correctement. Et le survol des boutons fonctionne également. Maintenant, vous ne pouvez pas voir si nous changeons catégorie car nous n'avons aucun article. C'est donc très difficile à voir. Donc, si vous voulez le voir rapidement, vous pouvez accéder à la manette du joueur ici où vous pouvez ajouter vos emplacements d'inventaire. très bonne méthode pour voir les choses consiste à utiliser la chaîne d'impression d'ici dans la boucle lorsque nous créons les widgets Faisons glisser à partir d'ici et enregistrons la chaîne de location. Maintenant, la chose que nous voulons imprimer à l'écran, imprimons simplement tous les widgets que nous sommes en train de créer. Donc, à partir d'ici, connectez-vous ici, et cela va créer ce nom d'affichage. Il va donc vous montrer le nom d'affichage de ces widgets. Cliquons maintenant sur Play. Et vous pouvez voir qu'il crée les widgets pour les deux joueurs. Lorsque vous cliquez sur AI, puis sur Catégorie, des widgets sont créés. Si vous cliquez sur un autre, vous pouvez voir son nombre augmenter pour les widgets, mais nous pensons à effacer les enfants. Ce n'est donc pas parce que 79 d'entre eux sont apparus. Il n'y a que ceux-ci qui sont apparus pour le moment. Cela fonctionne correctement. Chaque fois que je clique sur une catégorie, de nouveaux widgets sont créés. La seule chose dont nous avons besoin maintenant est donc de travailler également avec les objets. Alors compilons tout, sauvegardons tout, et passons à la leçon suivante. 34. 5.09 Re-adding des éléments existants: Bien, maintenant, ce que nous voulons faire, c'est ajouter des objets existants à l'inventaire. Donc, pour le moment, nous n'avons pas vraiment d' objet faisant allusion ou quoi que ce soit de ce genre. Mais ce que nous pouvons faire en accédant à la manette du joueur, c'est simplement ajouter les widgets des emplacements d'inventaire. Nous les créons, puis nous les ajoutons à cette grille ici. Mais quand nous changerons, quand nous éliminerons les enfants, que nous changerons catégorie, nous redessinerons les widgets des machines à sous. Nous devons également redessiner tous les objets, afin de les afficher, et nous pouvons le faire même si nous n'avons pas de pillage d'objets pour le moment. Donc, avant d'ajouter les widgets ici aux enfants ou à l'inventaire de la grille. Passons maintenant à ceci et je vais juste enfoncer un petit moment afin que nous puissions ajouter d'autres éléments à l'intérieur. Donc, ce que nous voulons faire, c'est effacer l'inventaire. Donc, si nous revenons à l'inventaire, juste pour rappel, nous passons à l'inventaire des composants. Ici, nous avons créé les trois catégories. Il a donc été classé dans la catégorie des armes, et il s'agit d'un éventail de machines à sous d'inventaire. Donc, si nous cliquons sur le Plus, vous pouvez voir qu'il s'agit d' un article, puis de la quantité de l'article, l'emplacement d'inventaire et de l'index. Et si nous cliquons à nouveau sur le plus, nous avons un autre élément. Alors maintenant, j'ai deux objets. Et juste comme ça. Donc, en fonction de tous les objets dont nous disposons, nous devons également les dessiner ici afin ne pas les manquer lors du redessin ici. Maintenant, examinons d' abord ces trois éléments. Efface ici. Alors sortons de l'inventaire. Et disons la catégorie des armes. Encore une fois, disons Aliments ou catégorie d'aliments. Et écrivons la catégorie des potions. Nous avons donc maintenant toutes ces trois catégories. Maintenant, glissons-le ici. Et ce que nous voulons faire, c'est faire glisser les éléments d'un tableau à partir de l'un d'entre eux et dire ensembles. Nous voulons définir l'élément du tableau, nous voulons définir l'index de l'élément qui se trouve déjà à l'intérieur. Et pour ce faire nous pouvons simplement faire glisser les éléments d'un tableau à partir d'ici et dire définir des éléments de tableau, car nous devons également le faire pour ceux-ci. Cela dépend donc vraiment de la catégorie d'inventaire que nous avons sélectionnée. Bien que. Après avoir sélectionné la nourriture, nous devons le faire pour la nourriture. Nous avons sélectionné la potion, puis nous avons dû le faire pour les potions. Alors, faites glisser à nouveau le curseur depuis l'inventaire et obtenons la catégorie sélectionnée, la catégorie d'inventaire ici. Alors maintenant, au lieu de le faire ici, laissez-moi cliquer sur Alt et cliquez ici pour le déconnecter. Permettez-moi donc de partir d'ici et d' utiliser un nœud appelé Select. Donc, en laissant celui-ci, quelle est la sélection, il suffit de sélectionner d'abord une option. Cela dépend donc de ce que vous avez branché à l'intérieur. Si vous saisissez un numéro, il en sélectionne un. Si vous insérez, par exemple , cette énumération, vous la branchez ici, vous pouvez voir qu'elle sélectionne entre les éléments de cette énumération. Alors branchons-les. Donc les armes avec les armes, nourriture et les potions. Donc ça va faire l'affaire ici. Il va prendre la catégorie d'inventaire sélectionnée. Il va examiner de quoi dépend cette valeur. Ici. Si vous vous en souvenez, si vous revenez à la catégorie Inventaire de l' interface utilisateur. Et donc ici, lorsque nous cliquons sur la catégorie, cela définit la catégorie et nous la redessinons ensuite. Ici. Il indique la catégorie. Ensuite, nous redessinons tous ces widgets de machines à sous. Donc, en fonction de la catégorie sélectionnée ici dans la manette du joueur, cette valeur sera sélectionnée. Donc, si vous avez sélectionné la catégorie des potions, allez prendre cette catégorie de potions , puis enregistrer cette catégorie de potions ici. En ce moment, c'est génial. Je ne sais pas pourquoi. C'est un peu bogué. Permettez-moi de le déconnecter ici, le rebrancher ici. Donc ça marche juste pour qu'il ait cette couleur. OK, donc par exemple, si nous sélectionnons la catégorie d'aliments, allons prendre cette catégorie d'aliments ici et la supprimer d'ici. Et maintenant, c'est la catégorie des aliments. Alors, quel est l'objet ici ? L'article est que nous pouvons simplement obtenir, obtenir celui-ci ici et dire encore. Et nous pouvons obtenir un élément du tableau et sélectionner celui-ci appelé copie. Quel article voulons-nous obtenir ? Quel élément de ce tableau voulons-nous obtenir ? Tout simplement, nous voulons simplement obtenir l'index des machines à sous. N'oubliez pas que nous sommes en train de parcourir ses widgets de machines à sous. Nous faisons une boucle de 0 à 15, donc nous créons 16 emplacements. Et pour chacune de ces machines à sous, nous voulons obtenir l'objet de chacune de ces machines à sous. Ensuite, nous voulons les mettre ici. Donc, pour l'index des emplacements, encore une fois, juste à partir d'ici et ajoutez-le ici. Voici donc l'indice. N'oubliez pas que ça va tourner 16 fois. Il va donc définir l'indice. Donc, le premier sera zéro, puis un, puis 2345, et ainsi de suite, jusqu'à 15, donc ça crée 16. maintenant à l'article, nous pouvons le prendre ici et dire pause. Et maintenant, voici ce tableau, cet emplacement d'inventaire. Mais nous pouvons partir de là et dire créer un emplacement d'inventaire. Donc, en faisant glisser cet élément ici, nous allons simplement réinitialiser l'élément à l'intérieur de ce tableau. Nous ne voulons pas perdre notre objet. Donc, en fonction de l' emplacement que nous avons, par exemple, le premier emplacement est à l'indice zéro. Nous allons récupérer cet objet et le brancher ici. Même s'il est vide, peu importe. Nous sommes juste en train de récupérer toutes ces informations et de les rebrancher ici. Nous prenons également la quantité, en les branchant ici juste pour nous assurer de ne perdre aucune information. Et pour l'emplacement d'inventaire, n'oubliez pas que nous sommes en train de créer des emplacements d' inventaire Je vais donc le faire glisser ici, puis me connecter ici. Et pour l'index des emplacements, encore une fois, il suffit de le faire glisser d'ici et de l'insérer ici car nous ne voulons pas vraiment utiliser l'ancien emplacement d'inventaire. C'est l'emplacement qui sera libéré. Quand on dit Clear Children, on n'a plus vraiment envie de l'utiliser en plus de l'index des machines à sous, on efface tout ici. Utilisons donc le nouvel index des machines à sous, puis votre widget d'inventaire des machines à sous et juste pour masquer ces stylos parce que je ne trouve pas ça beau. Vous pouvez cliquer dessus et cliquer sur Masquer les broches non connectées, et cela aura une bien meilleure apparence maintenant. Et c'était tout en fait. Prenons donc cette logique ici. Ajoutons à nouveau notre interface utilisateur à la grille ici. Et pour cela, voici les widgets. Vous pouvez donc cliquer et glisser à partir de celui-ci et ajouter à nouveau les widgets ici. Et tout semble parfait. heure actuelle, nous ne voyons pas vraiment de différence car nous ne mettons pas vraiment à jour l'interface utilisateur. Donc, dans les emplacements d'inventaire, nous ne définissons pas vraiment l'image de l'objet trop visible ou quoi que ce soit d'autre. C'est ce que nous allons faire dans la prochaine leçon. Mais juste avant de le faire, organisons tout ici. Je vais donc passer à l'étape suivante et je vais vous montrer comment je l'ai organisé. OK. Très vite, je suis donc allée de l'avant et j'ai tout organisé. peux voir qu'ils contiennent toutes des notes de redirection, Je peux voir qu'ils contiennent toutes des notes de redirection, alors assurez-vous de double-cliquer sur chacune d'elles. Vous pouvez également sélectionner certains éléments et cliquer sur Q sur le clavier. Cela va redresser les éléments. Je vais donc m'assurer d' organiser votre code afin que vous puissiez mieux le comprendre. Compilons tout pour moment et passons à la leçon suivante. 35. 5.10 Affichage de l'article dans l'inventaire: OK, allons-y maintenant et mettons à jour l'interface utilisateur de l'emplacement d'inventaire. Lorsque nous perdons un objet. Voici les emplacements d'inventaire Passons au graphique et supprimons tout ce qui s'y trouve. Créons maintenant un événement personnalisé. Et celui-ci, je vais l' appeler Update Inventory Slot UI. Ce que nous voulons faire, c'est simplement placer cette image ici en fonction de l'objet que nous récupérons et de sa quantité. Donc, en cliquant ici, nous allons ajouter deux variables différentes. Le premier est l'article, tout comme les informations sur l'article. C'est l'objet, appelons-le objet. Et le second est la quantité de cet article. Modifions-le en entier et compilons. Donc, pour cet article, prenons la quantité et disons, est-elle égale à zéro ? Parce que si l'objet est égal à zéro, signifie qu'il n'y a aucun objet dans cet emplacement d'inventaire. Nous ne voulons pas vraiment afficher l'icône de l'objet ou ce texte ici, car nous n'avons pas vraiment d'objet dans cet emplacement. Donc, si la quantité est égale à zéro, prenons cette image ici, illustrons à partir d' ici et disons définir cette capacité. Et définissons la visibilité sur masquée si nous n' avons aucun objet. Et faisons-le également pour le texte. Et vous pouvez voir que je n'ai pas de variable pour le texte. Revenons à Designer. Cliquez sur le texte et définissez-le cette variable afin que nous puissions le voir comme une variable. Alice, maintenant, prends ce texte, voyons si nous pouvons le trouver. Et je ne le trouve pas. Et cela s'appelle en fait la quantité d'éléments illustrés. C'est censé être un texto. Transformons donc cela en texte. Retournez au graphique, et c'est celui-ci. Nous allons donc le faire glisser ici et disons également définir la visibilité sur masquée. OK, alors maintenant, ils sont tous deux définis comme masqués si la quantité est nulle. Toutefois, si la quantité n'est pas nulle, nous souhaitons définir cette image. Prenons donc cette icône ici, l'image ici. Et disons « Définir le pinceau à partir de la texture ». Et définissons cette icône. Donc, si c'est faux, si nous sommes réellement, si ce n'est pas zéro, nous avons en fait un élément dedans. Définissons l'icône de cette image ici dans notre inventaire. Alors, quelle en est l'image ? N'oubliez pas que nous avons l'objet partons d' ici et disons pause. Je peux donc voir les informations sur cet article ici. Et faisons glisser cette miniature. Nous avons la miniature, donc nous pouvons l'utiliser comme ligue de textures, afficher les épingles non connectées si vous souhaitez masquer le reste des informations. N'oubliez pas de régler la visibilité sur visible, car pour le moment, elle est masquée. Je peux simplement le copier ici et le connecter. Et maintenant, nous pouvons régler la visibilité de manière à ce qu'elle ne soit pas trop visible, mais qu'aucun résultat ne soit testable. N'oubliez pas que si vous le définissez trop visible, vous bloquez ces emplacements d'inventaire. Vous, si vous le définissez sur aucun, vous pouvez le tester. Cela signifie que vous ne pouvez pas interagir avec cette icône. Et je ne pense pas que nous ayons besoin d'interagir avec quoi que ce soit à propos de cette icône, donc je vais juste la régler sur qu'aucun résultat ne peut être testé pour le moment. Il en va de même pour le texte. Nous devons définir la quantité. Prenons donc le texte ici et faisons glisser le texte et disons définir le texte. Et réglons le texte sur le montant ici. Alors, faites glisser cette quantité de connexion ici, et cette fonction de deux textes sera automatiquement créée pour vous. Maintenant, double-cliquons simplement pour mieux l'organiser . Et maintenant, pour ces textes, nous avons défini la quantité. Maintenant, pour ce qui est de mon inventaire, ce que j'aime faire, c'est que si cette valeur est une , je ne veux pas afficher ce chiffre, donc il sera masqué comme ça. Toutefois, si la quantité est de deux, le nombre s'affichera. Donc, si c'est un, je ne veux pas vraiment montrer le numéro un. Passons maintenant au graphique ici. Et ce que nous pouvons dire, c'est que nous pouvons à nouveau faire glisser la quantité à partir de la quantité et dire si elle est supérieure à un, alors nous voulons afficher cette branche. S'il est supérieur à un, alors nous voulons prendre ce texte. Permettez-moi donc de le copier ici, le texte. Et nous voulons dire qu' aucun résultat n'est testable. Je veux donc montrer ce texte si c'est le cas, si le nombre est supérieur à un, juste comme ça. Toutefois, si le nombre n'est pas supérieur à un , copiez-le. Ensuite, je veux mettre celui-ci en mode masqué. Donc, si nous n'avons qu'un seul élément, il n' affichera pas ce texte. Si nous avons deux éléments ou plus, ce texte s'affichera et c'est tout. Permettez-moi donc de double-cliquer et améliorer également l'apparence. Assurez-vous que votre code est organisé. Cela peut devenir compliqué très rapidement et il vous faudra beaucoup de temps pour tout organiser. Alors c'était ça. Compilons. Et maintenant, nous devons appeler cette fonction. Nous ne l'avons pas vraiment gardée nulle part. Revenons maintenant à la manette du lecteur. À l'intérieur de la manette du joueur, nous ajoutons l'objet à ce tableau, puis nous ajoutons les enfants. Et maintenant, nous devons également mettre à jour l'interface utilisateur car oui, l'élément est en cours d'ajout. Cependant, nous ne constatons aucun changement car nous ne mettons pas à jour l'interface utilisateur, ici l'interface utilisateur a été mise à jour, nous sommes dans l'emplacement d'inventaire WB. N'oubliez donc pas que dans la manette du joueur pour chacune des machines à sous, vous créez ce widget, vous créez un emplacement d'inventaire WB ici. Nous pouvons donc réellement l'utiliser. Nous pouvons faire glisser depuis cet emplacement d'inventaire et nous pouvons dire des mises à jour, une interface utilisateur de l'emplacement d'inventaire. C'est l'événement que nous venons de créer. Maintenant, double-cliquez et redirigez les notes. Je vais en parler un peu plus haut. Ce n'est donc pas au-dessus de ma fonction, pas à l'intérieur de ma fonction, juste comme ça. Et maintenant, nous devons connecter l'article la quantité et l'article. N'oubliez pas, souvenez-vous que vous l'avez déjà dit, nous sommes arrivés à l'article. L'article est là, verrouillez-le, la quantité également, branchez-le. Double-cliquez pour le rendre un peu plus beau. Et juste comme ça, compilons et enregistrons. Maintenant, nous ne pouvons pas vraiment le tester avec les objets car nous n' avons pas de système de pillage. Mais ce que nous pouvons faire, c'est accéder aux composants de l'inventaire et à l'intérieur de l'inventaire, et uniquement pour les armes, par exemple vous pouvez simplement cliquer sur le plus et ajouter un objet au hasard. Ici. Dans les articles, ajoutons simplement quelque chose, par exemple celui-ci, je ne connais pas ce levier ici. Et on peut dire que ça n'a pas vraiment d'importance, le travail, peu importe. Et maintenant, fixons la quantité à un. Et l'index des machines à sous, tout cela n'a pas vraiment d'importance. N'oubliez donc pas de vous assurer que vous avez l'icône et que vous avez la quantité. Cliquons donc sur Play et voyons si cela fonctionne. Donc, en cliquant sur l'inventaire, je peux voir mon intelligence. Si je change de catégorie, vous pouvez voir que je peux la voir. Je reviens aux armes. Je peux voir mon couperet. Cela fonctionne donc correctement. Maintenant, nous pouvons également le tester ici dans les potions. Ajoutons une potion. Cliquons sur l'article. Et maintenant, allons-y, sélectionnez l'une des potions, par exemple cette potion, réglez la quantité sur cinq, par exemple pour que nous puissions voir si le texte apparaît. Et si nous cliquons sur Jouer, cliquez sur AI et cliquez sur les potions. Vous pouvez voir, je peux voir que j'ai cinq quotients. Si je clique sur les armes, je peux voir la nourriture de mes armes. Nous n'avons pas de nourriture. Et maintenant, vous pouvez voir qu' il fonctionne correctement. OK, alors allons-y et supprimons celui-ci que nous venons de créer, ainsi que les armes et les quotients. Maintenant, compilons tout, sauvegardons tout et passons à autre chose. 36. 6.01 Interagir avec les éléments: Commençons maintenant à interagir avec les objets. Alors d'abord, passons aux plans et au joueur. Et créons une nouvelle action de saisie où nous pouvons cliquer sur un bouton et charger les éléments. Cliquez donc avec le bouton droit de la souris, accédez aux entrées et à la protection. Et appelons cela du butin ou vous pouvez l'appeler interagir. Cela dépend de vous. Passons aux contextes cartographiques. Et à l'intérieur , cliquez sur le nouveau plus ici sur les cartographies. Laissez-nous, je vais minimiser tout cela ici pour le nouveau Ajoutons le luth, le luth. Et je vais appuyer ici et appuyer sur la touche EE du clavier. Je vais juste utiliser l' IPA et les solutés. Et pour le déclencheur, vous allez cliquer sur le signe plus. Et ici, réglez-le sur Appuyé et enfoncé, vous assurer que vous ne pouvez pas spammer ce bouton électronique. Donc, si vous le maintenez enfoncé, il ne fonctionne pas tout le temps. Donc, appuyer signifie simplement l'exécuter une fois lorsque je clique sur E. OK, c'est fait ici. Maintenant, fermons-le. Accédez au lecteur. Et ici, dans le lecteur, permettez-moi de revenir un peu plus loin. Et ici, je peux dire des tas d' IA et organiser cet événement ici. Maintenant, nous pouvons faire allusion à ce dont nous avons besoin pour l' exécuter via le serveur. Jusqu'à présent, nous avons travaillé avec un client parce que tout cela était une interface utilisateur. Cependant, lorsque vous pillez des objets, assurez-vous simplement de les exécuter via le serveur, car vous voulez vérifier si les clients peuvent réellement perdre les objets. C'est ainsi que vous évitez de tricher. Donc, lorsque vous jouez ici et que vous jouez en tant que serveur, alors celui-ci, voici le serveur. Celui-ci, c'est le client. Supposons que les clients soient les clients connectés à vos amis à votre serveur. Ils vont appuyer sur E. Même s'il n' y a aucun objet ici. Nous devons vérifier. Lorsque vous cliquez sur E ici en tant que client, ces informations sont transmises au serveur. Le serveur vérifie si cette ligne se trouve sur un élément ou non, puis il va renvoyer ces informations au client. Pour le moment, je ne suis debout sur aucun élément. Je vais cliquer sur E. Ces informations doivent être envoyées au serveur. Le serveur va dire : « Non, vous n'êtes debout sur aucun objet, vous n' allez rien perdre. Mais ces informations seront renvoyées au client. Cela indiquera au client que vous n'êtes debout sur aucun objet et que je ne vais rien perdre ici. Prenez toujours le code, vérifiez-le auprès de ce serveur, assurez-vous simplement que les clients ne trichent pas et renvoyez ces informations au client. Donc, jusqu'à présent, nous avons travaillé avec les clients parce que c'était une question d'interface utilisateur, mais maintenant, c'est en fait de la logique du jeu. Donc, ici, au lieu de simplement écrire le code directement à partir d'ici, parce que si vous écrivez simplement une chaîne d' impression ici, encore une fois, c' est très bien d'écrire une chaîne d'impression pour voir ce qui se passe si je clique sur play. Et ici, je clique sur e en tant que serveur, ça dit Bonjour. Si je vais chez le client et que je clique sur E en tant que client, le message Bonjour s'affiche. Le client et le serveur peuvent donc exécuter cet événement. Je veux exécuter le code uniquement via le serveur, donc je ne vais pas écrire le code ici. Cependant, nous allons créer un nouvel événement personnalisé appelé butin de serveur. Et celui-ci va fonctionner sur le serveur de manière fiable. Ensuite, je vais lancer l'événement du serveur ici. Ainsi, lorsque le client aime E, il s'exécutera également via le serveur. Donc, pour les objets, permettez-moi de placer un objet ici. Donc, pour les objets, plaçons, je ne sais pas, cette banane ici, quelque chose au hasard. Et placons ce couperet. Je vais les placer les uns sur les autres pour me dire combien d' objets je me tiens debout. Et je vais placer un objet tout seul ici, juste comme celui-ci, pour que nous puissions le tester. Donc, ce que nous pouvons faire ici pour le pillage, c'est cliquer avec le bouton droit de la souris et dire que cela se chevauche. Acteurs, je cherche juste savoir combien d'acteurs se chevauchent ? Et maintenant, il va vous demander quels acteurs voulez-vous que ce soit ? Je veux que ce soit la base d'articles que nous avons créée plus tôt. Nous allons donc prendre les acteurs qui se chevauchent du GED lorsque vous étiez debout sur les objets, afin de vérifier combien d' acteurs se chevauchent. Je vais prendre cela et dire longueur , puis demander si c'est supérieur à zéro. Donc, je veux juste exécuter ce code chaque fois que je suis debout sur un objet, car si la longueur de l'actrice superposée est nulle, alors nous ne sommes debout sur rien et je ne veux pas exécuter mon code. Donc, s'il est supérieur à zéro, je veux vraiment exécuter mon code. C'est tout pour cette vidéo. Il suffit de cliquer sur la chaîne orange ici et de voir si tout fonctionne correctement. Et ce que je veux imprimer, c' est qu'il suffit d'imprimer la longueur des acteurs olympiques, ce qui signifie combien d'acteurs se chevauchons-nous réellement ? Cliquez donc sur le jeu. Et en tant que serveur, je vais accéder à ces deux éléments en cliquant sur IE, vous pouvez dire que s'il pleut aussi, je suis debout sur deux objets maintenant. Si je vais ici et que je clique sur e, rien ne se passe car souvenez-vous que nous n'imprimons que lorsqu' il fait Si je vais ici et que je clique sur e, rien ne se passe car souvenez-vous que nous n'imprimons au-dessus de zéro. Si j'y vais et que je joue du luth ici, cela indique un seul élément, donc il fonctionne correctement. Et si je le fais également en tant que client, vous pouvez voir que le serveur imprime les informations, ce qui est très bien car nous voulons uniquement exécuter ce code via le serveur et tout fonctionne correctement. Supprimons donc cela et continuons dans la vidéo suivante. 37. 6.02 Initiale Ajouter à la logique d'inventaire: OK, c'est donc là que nous nous sommes arrêtés et ajoutons maintenant la logique initiale pour ajouter l'élément. Revenons donc aux composants et à l' intérieur du composant d'inventaire. Et ici, nous devons créer un événement personnalisé appelé ajouter à l'inventaire. Cliquez donc avec le bouton droit sur l'événement personnalisé Ajouter à l'inventaire. Et celui-ci, nous pouvons l'exécuter via le client car nous l'avons déjà fait passer par le serveur et nous interagissons avec un élément. Passons maintenant au client, car il s' agit en fait interface utilisateur et nous devons ajouter l' icône à l'inventaire. Ajouter à l'inventaire via le client et le serveur exécutent un client propriétaire, désolé et fiable. Maintenant, exécutons-le ici. Cl, ajouter à l'inventaire. Et ce que nous devons ajouter, c'est juste l'article. Donc, en cliquant ici, en cliquant sur le Plus, trouvons la base d'éléments comme type variable, car nous voulons ajouter cet élément spécifique ou une allusion. Maintenant, nous pouvons le faire glisser et l'ajouter ici également. Et compilons. Et maintenant, pour le joueur, nous pouvons maintenant prendre cet inventaire et dire « ajouter à l'inventaire », juste comme ça. Et de quel objet parlons-nous ? Nous parlons de cet élément spécifique que nous chevauchons. Alors allons-y, faisons de la place. Maintenant, ce à quoi nous voulons faire allusion, vous pouvez le faire avec deux méthodes en fonction du jeu que vous créez. Donc, ici, lorsque vous cliquez sur E et que vous souhaitez perdre un objet, vous pouvez piller tous les objets en même temps. Tu peux le faire comme ça. Vous pouvez donc prendre ici et dire « Pour chaque boucle », et vous pouvez, pour chacun de ces objets, ajouter à l'inventaire. Cependant, pour mon jeu, je veux juste piller un objet à la fois. Je vais donc partir d' ici et dire « en obtenir une copie ». Je ne vais donc pas le mettre en boucle. Je vais juste me procurer le premier article. Nous n'avons pas besoin d'un plugin ici. Je vais donc prendre le premier objet avec lequel nous le superposons, puis je vais l'ajouter à l'inventaire. Donc, en prenant cet objet ici, maintenant, nous ne pouvons pas vraiment le brancher directement parce que celui-ci est un objet acteur. Et si nous le branchons ici, cela ne fonctionnera pas car celui-ci est une référence d'objet de base BP. Donc deux choses différentes. Nous savons donc maintenant que c'est basé sur les articles. Nous, nous l'avons fait ici dans le filtre. Nous avons filtré que la seule chose avec laquelle nous interagirons ici est l'élément à entendre. Et ils obtiennent, nous pouvons les déplacer à partir d'ici, et nous pouvons obtenir la référence de l'article. Encore une fois, nous n'avons créé que des interfaces pour le joueur et pour la manette du joueur. Alors, créons-en un nouveau. Cliquez avec le bouton droit sur Blueprints et Blueprint Interface. Créons-en un pour la base d'objets. Et ici, double-cliquons et, pour la fonction, obtenons la référence de l'article. Et maintenant, ce sont les sorties. N'oubliez pas d'écrire ici le plan auquel vous souhaitez faire référence. Je veux faire référence à ma base d'articles, et je vais l'appeler article. Passons maintenant à la base d'articles et ajoutons cette interface. Accédez aux éléments, aux éléments basés ici dans les paramètres de classe et ici, dans la base d'éléments de l'interface compilez ici dans l'interface, double-cliquez dessus ici et définissez la référence comme référence automatique, car nous sommes à l'intérieur de la base d'éléments. Revenons maintenant au joueur. Et ici, nous pouvons maintenant faire glisser la souris et dire « Obtenir la référence de l'article ». Nous avons maintenant la référence de cet article et nous pouvons maintenant l'y insérer et l' ajouter à l'inventaire. Assemblons-les ici, pour que ça ait l'air un peu plus beau, quelque chose comme ça ici, vous pouvez même double-cliquer ici et le faire ressembler à ceci. Nous obtenons le premier objet dont la largeur se chevauche et obtenons cette référence, puis nous et obtenons cette référence l'ajoutons à nouveau à l'inventaire, si vous voulez piller chaque objet sur lequel vous vous trouvez en un seul clic. Vous devez le prendre, par exemple, pour chaque boucle. Ensuite, pour chaque boucle, obtenez la référence de l'article. Ensuite, vous pouvez brancher chacun d'entre eux ici. Cela va donc suivre tout cela en boucle jusqu'à ce qu'il n'y ait plus d'objets à piller , puis ça s'arrêtera. Donc, je veux juste piller un objet à la fois. J'en suis satisfait, de tout, et je vais maintenant revenir à l'inventaire. Donc, ici, nous avons maintenant un élément auquel nous faisons allusion. Donc, si vous cliquez simplement sur Imprimer et que vous venez de vous connecter ici, et que vous connectez simplement ceci à ceci ici. Ainsi, vous pouvez simplement voir ce qui se passe, ce qui se passe. Cliquons donc sur Play. Maintenant. Voici le serveur. Je vais y aller ici, comme sur E, et il y aura la mention viande. Il sait donc quel objet on perd. Je suis maintenant debout avec deux objets, il va perdre. Le premier se chevauche avec. Si je clique dessus, ça va indiquer Cleaver. Si je vais ici sur le côté et que je n'interagis qu' avec la banane, elle dira « banane ». Génial. Donc, tout fonctionne. Donc, ici, ce que je veux faire, c'est simplement cliquer avec le bouton droit de la cela en variable et l'appeler élément à ajouter. Et pour celui-ci, je veux également obtenir les informations sur l'article et en faire une variable. Il y aura beaucoup plus de nettoyage pour nous plus tard. N'oubliez donc pas que nous avons créé des informations sur l'article, mais nous avons besoin d'un nom. Et souvenez-vous encore une fois, dans la base d'articles, nous avons déjà créé le nom de cet article, cette variable ici. Et lorsque nous l'avons ajouté à la base d'articles ou à celle de chacun de ces enfants, nous avons dû inscrire le nom de l'article ici. Donc, si je l'ouvre normalement comme ceci, souvenez-vous que lorsque vous créez une variable dans la classe de plan parent, basée sur des éléments, tous les enfants hériteront de cette variable. Et vous pouvez maintenant saisir ici les valeurs par défaut de la classe et les nommer toutes ici. Nous avons donc déjà ce nom. Passons donc à la composante inventaire. Maintenant, dérivons de l'élément et obtenons cette variable de nom d'élément. Et maintenant, nous pouvons le brancher ici et obtenir les informations sur cet objet. Juste pour celui-ci, je vais juste cliquer avec le bouton droit de la souris pour promouvoir une variable et je vais juste l'appeler élément pour ajouter des informations. Nous avons donc les informations relatives à l'élément que nous voulons ajouter, et c'est tout pour le moment. Compilons donc tout et passons à la leçon suivante. 38. 6.03 Ajouter des articles à l'inventaire: Bon, maintenant nous avons besoin d'un peu de logique pour ajouter l'objet à l'inventaire. Nous avons donc fait cet ajout à l'inventaire. Après cette leçon, nous allons vérifier si cet article est empilable ou non. S'il n'est pas empilable, nous allons créer une nouvelle pile dans l'inventaire et ajouter cet objet. Si l'objet est empilable, nous allons vérifier s'il se trouve déjà dans l'inventaire et l'ajouter à la pile. Sinon, nous allons créer une nouvelle pile. Nous allons faire ceci et le suivant, mais pour deux seulement. Passons à un meilleur rythme. Nous devons d' abord créer une fonction avant de pouvoir faire tout cela. Créons donc une nouvelle fonction ici, appelons-la ajouter un article à l'inventaire. Donc, cette fonction est la dernière étape. Ainsi, lorsque nous créons une nouvelle pile, ou que nous trouvons une pile partielle et que nous ajoutons cet élément, cette fonction prend place. Supposons que nous créions une nouvelle pile avec succès. Ensuite, nous ajouterons cet objet à l'inventaire après avoir créé une nouvelle pile. C'est donc la dernière étape. Faisons simplement celui-ci avant de faire tout le reste, car cela rendra les choses beaucoup plus fluides. Passons à l'ajout de l'inventaire de l'article 2. Ici, pour la saisie, faisons référence aux informations sur l'article. Donc, l'article que nous voulons ajouter et aussi la quantité de l'article. C'est donc un entier et appelons-le quantité. Et n'oubliez pas que pour les objets, nous avons également des emplacements d'inventaire. Donc, si nous revenons à la manette du joueur et ici, pour chaque objet, nous avons également l'ISM, la quantité d'objets, l'emplacement d'inventaire et l'index d'inventaire, donc nous pouvons également et l'index d'inventaire, l'utiliser ici. Revenons donc à la composante ici et à la quatrième ici. Passons aux emplacements d'inventaire. Sélectionnons cette référence de Widget Blueprint, et appelons-la, appelons-la emplacements d'inventaire. Et celui-ci, appelons-le slot index. Et je suis également en train d'en créer un nouveau. Et nous devons savoir à quel inventaire nous l'ajoutons ? L'ajoutons-nous à la catégorie des armes ? L'ajoutons-nous à cette catégorie d'aliments ou à cette catégorie de potions ? Alors, créons-en un nouveau ici également. Et cherchons des emplacements d' inventaire. Parce que c'est le type de structures d'emplacements d'inventaire. Donc, emplacement d'inventaire, changeons-le en tableau, et appelons-le inventaire. Cela dépend donc de la catégorie d'inventaire dans laquelle nous nous trouvons. Nous souhaitons ajouter cet article dans cette catégorie. D'accord, prenons maintenant cet inventaire et définissons l'élément du tableau. Maintenant, en dehors de cette fonction, il sera décidé à laquelle de ces trois elle sera ajoutée. Nous allons prendre ces informations et définir l'élément du tableau. Maintenant, qu'est-ce que l'indice ? L'index est simplement cet index d'emplacement. C'est très simple. Maintenant, pour ce produit, encore une fois comme avant, prenons celui-ci et écrivons make. Maintenant, pour cet article, nous voulons l'ajouter ici. Nous voulons ajouter cette quantité, nous voulons ajouter cet emplacement d'inventaire et nous voulons ajouter cet index d'emplacements. C'est donc l'article que nous ajoutons maintenant à l'inventaire. Et c'est en fait aussi simple que cela, cette fonction est terminée. Il y a un très petit détail. Et imaginez si nous sommes déjà dans cette catégorie. Disons que je suis en train de piller une arme, que je charge, tout se passe. Et je suis déjà dedans. Comme si j'avais déjà sélectionné les catégories de mon inventaire d'armes. Ainsi, lorsque je charge une arme, elle devrait instantanément mettre à jour mon inventaire. Je peux donc constater que j' ai chargé l'arme ici juste pour m'assurer que l'inventaire est à jour. Donc, l'inventaire dans lequel je me trouve déjà, donc si je perds une arme donc si je perds une arme alors que je fais déjà partie de la catégorie des armes, nous voulons nous assurer que l'interface utilisateur est mise à jour afin que je puisse la voir changer. Donc, ce que nous voulons faire, prendre cet objet et le détailler ici. Et je veux prendre la catégorie de cet article que je suis en train de charger. Maintenant, je veux voir si l'article que je charge appartient à la même catégorie que celui que j'ai sélectionné. Apparemment. Si c'est le cas, je souhaite mettre à jour l'interface utilisateur. Si ce n'est pas le cas, je ne souhaite pas mettre à jour l'interface utilisateur. Et si je ne veux pas mettre à jour l'interface utilisateur, c'est parce que n'oubliez si je mets simplement cette nourriture en boucle ici et qu'elle est chargée ici, je suis, j'ai sélectionné la catégorie des armes. Nous n'avons pas vraiment besoin de mettre à jour cette interface utilisateur, car elle a été ajoutée à la nourriture et je suis au courant des armes donc nous n'avons pas vraiment besoin de mettre à jour quoi que ce soit pour le moment. N'oubliez pas que lorsque vous cliquez sur de nouvelles catégories ici, toutes les machines à sous que nous sommes déjà en train de mettre à jour sont automatiquement mises à jour lorsque nous cliquons sur les catégories de l'inventaire. Toutefois, nous voulons simplement mettre à jour si nous sommes déjà dans cette catégorie, car elle n'est mise à jour nulle part instantanément. Donc, ici, je vais vérifier si cette catégorie d'articles évoquée est égale ici, égale à la catégorie sélectionnée que j'ai actuellement. Et si c'est le cas, prenons une branche ici. Si c'est égal, souvenez-vous que dans le widget Inventory Slot, nous avons créé notre téléphone, nous avons créé notre événement appelé mises à jour, interface utilisateur de l'emplacement d'inventaire. Et l'article que nous devons brancher, c' est cet article et cette quantité. Maintenant, cette interface utilisateur sera mise à jour chaque fois que je chargerai mon article. Donc, si je fais déjà partie de cette catégorie sélectionnée et que cet article va être ajouté à cette catégorie d'inventaire sélectionnée. Cela va mettre à jour instantanément mon interface utilisateur afin que je puisse réellement voir le changement, n'est-ce pas ? Maintenant, j'ai créé des nœuds redirection et voici à quoi cela ressemble un peu plus organisés, organisez-les auparavant, assurez-vous simplement que votre code est mieux organisé. Et maintenant, lorsque vous êtes satisfait du résultat, compilons, sauvegardons tout et passons à autre chose. 40. 6.05 Trouver une pile partielle: Très bien, bon retour. Nous passons maintenant à la deuxième partie où nous allons créer une macro pour trouver une pile partielle qui existe déjà dans l'inventaire. Jusqu'à présent, nous avons essayé de voir si l'article était empilable ou s'il s'agissait de noix. Et s'il n'est pas empilable, nous créons une nouvelle pile et ajoutons cet objet à l'inventaire. Alors maintenant, si l'objet est empilable, essayons de trouver dans l'inventaire si nous l'avons déjà. Maintenant, ce que nous pouvons faire comme avant, où nous avons l'inventaire. En fait, copions simplement tout cela ici. Et je vais également copier cette boucle. Copiez simplement ceci, revenez en arrière et collez-le. Donc, en gros, comme avant, nous allons prendre cette catégorie pour cet article. Ensuite, nous allons sélectionner la catégorie. Parce que, selon la catégorie de l'objet, nous voulons examiner l'intérieur de cet inventaire spécifique. Par exemple, si nous faisons allusion à une potion, nous allons sélectionner la potion et parcourir l'inventaire des potions pour voir si nous avons déjà l' objet que nous sommes en train parcourir l'inventaire des potions pour voir si nous avons déjà l' objet que nous de charger. Donc, si c'est vrai, examinons simplement le plan d'exécution et, pour voir si nous avons l'élément précis auquel nous faisons allusion, nous pouvons en déduire et le déchiffrer. Et ici, dans cet article, allons-y encore une fois. Et n'oubliez pas que nous avons ici un nom pour l'article. Je vais donc faire glisser le curseur à partir d'ici et dire égal et sélectionner celui-ci pour que le texte soit exactement égal. Maintenant, si le nom est exactement égal au nom de l'article, y compris, je vais le prendre, le séparer également et relier le nom ici. Masquez également les broches non connectées pour celui-ci. Et créons également une branche. Maintenant, ce que nous faisons, c'est parcourir l'inventaire en boucle, par exemple les potions. Donc, pour charger une potion, puis pour chaque objet qu'elle contient, nous sommes en train de vérifier si ce nom existe pour l'objet. Nous faisons allusion. Si le nom existe, cela signifie que l'article se trouve déjà dans l'inventaire et que nous en avons trouvé une partie. La deuxième chose que nous devons faire est de nous assurer que pour le moment, nous ne faisons que vérifier si l'article fait partie de l'inventaire. Mais que se passe-t-il si l'objet a déjà atteint la taille maximale de la pile ? Donc, par exemple, les potions, disons que je peux perdre cinq potions de santé. Et si ? Et si, oui, j'ai l' objet dans mon inventaire que j'en ai trouvé une partie ? Cependant, j'ai déjà tout ce qu'il faut à ce sujet, en ce qui concerne l'échelonnement que j'ai. Supposons que nous vérifiions non seulement le nom, mais également la quantité que nous avons dans l'inventaire. Cliquez donc sur celui-ci et affichons la quantité d'articles correspondant à cet article dans notre inventaire. Et la quantité de cet article doit être inférieure à la taille de pile maximale de cet article ici. Montrons donc la taille maximale de la pile et connectons-la ici. Ainsi, pour trouver une pile partielle dans l'inventaire, elle doit porter exactement le même nom que l'article de notre inventaire. Et l'article contenu dans notre inventaire doit être, la quantité doit être inférieure à la taille de pile maximale de l'article. Sinon, nous devons trouver une nouvelle pile et ajouter des modifications à un nouvel emplacement d'inventaire. Cliquons ici, masquons également les broches connectées pour celui-ci. Ici, faisons glisser et disons fin à Boolean. Nous utilisons donc celui-ci et Boolean. Donc, si le nom est exactement le même et la quantité est inférieure à la taille maximale de la pile, alors nous pouvons continuer disant que nous avons trouvé une pile partielle. Créons donc un nouveau booléen. Et celui-ci que je vais appeler doit créer une pile. Je vais définir celui-ci sur false ici, car nous avons maintenant trouvé une pile partielle et la quantité de, la quantité, n'est pas supérieure à la taille maximale de la pile. Elle est inférieure à la taille maximale de la pile, ce qui signifie que nous pouvons réellement ajouter des éléments au-dessus de la pile. Il doit donc créer une pile définie sur false et nous pouvons continuer et modifier l'élément. Donc, avant de faire cela, comme avant, sélectionnons tout cela ici. Cliquez avec le bouton droit pour en faire une macro. Et cette macro, nous allons l'appeler find partial stack, comme celle-ci ici. Et encore une fois, pour la sortie, je dois ajouter un, un article d'inventaire. Tellement traînant cette année. Donc, pour la sortie, j'ai besoin de tout cela. Encore une fois, tout comme ce que j'ai fait avec la création d'une nouvelle pile. Allons-y et cliquons sur Rechercher une pile partielle. Ajoutons ici quelques variables. La première étant équilibrée, nous avons trouvé un objet et voici une épingle d'exécution. Et laissons ça de côté pour le moment. Donc, élément trouvé ici dans la pile partielle, encore une fois, comme avant, élément à ajouter. Et puis nous avons la quantité. Pour ajouter, nous avons l'index des emplacements et le dernier, nous avons la variable d'inventaire. Le premier élément concerne les informations sur l'article. C'est l'élément que nous souhaitons ajouter. Cette quantité n'est qu'un entier. L'indice du slot n'est également qu' un entier. Et l'emplacement d'inventaire, en fait j'ai oublié de l'ajouter. Permettez-moi d'ajouter l'emplacement d'inventaire, qui est le Widget Blueprint. Donc, inventoriez les emplacements et sélectionnez les plans de ce widget. En le mettant ici, je vais juste le placer au-dessus de l'index des emplacements ici. L'inventaire se compose des emplacements d'inventaire, puis de leur sélection sous forme de tableau. Et celui-ci, je vais le nommer introuvable. Donc, si nous n'avons pas trouvé d'objet, et que c'est un stylo d'exécution. Et je veux aussi en créer une nouvelle appelée loop complete, comme avant, avec laquelle nous pouvons faire quelque chose ici. La boucle est donc terminée, introuvable. Compilons et sauvegardons tout. Très bien, revenons ici et réorganisons un peu les choses à l'intérieur de cette macro. C'est donc ce que vous avez jusqu'à présent. Et si nous n'avons pas besoin de créer une pile, nous pouvons l'ajouter à l'inventaire. Alors, que voulons-nous ajouter ? Que voulons-nous ajouter ? Cet article est-il ici, élément, élément pour ajouter des informations. Copions ceci et collez-le ici, la quantité de l'article. Faisons glisser cet élément pour l'ajouter comme avant et disons la quantité. Prenez cette quantité d'articles et ajoutez-la ici. Pour l'emplacement d'inventaire. Nous avons obtenu cet inventaire ici afin de pouvoir utiliser l' emplacement et l'index d'inventaire. Mettons-les ici également. Ensuite, nous avons à nouveau l' inventaire. C'est celui-ci. Faisons-le glisser et connectons-le. OK, nous sommes donc vérifier si la quantité d'objets dans l'inventaire est inférieure à la taille maximale de pile l'objet à piller ou de l'objet auquel il est fait allusion ici. Et si c'est le cas, nous avons trouvé un objet et nous n'avons pas besoin de créer de pile. Permettez-moi donc de sortir d'ici maintenant, avant de faire quoi que ce soit, permettez-moi simplement d'ajouter une autre logique pour m'en assurer. Donc, ici, en ce moment il y a quelque chose que nous ne vérifions pas. Si je prends cette quantité pour ajouter l'article et que je dois me demander, est-elle inférieure ou égale à l'année ? Permettez-moi de prendre l' objet pour ajouter des informations, le décomposer et prendre la taille maximale de la pile connectée ici. Maintenant, avant de vérifier l'article d'inventaire, je suis en train de vérifier la quantité que j' apprends en ce moment. Est-ce plus que ce que je peux mettre dans cette pile ? Ou puis-je ajouter toute cette quantité à la pile que je viens de trouver ? Donc, je dois juste m'assurer que je ne vais pas créer une autre pile ici. Alors laisse-moi le connecter. Donc, si cette quantité à ajouter est inférieure ou égale à la taille maximale de la pile, nous n'allons pas créer de pile. Permettez-moi donc de l'ajouter ici également. Et laissez-moi d'abord ajouter l'élément. Ensuite, say has to create stack est défini sur false. Et laissez-moi le casser. Donc, pour le moment, nous n'avons aucune épingle d'exécution du break, alors laissez-moi cliquer dessus et créons-en une autre appelée break loop. Passons maintenant à la boucle de freinage. Et donc ici, si c'est vrai, comme la quantité d' objets que nous devons ajouter, si elle n'est pas inférieure à la taille maximale de la pile, cela signifie que nous devons en créer une autre. Nous allons donc ajouter tout ce que nous avons dans cette pile actuelle. Ensuite, nous allons créer une autre pile. Encore une fois, comme avant, souvenez-vous d'ici et de la nouvelle pile Craig, vous avez calculé ce qu'il vous restait ici. Nous devons donc réellement faire la même chose. Copions-collons simplement ceci. Je vais donc copier tout cela ici, en accédant au graphique des événements ici. Et nous pouvons le coller ici. Voici ce que nous devons ajouter à nouveau à l'inventaire, comme avant, nous devons ajouter la quantité correspondant à la taille maximale de la pile pour cet article ici. Et connectons l'article. Connectons l'emplacement d'inventaire, l'index des emplacements et l'inventaire. Ensuite, nous allons définir ce booléen sur true. Nous devons donc créer une nouvelle pile pour ajouter cette quantité restante d'objets. Alors mettons-le sur vrai. Ensuite, je vais le faire glisser et le brancher ici parce que cela remonte à cette boucle de rupture. Double-cliquez ici. Rendons-le propre. Revenons maintenant à cette fine pile partielle et faisons quelque chose dans son intégralité. Et n'oubliez pas de faire cette boucle de pause à l'intérieur. Nous nous assurons donc de rompre la boucle pour l'ensemble. Prenons la main pour créer une pile et créer une branche. Alors maintenant, nous nous demandons : devons-nous fabriquer une pile ou des noix ? Comment l'avons-nous réglé au cours de cette boucle ? Si nous devons créer une pile, nous voulons la définir sur item not found, car nous devons créer une nouvelle pile. Si nous n'avons pas besoin de créer une nouvelle pile, la boucle est simplement terminée, comme ceci. Mettons-le ici, juste comme ça. Donc, si nous devons créer une nouvelle pile, cela signifie que l'objet est introuvable. Et si l'objet n'est pas trouvé, faisons-le glisser ici et créons une nouvelle pile. Alors maintenant, l'article n'est pas trouvé. Nous devons créer une nouvelle pile. OK, donc si l' objet n'est pas trouvé, nous allons créer une nouvelle pile et la boucle sera terminée C'est juste que nous avons déjà trouvé la pile et que nous n'avons rien à faire pour pouvoir émettre un son ou tout ce que nous voulons. Revenons maintenant à la fine pile partielle. Il nous manque une dernière étape. Supposons que nous ayons indiqué ici que nous avons une pile égale au nom de l'objet auquel nous avons fait allusion et que la quantité de l'objet contenue dans cet inventaire est inférieure la taille maximale de la pile de l'objet auquel nous faisons allusion. Si c'est faux, nous devons faire quelque chose comme avant. Nous allons suivre cette boucle et dire plus, plus. Nous allons donc l' incrémenter d'une unité. Et comme avant, nous veillons à ce que ce nombre soit inférieur au nombre de machines à sous que nous avons dans notre inventaire. Faisons une branche. Et si c'est vrai, si c'est inférieur au montant, en fait , allons-y. Et si c'est réellement inférieur au nombre de machines à sous, allons-y encore et encore, boucle ici et en trouvant un, trouvons un élément dans l'index suivant, n'est-ce pas ? Je l'ai donc un tout petit peu organisé . C'est donc maintenant plus grand que le nombre de machines à sous dont nous disposons. Ensuite, nous allons considérer que cela doit créer une pile à définir sur true, car nous ne trouvons aucun élément auquel nous pouvons ajouter cet objet ici aussi qui fasse allusion. Nous devons donc créer une nouvelle pile, la déplacer à partir de celle-ci et l'intégrer à la pause. Parce que maintenant nous devons rompre la boucle. Et maintenant, lorsque nous interrompons la boucle, souvenez-vous que lorsqu'elle sera terminée, cela dit : « Oui, vous devez créer une pile et celle-ci sera transférée à l'objet introuvable, qui sera ensuite redirigée vers l'objet introuvable, qui sera ensuite redirigée et créera une nouvelle pile ». D'accord, alors assurons-nous que cela fonctionne réellement et voyons si nous avons des bugs, comme avant. Sauvegardons tout. Maintenant, la valeur empilable des bananes est définie sur true, nous pouvons donc l'essayer avec les bananes. Et définissons cela ici aussi. Regardons ce que nous avons dit pour les bananes. Donc, en ce qui concerne les informations sur les articles que contient la banane, si nous la maximisons, elle a une taille maximale, taille de pile de dix. Dupliquons donc cette banane ici et en maintenant la touche Alt enfoncée et en la faisant glisser, je vais la dupliquer ici. Donc, pour celui-ci, je vais régler la quantité d' articles à cinq. Et pour celui-ci, je vais le régler à quatre. Et puis copiez-le à nouveau. Et redéfinissons celui-ci à cinq. Sauvegardons tout. Essayons de le rejouer pour le serveur. Si je clique sur AI, je clique sur E ici. Il a été ajouté à la nourriture ici. Oui, nous avons cinq bananes. Je clique dessus ici. C'est écrit « Car il y a quelque chose dans la quantité ». Nous le réglons mal ici. Et si je clique sur l'oreille, c'est réglé sur cinq, donc il y a un problème. Il s'agit simplement de régler la quantité ici. Revenons en arrière. Et bien sûr, je vois tout de suite le bogue ici dans la recherche de piles partielles. En fait, je n' ajoute pas la quantité. Alors laisse-moi le supprimer, en fait, laisse-le être. Ce que nous devons faire, c'est prendre cette quantité d'articles, puis modifier avec ce qui se trouve déjà dans l' inventaire, bien sûr. Donc, prenez ceci ici et prenez en disant « ajoutez, donc, plus les pertes », le montant qui se trouve déjà dans l'inventaire. Alors laisse-moi le brancher ici. Et laissez-moi le brancher à celui de l'édition T2 et de le compiler. Et juste avant d'essayer le jeu, donc voici la boucle, complétons . Détruisons simplement l'objet comme avant, car nous l' ajoutons à l'inventaire. Laisse-moi juste éloigner un peu tout ça d'ici. Laisse-moi coller ça. Et pour terminer la boucle, allons-y et détruisons les objets. Alors laissez-moi le redimensionner pour vous. Permettez-moi de cliquer sur E ici. Maintenant, nous en perdons cinq ou en chargeons neuf. Maintenant, il devrait dire dix et pour seulement 10,5. Et je pense qu'en fait, c'est correct maintenant, mais je pense que nous avons encore un problème de retard, comme nous l'avons fait ici avec la création d'une nouvelle pile. Et nous avons retardé le code. Si je le trouve ici, nous avons retardé le code. Faisons la même chose parce que je pense que c'est en fait la même chose ici. Donc, lorsque l'objet n' est pas trouvé et qu'il crée une nouvelle pile, retardons-le de 0,03, comme avant. Essayons-le avant de tout réorganiser, cliquons sur Play. Et je vais regarder ça. Je vais y retourner, je vais y aller, je vais aussi le charger. Alors maintenant, il y en a cinq, c'est toujours en panne. Et si j'essaie d' augmenter le délai ? Et j'essaie encore ? Maintenant, il fonctionne parfaitement. Il s'agit donc en fait de ce retard. Nous devons corriger ce délai ici, peut-être quelque chose de 0.05. Je ne suis pas fan de le mettre trop haut, parce que vous pouvez vraiment le sentir dans le jeu si vous le mettez trop haut. J'essaie juste de faire en sorte que ça fonctionne vraiment bien. Donc 0,05 fonctionne bien, vous pouvez l'avoir ainsi, peut-être 0,04 semaine également. Mais maintenant, cela fonctionne parfaitement. Maintenant, nous sommes en train de les ajouter. Donc, si nous cliquons sur Play, j'ai adoré ceux qui en ont cinq. Donc celui-ci, je vais également laisser celui-ci qui en compte cinq. Maintenant, si je charge celui-ci, il est également ajouté à l' inventaire. Et si j'ai fait allusion à ceci et à cela, je les mets dans mon inventaire. Comme il ne faut pas oublier que nous avions deux couteaux et deux couperets, il faut augmenter le délai pour celui-ci. Alors peut-être que 0,05 est un meilleur chiffre. Changeons également cela ici dans la création d'une nouvelle pile, juste pour ne pas avoir ce bogue. Et comme test final, recommençons le jeu. Laisse-moi charger ça ici, ça donne cinq. Laisse-moi charger ce milieu. Il s'agit de la version 2.2. C'est exact. Ce fessier, ça, et tout cela est correct. Maintenant, génial. C'était donc tout pour créer une pile partielle. Donc, faisons en sorte que cela soit plus organisé pour ce délai, voici juste, plaçons-le ici. Donc, ce que nous faisons ici, c'est créer une nouvelle pile et nous trouvons également une pile partielle si nous l'avons déjà dans l'inventaire et que l' objet est empilable, sinon s'il n'est pas trouvé. Nous avons donc déjà une pile complète. Nous allons créer une nouvelle pile pour cela. Et ici, dans la boucle terminée, vous pouvez détruire l'objet. Vous pouvez même jouer un effet sonore, et nous le ferons plus tard. Alors, organisez votre code pour le rendre plus beau, et c'est tout pour le moment, enregistrez votre travail et passons à autre chose. 41. 6.06 Optimiser l'inventaire: Bonjour et bon retour. Donc, pour le moment, je souhaite optimiser l'inventaire avant de continuer. Il y a donc un petit bug. Maintenant, si je fais allusion à celle-ci ici et à celle-ci ici, ça fait quatre plus cinq, ça devrait faire neuf bananes. Et c'est exact. Cependant, si je clique à nouveau sur Jouer et que j'y fais allusion sans ouvrir l'inventaire, rien ne s'affiche correctement. Si je perds le dernier et qu'il indique dix, le premier deck et le prochain stack, ce n'est pas le cas. Il n'en montre que quatre. Ce devrait être 10.4. Il y a donc un bug ici. En effet, nous ne créerons pas tous ces widgets à moins d' avoir ouvert l'inventaire. Vous pouvez donc voir si je clique à nouveau sur Play. Et si j'ouvre l'inventaire, toutes les catégories, ferme l'inventaire et que je fais allusion à tout ce qui se trouve ici. Vous pouvez voir que lorsque j'ouvre l' inventaire, cela fonctionne réellement. Donc, la raison pour laquelle cela pose problème depuis le début, c'est parce que nous n'ouvrons pas l'inventaire. Et cela s'explique également par le fait que nous n' afficherons pas tous ou ne créerons pas tous ces emplacements à moins d' avoir ouvert l'inventaire. C'est un petit bogue que nous voulons corriger. Et je veux aussi corriger et optimiser l'inventaire parce que je sais que le code peut être meilleur et faisons-le de la meilleure façon. Mais passons à la manette du joueur. Passons au PC **** ici. Et jusqu'à présent, nous avons celui-ci appelé Create, des widgets d'emplacements d'inventaire. Je veux séparer la création ici. Alors, ce que nous devons faire au lieu de le créer uniquement pour la catégorie d'inventaire sélectionnée. Nous devons le créer pour toutes les catégories, même si nous n'avons pas ouvert l'inventaire. Ensuite, je veux un événement séparé où nous afficherons les widgets des emplacements d'inventaire. Nous avons donc créé tout cela dès le début. Ainsi, lorsque nous ouvrons l'inventaire et cliquons sur différentes catégories, nous n'en créons pas de nouvelles. Nous n'en avons pas besoin, nous n'avons besoin de le créer fois ici et de les ajouter au tableau. Ensuite, nous affichons simplement les emplacements déjà créés lorsque nous cliquons sur les catégories. Il y a donc cette optimisation que nous pouvons faire. Permettez-moi donc de cliquer avec le bouton droit de la souris, d' accéder à des événements personnalisés et d'en créer un appelé Affichage, inventaire, widgets de machines à sous. Et créons-en un nouveau ici, en passant en revue les clients. Alors, utilisez un client propriétaire fiable. Donc, pour celui-ci, nous voulons juste afficher les widgets. Il s'agit donc en fait de cette dernière partie du code. Permettez-moi de le copier ici. Je vais cliquer sur Control X pour le découper et le coller ici. Nous avons maintenant besoin d'une référence à l'inventaire ici. Je vais donc cliquer ici et rechercher un inventaire, inventaire AAC, et l'appeler inventaire. Et celui-ci, clairement, les enfants doivent également être là, car celui-ci sert juste à afficher les emplacements d'inventaire. Il s'agit donc d'un mot spécifique qui s'affiche, et je vais l' ajouter ici. Et nous avons également besoin de cette boucle ici. Nous en avons également besoin ici. Je vais donc simplement le copier et le coller ici parce que nous devons parcourir tous les widgets et les afficher. Nous en avons donc besoin également. Et j'ai également besoin de cette catégorie sélectionnée. Je vais le copier, et je vais le coller ici. Et connectons l'inventaire. Maintenant, pour ces lignes et colonnes, souvenez-vous que nous venons de dire ici divisés par quatre. Découpons-le ici, collons-le ici, connectons-les comme ça, et relions également l' indice à cette année. Et ici, pour cet inventaire, ce que nous pouvons faire, c'est simplement en déduire et dire : «  Obtiens, qu'est-ce que nous obtenons ? Nous venons d'obtenir cet index ici. Et prenons ça et disons pause. Maintenant, pour ce qui est de l'objet que nous voulons mettre à jour ici pour l'inventaire, glissons-le et connectons-le. La quantité est également la suivante. Maintenant, pour ce contenu ici, souvenez-vous avant le contenu ou l'enfant de quadriller ici le contenu est ce widget que nous avons créé. Cependant, souvenez-vous de ce widget, nous l' enregistrons dans ce tableau dans l'emplacement d'inventaire l'index des emplacements ici et dans l'emplacement d'inventaire. Permettez-moi de le supprimer ici. Et je peux le faire glisser depuis emplacement d'inventaire et l'ajouter ici au contenu, tout en mettant à jour l'interface utilisateur de l'emplacement d'inventaire. Cet index de diapositives est disponible ici. Permettez-moi donc de le connecter et d' ajouter quelques nœuds de redirection. C'est donc agréable à regarder. OK, donc ici j'ai ajouté des nœuds de redirection. Donc, comme avant, nous éliminons les enfants, puis nous parcourons en boucle tous les widgets que nous avons créés. Nous obtenons cet indice en fonction l'inventaire que nous voulons examiner en ce moment. Ensuite, nous prenons cette quantité d'articles, les connectons, mettons à jour l'interface utilisateur et affichons tous ces widgets de lots d' inventaire. Maintenant, avec cet événement, il ne nous reste plus qu'à créer tous les widgets. Parce que maintenant, lorsque nous cliquons sur la catégorie d'inventaire, les widgets. En fait, nous ne faisons que les afficher sans les créer tout le temps. Donc, ici, nous voulons également résoudre ce problème, car pour le moment, tous les widgets ne sont pas créés. Vous pouvez le voir ici. Il ne fait que créer le widget pour la catégorie d'inventaire sélectionnée. Donc, ce que nous pouvons faire ici, nous pouvons le faire traîner comme ça. Et exactement ce que nous avons fait ici avec les catégories, nous avons obtenu toutes les catégories. Copions celui-ci. Obtient les noms des lignes du tableau pour toutes les catégories. Voici donc les trois catégories que nous avons. Et voyons la longueur des catégories. Maintenant, il va en imprimer trois parce que nous avons trois catégories. Permettez-moi de cliquer ici avec le bouton droit de la souris, de la transformer en variable et de l' appeler un ensemble de catégories. Et c'est le montant que nous allons mettre en boucle. Nous allons donc mettre en boucle autant de montants pour créer tous les widgets. Alors laissez-moi simplement le créer. Ce n'est donc pas trop confus. Et pour ce qui est de la longueur du nombre de catégories, je vais en fait traîner à partir de là et dire moins une parce que nous allons les mettre en boucle en partant de zéro. Donc 01.2, donc nous n'avons pas besoin de ça pour dire trois litres, donc nous louerons quatre fois. Nous avons donc trois catégories. Nous commençons à imprimer à partir de zéro. Donc 01,2, c'est pourquoi je soustrais par un. Et permettez-moi de créer une autre variable appelée compteur temporaire. Nous allons donc utiliser celui-ci pour savoir combien de fois nous allons faire une boucle. Donc, s'il y a autant de catégories, prenons ce compteur temporaire, définissons-le sur un entier, disons « découpez-le ici ». Donc, si le compteur temporaire est inférieur ou égal au nombre de catégories, n'oubliez pas que le compteur temporaire commence à zéro, la valeur par défaut est zéro. Donc, si le nombre de catégories est inférieur ou égal le nombre de catégories deux, alors nous pouvons passer revue les catégories en boucle. Par ici. Connectons-le et faisons-le en boucle. Au lieu d'utiliser la catégorie d'inventaire sélectionnée, je vais la supprimer et utiliser notre compteur temporaire à la place. Vous pouvez cliquer dessus avec le bouton droit de la souris ici, puis cliquer sur Modifier le type d'épingle, et vous pouvez le transformer en entier. Nous utilisons maintenant un entier et nous allons le connecter ici. Donc, comme vous pouvez le voir ici, permettez-moi de le ranger. Permettez-moi de supprimer tout cela. Faites-le glisser ici, déconnectez-le également pour le moment. Donc, ce qui va se passer, c'est que nous allons commencer zéro, car la valeur par défaut des comptes temporaires est zéro. Nous allons sélectionner cette option ici, les armes. Et maintenant, il va demander, s'agit d'un compte temporaire ou inférieur ou égal, le nombre de catégories, qui est de deux dans ce cas. Donc, d'abord, il va mettre le premier en boucle, puis nous allons en ajouter un à ce compteur, donc il en indique un. Et puis ça va faire une boucle à travers ça, puis ça va faire une boucle à travers ça. Et quand il atteindra trois, quand il atteindra trois, alors celui-ci sera en fait supérieur au nombre de catégories, qui est de deux. Et puis ça ne bouclera plus. C'est donc ce que nous sommes en train de faire. Nous allons donc relier cet inventaire à ces trois catégories. Et ici, reconnectons-le à la matrice. Et reconnectons-le également au get over here. Compilons. Maintenant, lorsque nous aurons terminé la boucle pour le premier, prenons le compteur temporaire, dragon, et disons plus, plus. Nous en ajoutons donc un au compteur. Ensuite, nous allons revenir en boucle. Alors appelons-le à partir de là, créons des widgets d'emplacements d'inventaire. Créez des widgets d'emplacements d'inventaire. Et nous devons redéfinir l'inventaire. On peut juste sortir de celui-ci et le brancher ici. Alors maintenant, cela fonctionne. Et si nous y jetons un coup d'œil, nous ne voulons pas celui-ci Supprimons-les ici et je vais créer quelques notes de redirection, donc il vaut mieux y jeter un œil. Alors maintenant, je l' ai organisé ici comme vous pouvez le voir, vous pouvez donc voir le code ici. Donc, d'abord, nous obtenons combien de catégories avons-nous ? Et nous soustrayons par un parce que le compteur temporaire commence à zéro. Nous avons donc trois catégories au total à partir de 01.2. Donc, ces trois catégories, nous allons les parcourir ici. Et nous allons parcourir chacune d'entre elles en boucle dans la catégorie. Nous allons créer des widgets. Et nous allons ajouter, comme auparavant, les catégories ou les emplacements d'inventaire au tableau de catégories que nous avons sélectionné. Et encore une fois, nous sommes en train de sélectionner dès maintenant un compteur temporaire. Et quand nous avons terminé la boucle pour le premier. Donc, lorsque nous aurons terminé la boucle pour la catégorie des armes, nous passerons à la version complète, nous en ajouterons une au compteur temporaire. Donc ça commence à zéro, puis ça passe à un. Ensuite, nous recréons widgets des emplacements d'inventaire ici. Il va donc fonctionner à nouveau. Et maintenant, le compteur temporaire est égal à un. Ensuite, tous les widgets de la catégorie des aliments seront créés. Et quand ce sera fini, il le mettra à deux. Ensuite, ça va créer pour les potions. Et quand il y aura trois ici, alors ça dira « faux ». Et ce que nous pouvons faire ici, à la fin, lorsque nous aurons créé tous les widgets ici, nous pouvons afficher l'inventaire Nous pouvons donc appeler celui-ci intitulé Display inventory, slot widgets. Permettez-moi donc d'appeler le client ici avant d'oublier l'affichage ici. Et l'inventaire, nous pouvons le mettre ici. Et appelons-le ici quand il sera plié. Lorsque nous aurons créé tous les widgets, disons les widgets d'affichage, d' inventaire, de machines à sous. Et pour ce qui est de l'inventaire, allons-y, connectons-le ici aux nœuds de redirection, et compilons et sauvegardons le tout. Nous avons donc également cette logique pour le joueur. Donc, en fait, ne partons pas ici, passons au lecteur de plans. Et à l'intérieur de cet article, souvenez-vous qu'au début, nous avons dit « initialiser l'inventaire ». Nous sommes en train de redimensionner leur course. C'est très bien. Et ici, nous sommes en train de créer les widgets de catégorie, c'est très bien. Et les emplacements d'inventaire aussi. C'est donc correct. Revenons maintenant à l'inventaire. Je pense que nous devons modifier une certaine logique à cet égard. Dans l'inventaire des composants. Nous avons celui-ci lorsque nous cliquons sur une catégorie de l'inventaire. Et en fait, je peux revenir en arrière juste pour des éclaircissements. Pour la catégorie d'inventaire lorsque nous appuyons dessus, n'oubliez pas que lorsque nous appuyons dessus, nous définissons la catégorie d'inventaire. Et si vous double-cliquez ici, c'est ce code ici. Nous sommes en train de créer les widgets des emplacements d'inventaire. Maintenant que nous avons optimisé l'inventaire, nous allons donc le supprimer et simplement afficher les widgets des emplacements d'inventaire. Maintenant, nous pouvons simplement les afficher et l'inventaire est optimisé. Nous n'avons pas à le faire, nous n'avons pas à créer ces widgets encore et encore. Très bien, alors testons-le avant de faire quoi que ce soit d'autre. Et je pense que nous avons tout. Tout se présente bien. Compilons, sauvegardons. Cliquons sur Play et voyons s'il y a des bugs. Alors laisse-moi tout piller comme avant et voir si je peux vraiment les charger maintenant. Donc, si je clique sur J'ai ouvert mon inventaire, ils sont chargés correctement. Il en va de même pour ceux-là. Désormais, lorsque vous changez de catégorie d'inventaire, cela affiche simplement ce que nous avons déjà créé. Il y a donc beaucoup de choses à optimiser maintenant. Il est très optimisé avec le bug d'inventaire corrigé et l'inventaire optimisé. Passons à la leçon suivante. 42. 7.01 Ajouter l'opération de glisser-déposer: Très bien, nous sommes maintenant prêts à faire glisser les objets de l'inventaire. Passons donc à l'interface utilisateur et à l'emplacement d'inventaire. Ce que nous allons faire maintenant, c'est sortir de l'inventaire. Donc, si je clique sur Play, je veux Si j'ai un objet ici, je veux le faire glisser et je peux le déposer par terre. C'est donc ce que nous essayons de faire. Entrez dans la fente d'inventaire. Passons au graphique. Et à l'intérieur de ce graphique, passons aux fonctions et cliquez sur ce bouton Remplacer. Maintenant, nous allons descendre et voyons, choisissons celui-ci appelé bouton de la souris enfoncé. Et cette fonction est créée ici. Et ici, ce que nous voulons faire, c'est simplement faire glisser le curseur à partir d'ici et dire secte, faire glisser si vous appuyez dessus. Vous devez donc le faire pour qu'il puisse détecter le bouton de votre souris. En cliquant ici, je vais cliquer sur le bouton gauche de ma souris, ou vous pouvez simplement le trouver ici. Et pour l'événement de la souris, connectons-le aux événements du pointeur. Et pour la valeur de retour, connectons-les ici. Très bien, compilons maintenant. Et encore une fois, dans les fonctions ci-dessus, cliquez à nouveau sur le remplacement. Et cherchons une traînée détectée. C'est donc ici qu'une traînée est détectée. Sélectionnez celui-ci ici. Et ici, imprimons simplement une chaîne et vous pouvez voir ce qui se passe. Alors je vais juste te dire bonjour. Compilons et cliquons sur Play. Et si j'ouvre mon inventaire et que je clique ici, vous pouvez voir que le message Bonjour s'affiche. Si je clique et que je fais glisser, il détecte maintenant que je fais glisser. Et c'est écrit ici bas. Nous pouvons maintenant ajouter du code à l'intérieur. Donc, avant de faire quoi que ce soit, faisons référence au joueur et à la manette du joueur. Encore une fois, nous sommes dans une interface utilisateur et pour nous vous pouvez dire Get Owning layer. Cela vous permettra d'obtenir la manette du joueur. Et si vous utilisez get Owning Player Pawn, cela vous permettra, au personnage joueur, d'obtenir celui-ci ici pour faire glisser la manette du joueur en disant « obtient un contrôleur de couche ». Et encore une fois, cela provient de l' interface Blueprint que nous pouvons utiliser. Cliquez avec le bouton droit sur la promotion en variable et appelons-la contrôleur de mise en page. Et encore une fois, cliquez avec le bouton droit de la souris en disant Get Owning layer cette fois. Nous pouvons donc trouver le joueur et, à partir d'ici dire qu'il va placer le calque Eric au sommet. Celui-ci obtient leur référence. Et pour obtenir la référence du joueur, nous pouvons cliquer avec le bouton droit de la souris, promouvoir votre variable et enregistrer la couche. OK, donc, ce que nous essayons de faire ici maintenant en cliquant sur Play. Donc, ce que je veux que tu fasses, c'est ce que j'ai pour cet objet. Je veux juste obtenir les informations contenues dans cet objet, car lorsque je le fais glisser ici, je veux afficher l'icône que je fais glisser depuis le pion du joueur. Reprenons l'inventaire , l'inventaire. Faisons défiler la page vers le bas et sélectionnons cet inventaire. Et comme avant, nous avons besoin de toutes les catégories. Donc, si vous écrivez catégorie, vous pouvez obtenir la catégorie des armes et la catégorie des aliments, puis la catégorie des potions. Et comme auparavant, nous avons besoin l'inventaire sélectionné car nous avons besoin de savoir quel inventaire nous avons actuellement sélectionné. Donc, comme avant, le bouton droit de la souris et choisissez la fonction de sélection ici, sélectionnez le nœud, le col, l'inventaire de sélection. Et encore une fois, connectez simplement tous ces inventaires. Donc, en fonction de ce que nous avons sélectionné ici, Let's drag and say gets. Et maintenant, il va vous demander quel index d'emplacements d'inventaire vous souhaitez obtenir. N'oubliez pas que nous sommes dans la case d'inventaire. Vous avez donc déjà cet indice d'emplacement variable. Alors connectons-le ici. Nous avons maintenant l' index sur lequel nous cliquons. Maintenant, avant d'exécuter le code de détection, assurons-nous d'avoir un objet car je ne veux pas que le glisser-déplacer fonctionne les emplacements d'inventaire sont vides. Donc, prendre ici en disant pause. Et donc pour cette quantité d'articles, elle n'est pas égale. Nous pouvons donc écrire ceci. Si ce n'est pas égal à zéro, alors je veux que le code continue et s'exécute. Toutefois, s'il est égal à zéro, nous ne voulons pas exécuter le code car l'emplacement d'inventaire est vide. Mais maintenant, le plus important, c' est la fonction qui est très importante. avec le bouton droit et cliquez avec la droite créer une opération de glisser-déposer. Celui-ci va donc faire glisser l'icône et vous demander quel est le visuel de glissement par défaut, savoir l'icône que nous faisons glisser. N'oubliez pas que nous sommes à l'intérieur de la case d'inventaire. Nous pouvons donc simplement prendre celui-ci ici, l'inventaire des images ou, en fait, l'élément image ici. Branchez-le ici. Maintenant que l' objet est branché, il suffit de s'assurer que l'emplacement où nous le faisons glisser n'est pas vide. Nous avons donc en fait une icône que nous faisons glisser. Très bien, alors c'était ça. Maintenant, connectons-nous ici. Et pour l'opération, connectons-les comme ceci. Vous pouvez cliquer ici, cliquer sur la hauteur du pincement non connecté juste pour le rendre plus propre et laissez-nous l'essayer. Alors compilons, cliquons sur Play. Et si je traîne comme ça, rien ne se passe. Si je le charge, je le traîne. Vous pouvez voir maintenant que je fais glisser l'icône. Ça a l'air super. Si je fais cela pour la banane, par exemple et que je fais glisser, maintenant, je fais glisser la banane. Vous pouvez donc maintenant voir que cela fonctionne. Mais maintenant, nous avons besoin du code pour fonctionner là où nous déposons réellement l'objet. 43. 7.02 L'article de l'inventaire: Bon, maintenant, nous voulons supprimer l'élément et pour ce faire, passons à l'interface utilisateur principale ici. Et à l'intérieur, passons au graphique. Et encore une fois, comme avant, et les fonctions cliquent sur la dérogation. Et sélectionnons celui-ci appelé on drop. Parce qu'au départ, lorsque vous jouez au jeu ici prenez un objet et que vous le retirez de l'inventaire, vous le déposez en fait au-dessus de votre interface utilisateur principale. Nous allons écrire ce code à l'intérieur. Maintenant, avant que cela ne fonctionne, vous pouvez voir ici si j'imprime une chaîne dans l'UNDRIP pour l' interface utilisateur principale, elle a besoin de bonjour. Vous pouvez donc voir que le code fonctionne. Cependant, pour le moment, ce n'est pas par glisser-déposer. Tu peux dire que ce n'est pas dire bonjour. Le code que nous écrivons ici ne fonctionne en fait pas. Donc, pour que cela fonctionne, vous pouvez accéder à l'emplacement d'inventaire. Et à l'intérieur, dans le graphique, pour détecter la traînée, vous devez vous munir de la manette du joueur. Nous avons déjà fait cette référence. Prenez la manette du joueur, prenez-en la variable principale de l'interface utilisateur. Et vous devez en fait définir la visibilité du Canvas. heure actuelle, si vous cliquez sur le canevas, vous pouvez voir que la visibilité n' est pas testable et qu'elle doit en fait être visible ici pour que cela fonctionne. Mais nous ne voulons pas le modifier par défaut, car visible signifie qu'il bloque votre souris lorsque vous jouez. Nous voulons donc le modifier uniquement chaque fois que nous déposons l'objet. Revenons donc à l'emplacement d'inventaire. Et là, prenons cela et disons définir la visibilité. Et nous voulons régler la visibilité sur visible. C'est donc correct. Prenons-le ici et déposez-le juste avant de terminer l'opération. Nous rendons ce menu I visible. Et créons des nœuds de redirection et connectons-les comme ceci. Très bien, compilons et revenons à l'interface utilisateur principale. Et maintenant, si nous essayons de tomber, nous allons dire bonjour. Jouons donc ici. Passons à ce couperet. Laissez-nous glisser et déposer. Et vous pouvez voir qu'il dit Bonjour. Maintenant, le code fonctionne ici dans la fonction Andhra pour l'interface utilisateur principale. Donc, avant de commencer, comme avant de vouloir faire référence à mon joueur. donc avec le bouton droit de la souris et dites Get Owning layer upon, puis glissons et disons Get Player Reference. Et connectons-les ensemble. Et cliquez avec le bouton droit de la souris et transformons cela en variable et en disant « couche dessus ». Maintenant, que devrait-il se passer lorsque je dépose l'icône ici dans le niveau ? Elle doit à nouveau faire apparaître un objet. Maintenant, je dois faire apparaître l'objet. Nous avons besoin d'une certaine logique d'apparition. Habituellement, lors de l'apparition, nous le faisons dans la manette du joueur. Passons donc à la manette du lecteur. Et dans la manette du lecteur, vous pouvez d'ailleurs voir que j'ai créé des commentaires pour tout juste pour vous, lorsque je vous donne tout le code. C'est donc très agréable à voir et à créer des commentaires. Si vous ne le savez pas, vous pouvez simplement survoler certains éléments et cliquer sur C sur votre clavier créer des commentaires. C'est tellement agréable d'être organisé comme ça. Très bien, descendons ici bouton droit de la souris pour créer un nouvel événement personnalisé. Et appelons cela un article à déposer en une seule fois. Et pour faire tomber l'objet, nous devons le faire apparaître dans le niveau. Alors glissez-le ici et dites spawn actor from plus. Et maintenant, nous avons besoin du dernier objet que nous sommes en train de créer. Il suffit de le faire glisser, le brancher ici, ainsi que de cette transformation de liaison. Et pour ce qui est de la gestion des collisions, vous pouvez simplement essayer de régler la position, mais toujours apparaître. Et lorsque nous avons créé l'objet, nous voulons également en générer la quantité. Donc, en faisant glisser d'ici, maintenant c'est un, un acteur s'oppose. Nous ne pouvons donc pas simplement dire une quantité d'articles définie, comme nous l'avons ici dans le. Si vous vous en souvenez, dans la base d'articles, si je passe à la base d'articles, nous avons cette quantité fixe d'articles. Cependant, j'ai juste besoin d'une référence à l'article abord, si vous pouvez dire obtenir la référence de l'article, celle que nous avons créée auparavant avec l'interface. Maintenant, vous pouvez définir un objet une fois par t. Maintenant, nous devons également définir la quantité à laquelle nous avons fait apparaître le même en fonction du nombre que nous avons retiré de l'inventaire. Je vais le faire glisser et le connecter ici. Et je vais juste le faire glisser juste au-dessus ou juste en dessous de la classe, la classe que je vais juste appeler item à la place. La quantité d'objets est bonne et la transformation du spawn l' est également. D'accord, donc généralement, lorsque nous créons des objets, nous passons en mode jeu. Et la raison pour laquelle nous utilisons le mode jeu, si vous vous souvenez du recueil multijoueur, que si vous vous souvenez du recueil multijoueur, ce mode de jeu existe toujours sur le serveur, il n'existe jamais sur le client. Donc, en passant par le mode jeu, nous nous assurons que le client ne génère pas de choses au hasard et ne triche pas. Nous devons donc passer par le mode jeu. Celui-ci, en fait, nous travaillons maintenant à reculons. Nous devons apparaître à partir de la composante inventaire. Cependant, j'ai commencé ici. Il est donc plus clair où se trouve le truc L'objectif principal ici est d'utiliser celui-ci appelé Spawn Actor et nous répondons à l'objet. Alors maintenant, travaillons à reculons. Passons au mode jeu, car le mode de jeu doit appeler cet événement. Alors revenons en arrière. Dessine un mode. Ouvrons l'éditeur de plans complet. Et ici, créons un nouvel événement personnalisé appelé requête. Déposer un objet. Et celui-ci doit l'appeler depuis la manette du joueur. Permettez-moi donc de cliquer ici et créer une variable pour la manette du joueur. Et c'est PC en panne, c'est ainsi que nous l'avons appelé. Et disons un contrôleur de mise en page. Et à partir de la manette du joueur, faisons glisser et appelons cette fonction de dépôt d'objets. Nous sommes un événement que nous avons créé. Pour les objets. Il suffit de cliquer, de glisser-déposer. Et pour cette transformation des liens, partons d' ici et disons créer une transformation. D'habitude, j'effectue à nouveau la transformation en mode jeu et à un autre endroit, en cliquant, en la faisant glisser et en la déposant dans l'élément demandé. Maintenant, nous n'avons pas besoin de répliquer et de l'exécuter sur le serveur, car n'oubliez pas que ce mode de jeu fonctionne toujours sur le serveur. Vous ne pouvez pas exécuter de contenu client à l'intérieur, le client ne peut pas accéder au mode jeu. Tout ce que vous créez ici s'exécute toujours sur le serveur, nous n'avons donc pas besoin de le configurer pour le répliquer sur le serveur ici. OK, donc la dernière étape, cette demande de dépôt d' article doit être exécutée à partir des composants, du composant d'inventaire. Revenons aux composants. Et tout commence ici, donc nous travaillons en fait à rebours. Nous allons donc cliquer avec le bouton droit de la souris et créer un nouvel événement personnalisé. Appelons celui-ci, drop. Bonjour Tim. Ici. Créons-en un nouveau sur le serveur appelé drop item. Juste comme ça, exécutez sur un serveur fiable. Et celui-ci, nous allons appeler le serveur One Server Drop Item. Et ici, nous devons appeler celui du mode jeu. Je vais donc cliquer avec le bouton droit de la souris et dire « obtient un mode », puis faire glisser la souris à partir d' ici et nous devons obtenir la référence du mode de jeu. Cependant, je ne pense pas que nous ayons créé d'interface, d'interfaces Blueprint pour le mode jeu. Alors faisons-le ici. Tu peux le faire seul si tu veux ou faire de l'exercice, et tu peux le faire avec moi. Maintenant, cliquez avec le bouton droit de la souris, accédez aux plans, créez une interface de plan, un mode. Ouvrons-le et créons ici une nouvelle fonction appelée Gets Game Mode Reference. Maintenant, nous devons dire à quoi nous essayons de faire référence ? Nous essayons de faire référence à la ville des insectes. Celui-ci, c'est notre mode de jeu, appelons-le un mode. Maintenant, compilons et sauvegardons tout. Et revenons au mode jeu, en accédant aux paramètres de classe, puis en ajoutant cette interface, le mode de jeu. Maintenant, cliquons ici et sur les interfaces, et appelons l' autoréférence. Nous avons donc maintenant défini ce qu'est cette variable. Nous pouvons maintenant revenir à la composante inventaire. Nous pouvons le faire glisser ici et dire obtient une référence de mode. Maintenant, connectons-le. À partir de là, nous voulons exécuter l' événement Request Drop Item que nous avons créé. Très bien, alors maintenant, connectons-les ici. Connectons la manette du joueur, l'objet, la quantité d'objets et l'emplacement. Et maintenant, nous les avons ici dans l'article à déposer. Et nous allons faire la même chose. La manette du joueur, l'objet, la quantité d'objets et l'emplacement. Et maintenant, nous pouvons utiliser celui-ci dans l'interface utilisateur principale. Utilisons donc ceci. Donc, ce qui va se passer, c'est que nous allons appeler via l'interface utilisateur principale. Et il va passer par là, en passant par le serveur juste pour s'assurer qu'il ne refuse pas de le faire fonctionner. Et ça va passer par le mode jeu. Il vous sera demandé de déposer l'objet ici en mode jeu. Ensuite, lorsque cela sera possible, il lâchera l'objet, la manette du joueur, où il lie l'objet et la quantité. Passons donc à l'interface utilisateur principale ici. Donc, à partir du pion du joueur, faisons l'inventaire, car maintenant nous voulons appeler cet événement ici. Vous allez entrer ici en utilisant la variable d'inventaire AAC située en bas de la page. Nous pouvons maintenant dire déposer un article et le sélectionner ici. Nous avons maintenant besoin d'un plugin pour la manette, afin de pouvoir simplement la faire glisser depuis le jeu et de sauvegarder la manette du joueur. Nous avons déjà créé une variable ici, nous l' insérée ici, et nous avons maintenant besoin de la classe d'objets. Alors, comment obtenir celui-ci ? Comme avant, je vais dans l'emplacement d'inventaire et je vais copier tout cela ici. Donc, en copiant tout cela et en copiant cela également. Je retourne à l'interface utilisateur principale, en la collant ici. Je vais supprimer cet index de slug, donc je l'ai ici. Et pour l'inventaire, nous pouvons simplement le connecter. Prenons le pion joueur juste pour le rendre plus propre. Au lieu de le connecter ici, reprenons le pion du joueur appelé variable d'inventaire AAC ici, puis connectons-le à tout cela. Et maintenant, pour ce qui est de l'index, nous devons savoir ce que nous faisons glisser. Parce que maintenant, lorsque nous faisons glisser un élément, nous avons réellement besoin de savoir de quel index d'emplacement nous faisons glisser. Je vais donc retourner dans l'interface utilisateur ouvrir l'inventaire et accéder au graphique. Et ici, je vais ajouter une nouvelle variable, cette variable que je vais appeler index d'emplacement glissé, et je vais la définir comme un entier. Et compilons. Revenons maintenant aux emplacements d'inventaire. Donc, ici, dans l'emplacement d'inventaire, lorsque nous partons de là, définissons l'indice des emplacements de médicaments ici. Je vais donc insister un peu sur ce point. Prenons la manette du joueur, appelons la variable d'inventaire WB. Et à partir de là, nous avons créé l'index Dragged Slot. Je vais le régler ici et le faire glisser ici, le régler. Et sur quoi allons-nous le régler ? Nous allons simplement le définir sur cet index d'emplacement ici, car il cet index d'emplacement ici, car s'agit de l'index d'emplacement que nous faisons glisser. Si je compile maintenant et que je reviens à l'interface utilisateur principale, je peux prendre la manette du joueur. Donc, je vais prendre le pion du joueur, je vais prendre la manette du joueur. Et à partir de là, nous pouvons prendre la variable d'inventaire WB. Et maintenant, nous pouvons appeler le drag slot index. Nous pouvons le brancher sur celui ci-dessus pour obtenir les informations sur l' article. Alors maintenant, nous pouvons prendre cette décision et faire une pause. Je vais prendre tout ça et remettre en arrière. Donc, pour la classe d'objet, nous l'avons à l'intérieur de cet article. Donc, si vous le prenez et que vous dites «  pause » et que vous l'ouvrez ici, nous avons cette catégorie d'objets. Nous pouvons le brancher à l'article en fonction de la quantité que nous avons ici. Branchez-le donc et demandez-lui où il se trouve. Mettons-le là où se trouve actuellement le joueur. Donc, prendre le pion du joueur permet de localiser l'acteur. prenant ici, vous pouvez le brancher à l'emplacement, en cliquant sur celui-ci, en appuyant sur Masquer stylets non connectés ainsi que celui-ci pour masquer les objets non connectés. Très bien, maintenant nous sommes en train de laisser tomber l'objet. Cependant, nous devons également mettre à jour l'inventaire. Je vais donc prendre celui-ci ici et dire définir les éléments d'un tableau. Et connectons-le ici, ou à l'objet dont nous avons besoin pour le retirer de l'inventaire. Alors disons ici et disons fabriquer. Et nous allons créer cet emplacement d'inventaire. Donc, en ce qui concerne l'article, nous n'ajouterons rien qui le supprimerait de l'inventaire nous n' ajouterons rien à la quantité. Cependant, nous devons toujours conserver notre emplacement d'inventaire et notre index des emplacements afin qu'ils ne soient pas supprimés. Donc, en cliquant ici sur l'emplacement d'inventaire, affichons également notre inventaire, notre emplacement d'inventaire et notre index. Mettons-les ici. Et la seule chose à faire est de supprimer l'article et de régler la quantité à zéro. Cliquez maintenant ici, en masquant les broches non connectées. Et maintenant, pour l' index, nous pouvons simplement faire glisser à partir de cet index d'emplacement. Nous pouvons simplement le copier si vous le souhaitez. Et il peut le coller ici juste pour le rendre plus propre et vous pouvez le brancher ici. Maintenant, nous devons également mettre à jour l'interface utilisateur. N'oubliez pas de le faire également. Donc, directement à partir de l'emplacement d'inventaire, en disant « Mettre à jour l'inventaire », il y a logique qui le relie à l'objet. Nous n'allons rien ajouter qui supprimerait l'article de l'inventaire et qui fixerait la quantité à zéro. Maintenant, n'oubliez pas de le faire maintenant, nous avons mis à jour tout ce dont nous avons besoin pour mettre à jour, et connectons-le ici maintenant. Et n'oubliez pas de cliquer sur le ticket booléen ici. C'est donc vrai. Compilons et essayons maintenant le jeu. Alors enregistrez tout, cliquez sur Play. Maintenant, allons-y et perdons quelque chose. Et cliquons dessus et glissons-le dans le monde. Et vous pouvez voir qu'il est en train d'apparaître, génial. Et je vais également faire glisser celui-ci. Il est en train de se reproduire. Et si je clique simplement sur la banane, que je la soulève, que je la fais glisser et que je la dépose, elle. Ça tombe ici. Si je clique dessus, comme mentionné à nouveau, il charge la bonne quantité. Si je clique ici, je laisse tomber celui-ci à dix. Celui-ci est pour, j'ai adoré celui-ci. Il devrait en fait examiner celui-ci d'abord. Ça dit quatre. Je vais charger celui-ci, je vais en ajouter six ici, puis dire quatre ici. Cela fonctionne donc comme il est censé le faire maintenant que nous supprimons des objets de l'inventaire Ajoutons un peu de physique, afin que tout soit beau lorsque nous les lâchons et qu'ils ne flottent pas dans le monde. 44. 7.03 Autoriser la physique des armes: Pour activer la physique des objets, allons-y et cliquez sur les objets et les plans. Ouvrons la base d'objets. Et à l'intérieur, si vous cliquez sur la classe, les valeurs par défaut se trouvent en fait dans le maillage et l'élément ici, vous pouvez voir ici, dans le panneau Détails nous avons quelque chose qui s'appelle Physics. Et ici, vous pouvez cliquer sur simuler la physique pour qu'elle puisse tomber sur le sol. Cependant, sur celui-ci, vous pouvez le voir, nous ne pouvons pas cliquer dessus. Ce que nous pouvons faire, c'est cliquer ici avec le bouton droit de la souris. Et au début, comme pour les événements, nous pouvons faire glisser cet élément directement d' ici et dire simuler la physique. Réglez donc la physique et nous allons la définir sur true. Ainsi, chaque fois qu' une arme apparaît ou qu'un objet apparaît, cela signifie que la physique est vraie. Maintenant, cliquons sur Play et voyons ce qui se passe. Et maintenant, si je clique ici et que je le laisse tomber, vous pouvez voir qu'il flotte toujours et que cela a quelque chose à voir avec la collision. Cliquez donc sur l'article. Et si nous descendons ici jusqu' à la collision, vous pouvez voir qu'il est réglé sur Aucune collision. Et au lieu d'éviter toute collision, cliquez sur Personnaliser. Et ici, religion activée, cliquons dessus et disons religion activée. C'est donc une question de recherche et de physique, nous avons besoin de la physique ici. La collision est donc activée. Et nous allons tout ignorer, à l'exception de la dynamique du monde et de la statique du monde. Et c'est le sol pour qu'il ne tombe pas à travers le sol. Compilons maintenant et cliquons sur Play. Et laisse-moi juste perdre quelque chose. Et si je clique et que je dépose, tu peux le voir tomber, mais c'est faux à travers le sol. Et si cela vous arrive, j'ai découvert pourquoi cela se produisait quand j'ai essayé de le créer. Et c'est parce que la collision est vraiment grave pour ces éléments que j'ai téléchargés. Donc, si vous ouvrez simplement l'un des actifs, par exemple objet aussi intelligent, corrigeons celui-ci. Donc, cet objet intelligent, si vous cliquez sur Afficher, peut être que cela arrive également à votre projet. Donc, en montrant les collisions simples ici, il s'agit d'une collision simple. Et ce que vous devez faire, c'est ici, dans les collisions, vous devez ajouter une case « collision simplifiée ». Vous pouvez voir que ces bugs simples ont été ajoutés. Si tu cliques dessus. Maintenant, je vais appuyer sur R pour l'outil de mise à l'échelle. Et je vais l'étendre. Je vais plutôt réduire ma mise à l'échelle à celle-ci. Réduisons un peu la vitesse de la caméra. Je vais l'augmenter un peu. Nous pouvons donc voir qu'il y a un peu de collision ici. Il s'agit de la boîte de collision que nous avons agrandie et réduite. Je vais juste redimensionner quelque chose comme ça et sur les côtés aussi. Je vais le tester ici pour le couteau. Allons-y et cliquons sur la boîte de collision simplifiée. Vous pouvez maintenant cliquer dessus et l'augmenter de cette façon. Et aussi des mots comme ça. Je le fais aussi. Permettez-moi de le faire aussi pour la banane. Passons à la collision, puis à la boîte simplifiée. Et je vais l'étendre. Et la raison en est que la collision est vraiment grave, donc elle tombe à travers le sol comme ça. Alors maintenant, sauvegardons tout et testons-le avec les objets que nous avons déjà. Maintenant, vous pouvez voir qu'il flotte un peu, et ce ne sont que les objets. Ce sont vraiment de mauvaises collisions. Alors, ramassons-le, déplaçons-le vers le bas. Et vous pouvez voir maintenant qu'il ne tombe pas par terre. Vous pouvez donc corriger la collision sur votre objet, les rendre plus spécifiques dès maintenant. Cela se fait très rapidement. Je vais donc également ajouter la collision à mes potions. Mais maintenant, vous pouvez voir qu'ils ne tombent pas par terre et que tout fonctionne parfaitement. 45. 8.01 Obtenir des informations sur les machines à sous: Bien, il est maintenant temps de déplacer les objets entre les emplacements d'inventaire. Donc, lorsque nous perdons un article ici et que la quantité est fixée à deux, c'est pourquoi je fais allusion à. Mais vous pouvez la voir. Je ne peux pas les déplacer entre les différents emplacements d'inventaire parce que nous ne l'avons pas fait. Nous pouvons simplement les glisser-déposer dans le monde et les charger à nouveau. Cependant, nous ne pouvons pas les placer dans de nouveaux emplacements d'inventaire, et c'est sur cela que nous allons travailler. Allons-y, accédons à l'interface utilisateur et appuyons sur l'emplacement d'inventaire. Et à l'intérieur du graphique, allons-y et créons deux fonctions. Donc, ici, dans les fonctions, cliquons sur le plus et appelons le premier, on fait glisser des machines à sous. Et ajoutons-en un autre intitulé Gets new slots, slot and get the new slots. Nous souhaitons donc obtenir des informations sur ces deux machines à sous car nous allons les mettre à jour. Passons à la première, laissez-vous entraîner. Et à l'intérieur, prenons la manette du joueur ou le joueur et l'inventaire AAC, variable d'inventaire. Nous voulons maintenant obtenir les trois catégories, en recherchant une catégorie. Tout d'abord, obtenir la catégorie des armes, la catégorie des aliments, et la dernière, la catégorie des potions. Et obtenez également celui-ci dans la catégorie d'inventaire sélectionnée. Et comme avant, sélectionnons le négatif ici et connectons toutes nos catégories, inventaires. Et nous l'avons fait de nombreuses fois maintenant. Maintenant, nous voulons juste obtenir quelques informations sur la machine à sous Dragged. Donc, en fonction de l'inventaire que nous avons sélectionné, nous voulons obtenir cet article. Et maintenant, de quel objet s'agit-il ? Ça vient de la boîte à médicaments. Et n'oubliez pas que nous avons déjà créé index des emplacements d'inventaire par glisser-déposer, se trouve à l'intérieur de la manette du joueur. Donc, ce que nous pouvons faire, c'est ici, le pion du joueur et la manette du joueur. Revenons à l' inaperçu et nous les avons créés à l'intérieur d'ici. En fait, je vais les supprimer à partir d' ici et les placer dans l'événement de début de jeu. Il suffit de faire glisser le joueur dessus comme ça et de le connecter ici. OK, donc c'est lié. Revenons à l'Event Graph et commençons à jouer. Et ici, nous allons ajouter ces deux éléments afin qu'ils soient définis chaque fois que nous commençons à jouer au jeu. Très bien, revenons aux machines à sous à déplacer. Et à l'intérieur, prenons la manette du joueur, disons l'inventaire WB, donc la variable du widget d'inventaire. Et voici celui-ci appelé index des emplacements glissés. Et connectons-le ici. Nous obtenons donc maintenant l'index des emplacements Dragged. Et à partir de là, nous pouvons maintenant dire pause. Et ces informations, ajoutons-les simplement à un nœud de retour. Donc, faites glisser d' ici en disant return, en ajoutant un nœud de retour. Et faisons glisser toutes les variables à l'intérieur du nœud renvoyé afin de pouvoir les utiliser plus tard. Comme nous ne recevons que quelques informations, nous pouvons cliquer sur cette fonction et cliquer sur pure. Cela en fait donc cette fonction verte, qui consiste simplement à obtenir des informations. Vous pouvez donc voir le graphique des événements. Si je le place ici dans le monde, il s'agit simplement de cette fonction Get verte qui n'a pas d'épingles d'exécution parce que nous l'avons définie sur pure. Très bien, alors maintenant, faisons en sorte que celui-ci obtienne un nouvel index de machines à sous. Donc, pour ce qui est de la traînée, je ne fais que copier le tout. Je vais obtenir un nouvel index des machines à sous. Je suis en train de tout coller ici. Et maintenant, nous pouvons à nouveau faire glisser le curseur à partir d'ici, créer un nœud de retour. Et connectons-nous, comme avant, connectons toutes les variables ici. Et au lieu de faire l'index des emplacements à déplacer, prenons simplement cet index des emplacements. Il s'agit du nouvel emplacement, du nouvel index des emplacements. Compilons donc tout et sauvegardons. Et c'était tout pour l'index Gets Dragged Slot et Get New **** index. Et nous les utiliserons pour mettre à jour l'inventaire. 46. 8.02 Mettre à jour les informations sur les machines à sous: OK, maintenant, nous avons créé l' emplacement Get Dragged et avons de nouvelles fonctions. le moment, nous allons à nouveau faire la mise à jour, allez ici et créez une nouvelle fonction. Appelons la première mise à jour, glissons des slugs et créons-en une nouvelle appelée Update New Slots. Passons à l'emplacement de mise à jour. Et encore une fois, nous avons juste besoin des informations sur le slot Dragged. Alors je reviens ici et ils se font traîner. Je vais copier le tout et retourner dans l'emplacement de mise à jour les coller à l'intérieur, et pour mettre à jour à nouveau l'emplacement comme avant, faire glisser d'ici définit les éléments du tableau. Et maintenant, connectons-le ici. Maintenant, nous voulons mettre à jour l'index des emplacements Dragged et, pour l'objet, glissons-le ici et disons créer un emplacement d'inventaire. Et ici, nous allons créer de nouvelles variables. Créons-en deux ici. Mais le premier s' appellera élément à emplacement déplacé, et le second sera appelé nouvelle quantité d'objets. Changeons celui-ci en un entier et le premier en une structure d'informations d'élément. Voici donc l'article, ce médicament sera simplement inclus dans cet article ici pour cette gamme ainsi que pour la quantité. Faisons glisser cela et nous l' utiliserons plus tard. Mais laissez-moi tout glisser vers le bas. En ce qui concerne l'ancien emplacement d'inventaire et l'index des emplacements, nous ne voulons pas les modifier. Ils restent les mêmes. Nous allons donc le prendre ici à partir de l'index direct des machines à sous. Nous allons simplement les rebrancher parce que nous ne voulons pas les changer. La seule chose que nous voulons modifier en ce qui concerne les médicaments, c'est l'article et la quantité provenant de cette entrée. Et en ce qui concerne l'index d'emplacement ici pour le tableau, nous pouvons simplement faire glisser cet index d'emplacement et le brancher. Et maintenant, nous mettons à jour l'inventaire. Mais n'oubliez pas que vous devez également mettre à jour l'interface utilisateur. Je vais donc sortir de cet emplacement d'inventaire et dire mettre à jour, mettre à jour interface utilisateur de l'emplacement d'inventaire. Et branchons-le . En ce qui concerne l'article, branchons simplement cet article et encore une fois, ainsi que la quantité. Je vais donc créer quelques notes. Vous pouvez cliquer sur celui-ci et cliquer sur Masquer les broches non connectées, n'est-ce pas ? J'ai donc ajouté quelques notes de redirection et je l'ai organisé. Maintenant, nous sommes simplement en train d'obtenir l'index du lot de drags ou d'obtenir l'article. Et ici, nous avons juste besoin de l'emplacement d'inventaire et de l'index des emplacements , et nous avons besoin de les reconnecter au nouveau, car nous ne voulons pas perdre ces informations. La seule chose que nous modifions concerne l'objet ainsi que la quantité pour l'index de la machine à sous Dragged ou l'objet qui, lorsque nous le faisons glisser dans l'inventaire nous pensons également à mettre à jour l'interface utilisateur. En fin de compte, pour le nouvel emplacement de mise à jour, je vais le supprimer bouton droit ici et cliquez sur Dupliquer. Et appelons-le simplement Update My Slots. Et la seule chose que nous allons réellement changer à l'intérieur d'ici. Nous allons supprimer cet index similaire aux médicaments et utiliser ce nouvel index d'emplacements à la place. Permettez-moi de pousser un peu le code et de l'organiser. Et c'est en fait tout, tout le reste reste pareil. C'est toujours l' objet de la machine à sous Drug que vous verrez plus tard, et tout est pareil. La seule chose que nous faisons ici est obtenir ce nouvel index des machines à sous et conserver les informations sur le widget des lots d'inventaire et l'indice des machines à sous. Maintenant, compilons et sauvegardons tout. Alors maintenant, nous les avons. Si je reviens à l'Event Graph, nous avons celui-ci. Indexez les emplacements des lecteurs, obtenez un nouvel index des emplacements. En fait celui-ci, cliquez à nouveau sur pure. Nous l'avons donc comme ça. Ensuite, nous avons la mise à jour de l'emplacement de glissement et la mise à jour du nouvel emplacement. avons donc maintenant et nous pouvons les utiliser pour mettre à jour l'inventaire. 47. 8.03 L'article sur la machine à sous d'inventaire: Bien, nous sommes maintenant prêts à placer l'objet dans les nouveaux et les anciens emplacements d'inventaire. Revenons donc à l'emplacement d'inventaire. Passons au graphique. Et ici, comme avant de cliquer sur l'override, descendez et sélectionnez celui-ci appelé on drop. Alors maintenant, imprimons une chaîne et voyons ce qui se passe. Vérifiez si le code s'exécute. Il devrait donc dire Bonjour si je fais glisser, donc si je clique sur Play et que je fais glisser le curseur d'ici à ici, rien ne se passe car il n'y a aucun objet. Donc, si je le fais glisser ici et que je le dépose ici, vous pouvez voir qu'il dit Bonjour. Mais pour les emplacements d'inventaire où je n'ai pas d'objets, cela ne dit rien, donc c'est une bonne chose. Mais si je le fais glisser ici ou que je le laisse tomber, il y aura le message Bonjour, pour que tout fonctionne comme prévu. Alors maintenant, créons une nouvelle variable ici, et c'est une valeur booléenne, et je vais la qualifier d'empilable. Maintenant, ce que nous voulons faire, c'est vérifier pour nous une chose et régler celle-ci pour savoir si l'article est empilable ou s'il ne l'est pas. Allons-y. Viens ici, obtiens la nouvelle machine à sous et obtiens également la machine à sous directe. abord, nous voulons vérifier si nous faisons glisser le même élément l'un sur l'autre. Donc, prenez cet élément qui dit pause, ainsi que cet élément disant pause pour le nouvel élément dans lequel nous sommes en train de traîner. Ce nom apparaît-il sur le nouvel emplacement d'objet Est-ce le même que celui que nous faisons glisser depuis l'emplacement du pilote ? Si c'est le cas, cela signifie qu'il s'agit du même objet. Et nous devons également vérifier si cet article est empilable. Si vous cliquez avec le bouton droit de la souris et que vous cliquez sur B, vous voyez celui-ci et le booléen. Donc, d'abord, le premier élément, Let's drag this, est empilable et branchez-le ici, comme ici, et dites bonjour aux broches non connectées. Cet article est-il donc empilable ? Et est-ce que le nom est le même que celui du drag one ? Cela signifie qu'il s'agit en fait du même objet. Et aussi juste pour m' assurer que je vais cliquer sur ce plus ici et en ajouter un autre. Et juste en bas, assurez-vous également que l'emplacement pour déplacer les objets est également empilable, en cachant les épingles non connectées ici. Maintenant, ce que nous disons ici, que nous vérifions si le nom est le même sur le nouvel emplacement et sur l'emplacement. Nous vérifions donc s'il s'agit du même article et nous vérifions également si cet article est empilable. Et si c'est le cas, nous allons créer une branche. Et connectons-le et disons oui, il est empilable. Maintenant, il y a une autre chose que nous devons vérifier. Et si on faisait glisser cet objet de l' emplacement réservé aux médicaments vers le nouvel emplacement ? Et le nouvel emplacement est vide. Mais l'intrigue est toujours empilable. À l'heure actuelle, nous sommes en train de vérifier s'il porte le même nom, il n'aura pas le même nom. Si cet emplacement est vide et ne contient aucun objet, nous devons également le vérifier . Donc, ce que nous allons faire, c'est récupérer cette quantité d'objets du nouvel emplacement vers lequel nous sommes en train de glisser, et nous disons qu'elle est égale. Donc, si cela est égal à zéro, signifie qu'il n'y a aucun élément à l'intérieur de cet emplacement. Cependant, cette machine à sous pour médicaments est empilable. Donc, en partant d'ici et en disant et en booléen, s'il s'agit de zéro et de médicaments, cet objet est empilable, alors il est en fait également empilable. Celui-ci peut être vrai et celui-ci peut être vrai. Donc, pour ce faire, nous pouvons faire glisser le curseur d'ici et dire OU Boolean, puis connecter celui-ci ici, puis connecter celui-ci ici. Maintenant, nous disons si c' est vrai ou si c'est vrai, alors nous pouvons continuer et dire que l'article est empilable. Et ici, dans le faux, nous allons simplement le régler sur None Stackable et nous l'utiliserons un peu plus tard. Ensuite, créons une nouvelle fonction que nous utiliserons dans la prochaine leçon. Alors ne t'en fais pas pour le moment. Mais disons que c'est mettre à jour les emplacements d'inventaire. Et revenons à l'Event Graph, en fait à l'UNDRIP ici. Et faisons glisser celui-ci, mettons à jour les emplacements d'inventaire. Connectons-le simplement aux deux ici. Et n'oubliez pas que lorsque vous faites glisser, donc si vous avez détecté un glissement que nous avons créé plus tôt, nous avons dit que l' interface utilisateur principale devait être visible, le canevas principal, nous devons nous souvenir remettre à aucun résultat testable également. Ils vont copier ce code, retourner dans l'Andhra et le coller ici. Et les moins connectés, connectez également celui-ci et configurez celui-ci pour qu'il soit vrai. Maintenant, nous devons également penser à changer celui-ci en festival non caché. Et nous devons également revenir à l'interface utilisateur principale, celle-ci ici, et accéder au graphique, à l'UNDRIP. Et ici aussi, lorsque nous le déposons en haut du menu I, nous devons le redéfinir comme non testable. Comme celui-ci est ici et l'emplacement d'inventaire, celui-ci ne fonctionne que si nous le déposons au-dessus d'un autre emplacement d'inventaire. Cette année, nous le modifierons également chaque fois que nous aurons fini de déposer l'article sur la toile. Donc, au lieu de cette plaque, Ellis a supprimé le contrôle. Prenons le pion joueur, prenons la manette du joueur après cette partie. Et maintenant, nous pouvons le connecter ici et simplement envoyer le code comme celui-ci, les connecter, et n'oubliez pas de le prendre et de le configurer pour qu'il ne soit pas testable. Alors maintenant, nous sommes en train de le modifier et de le modifier à nouveau. Bon, maintenant nous en avons terminé avec la fonction Unwrap. Nous vérifions simplement si l'article que nous faisons glisser est empilable ou non. Et c'est quelque chose que nous utiliserons dans la prochaine leçon lorsque nous créerons cette fonction ici. Alors, sauvegardons tout et passons à la leçon suivante. 48. 8.04 Mettre à jour les créneaux d'inventaire: Bonjour et bon retour. Passons maintenant à cette mise à jour des emplacements d'inventaire. Donc, pour commencer, laissez-moi faire glisser les nouveaux slugs et les faire glisser ici. Tout d'abord, nous vérifions si nous ne faisons pas glisser l'élément au même endroit. Donc, si je clique sur Jouer et que je viens de dessiner, prends un objet ici. Si je le fais glisser, je veux juste exécuter le code. Si je le fais glisser ici vers cet emplacement d'inventaire, je ne veux pas exécuter le code si je le fais glisser puis le déposer dans le même emplacement d'inventaire. Nous allons donc d'abord vérifier si l'index de la nouvelle diapositive des emplacements d'inventaire est égal à l'ancien, ce qui signifie que nous l'avons simplement déposé dans le même emplacement d'inventaire. Si c'est vrai, nous ne voulons rien faire, juste pour ma propre lecture. Je vais l'essayer à partir de là et dire non et choisir ce n'est PAS un booléen. Donc, s'il ne s'agit pas du même index d'emplacement, nous allons lancer le code. Cependant, si c'est faux, s'il s'agit du même index d'emplacement, nous ne voulons rien faire. Plus tard, nous allons demander si l'article est empilable ou non. Parce que s'il est empilable, nous allons les additionner. S'ils ne sont pas empilables, nous allons simplement les passer de l'un à l'autre. Alors, d'abord, descendons ici. Disons que l'article n' est pas empilable. Que se passe-t-il ? Prenons celui-ci, mettons à jour, glisser les machines à sous et mettons à jour le nouveau bulletin d'information et la nouvelle diapositive sur les médicaments. Et connectons-les ici et connectons-les comme ça. Donc, pour le nouvel emplacement, n'oubliez pas que nous prenons l'objet de l'emplacement réservé au pilote et que nous le déposons au-dessus du nouvel emplacement. Ensuite, le nouvel objet de l'emplacement est l'élément déplacé ici depuis l'emplacement direct. Passons donc à la case «  Se faire traîner ». Prenons l'article ici et déposons-le, ainsi que la quantité d'articles. En ce qui concerne la fente directe, nous devons placer l'article provenant de la nouvelle fente, la boue séchée. Nous allons donc passer de l'une à l'autre. Nous allons prendre l'objet de la machine à sous et le mettre dans la nouvelle machine à sous. Ensuite, nous avons besoin du nouvel élément et nous le plaçons dans l'emplacement des brouillons. Maintenant, nous venons de mettre à jour la nouvelle machine à sous. Il est donc impossible d' obtenir ces informations. Maintenant, nous ne pouvons pas simplement prendre ceci et faire comme ça, car ici, nous venons de mettre à jour cet article. Cet objet ici est en fait maintenant cet objet ici. On ne peut donc pas le faire comme ça. Ce que nous pouvons faire, c'est simplement prendre cette nouvelle place. Et avant de le faire ici, cliquez avec le bouton droit de la souris sur une variable locale. Une variable locale n'est qu' une variable temporaire. Appelez celui-ci « nouvelle machine à sous ». Et nous pouvons cliquer dessus avec le bouton droit de la souris, le transformer en variable locale et appeler celui-ci une nouvelle quantité d'articles à sous. Maintenant, connectons-les ensemble et connectons-les également à celui-ci. Vous pouvez maintenant utiliser ces variables pour les ajouter ici. Donc, le nouvel objet de la machine à sous , puis la nouvelle quantité d'objets de la machine à sous. Très bien, alors maintenant c'est correct. Vous pouvez simplement jouer au jeu et voir si cela fonctionne. C'est donc le cas si l'article n' est pas empilable. Cliquons donc sur Play. Et je vais jouer du luth ici, ceci ici. Et si je mets simplement ces deux éléments ensemble, vous pouvez voir qu'ils sont maintenant interchangeables. Si je les fais glisser ici, ça marche aussi. D'accord, donc tout fonctionne ici et je peux aussi les alterner. C'est sympa. Je peux le laisser tomber. Je peux les changer et les supprimer aussi. Vous pouvez voir que cela fonctionne parfaitement. Maintenant. Cependant, cela ne fonctionne pas avec les éléments empilables car nous n'avons pas créé ce code. Vous pouvez donc voir ici que l'article est empilable. Rien ne se passe parce que nous n'avons rien fait ici. Donc, cela fonctionne maintenant, passons à autre chose. Donc, avant de faire quoi que ce soit pour les articles empilables, nous voulons additionner les quantités. Comme vous pouvez l'imaginer, si vous avez quatre bananes dans le premier emplacement et cinq bananes dans le second, nous devons ajouter quatre plus cinq, car nous faisons glisser l' objet empilable dans le suivant. Prenons donc le créneau des médicaments et aussi le nouveau créneau ici. Maintenant, je les ai et prenons la quantité du nouvel emplacement. Ajoutons-le à la fente directe. Et maintenant, nous venons de créer cette nouvelle quantité d'objets de machine à sous. Alors laissez-moi le faire glisser ici et placer ici, connecté ici. Et la prochaine chose que nous devons vérifier est cette nouvelle quantité d'articles. Est-il supérieur la taille de pile maximale pour cet objet dans le nouvel emplacement ? Faisons donc une pause et vérifions si cela est supérieur la taille maximale de la pile, car nous ne voulons pas tout ajouter s' il dépasse la taille maximale de la pile Faisons glisser ici et créons un booléen. Disons d'abord que non, elle n' est pas supérieure à la taille maximale de la pile. Nous allons donc simplement ajouter, par exemple pour les bananes avec cinq bananes. C'est donc faux. Elle n'est pas supérieure à la taille maximale de la pile. Faisons glisser l'emplacement du nouvel élément de mise à jour, puis faisons glisser la mise à jour, emplacement glissé et connectons-les ensemble. Donc, pour la nouvelle machine à sous, encore une fois, comme avant, le nouvel élément de machine à sous est simplement celui provenant de l'emplacement direct parce que nous l'avons simplement fait glisser là-bas. Donc, en le prenant, en le branchant et en demandant la nouvelle quantité d'articles, nous les avons simplement ajoutés ici. Donc tu peux. Prenez-le, branchez-le et créez des nœuds de redirection. Et nous pouvons maintenant, pour le faux connecté ici, en fait, au lieu de le faire, nous pouvons simplement utiliser celui-ci. Supprimons cette variable et prenons celle-ci ici pour pouvoir utiliser cette variable que nous venons créer. C'est un peu plus propre d' utiliser quelque chose comme ça. Passons maintenant à l'emplacement direct de mise à jour, nous venons d'ajouter l'élément d'emplacement direct en haut du nouvel emplacement. Donc, encore plus de choses, nous n' avons plus d'objet. Nous allons simplement laisser les choses se passer ainsi, la quantité sera nulle et l'article sera supprimé de l'ancien emplacement. Et si l'objet que nous plaçons au-dessus du nouvel emplacement dépasse la taille maximale de pile de cet objet ? du nouvel emplacement dépasse la taille maximale de pile de cet objet Copions à nouveau ceci et collez-le ici. Donc, encore une fois, pour la newsletter, c'est comme si l' objet était simplement l'article provenant de la machine à médicaments et que la quantité pour la nouvelle machine à sous juste la taille maximale de la pile car elle ne peut pas être supérieure à cela. Pour ce qui est de la place réservée aux médicaments, la boue séchée n' est encore qu'une fois celle-ci. Je vais donc simplement copier ceci, le coller ici. Maintenant, pour la nouvelle quantité d'articles, nous devons soustraire cette nouvelle quantité de la taille maximale de la pile. Prenons donc la quantité ici, disons moins la taille maximale de la pile. Disons, par exemple, que le créneau réservé aux médicaments était de dix et que le nouveau créneau en était de quatre, cela nous donnera 14. Cependant, pour les bananes, la taille maximale de la pile est de dix, donc ça va dire 14 moins dix. Cela nous en donne quatre. N'oubliez pas que nous venons d'en déplacer dix vers le nouvel emplacement. Nous avons donc les quatre qui restent dans la boue séchée. Nous allons donc dire moins ici, et je vais créer quelques notes de redirection pour que ce soit un peu plus clair. Et relions ce vrai ici à celui-ci, et maintenant cela devrait fonctionner. Alors, compilons tout. Voyons s'il y a des bugs. Cliquons sur Play. Permettez-moi de piller certains objets. Et maintenant j'ai 10.4. Si je leur fais glisser un nouvel emplacement, il disparaît en fait. J'ai donc vraiment besoin de voir ce qui se passe. Permettez-moi de revenir ici, de cliquer sur la mise à jour de la nouvelle machine à sous et de vérifier que c' est correct et que cela me convient. Maintenant, si nous revenons à l'Andhra et que nous revenons aux diapositives d'inventaire des mises à jour, la fonction IF est ici. Et je peux voir qu'en fait , l'erreur est là. Nous avons besoin de la taille maximale de la pile provenant des machines à sous droguées. Parce que nous n'avons pas besoin de la taille maximale de pile du nouvel emplacement. Parce que si je fais glisser la souris ici, vous verrez que la nouvelle diapositive contient actuellement des zéros. La taille maximale de la pile est donc nulle, car aucun objet ne vaut réellement de l'argent. Donc, au lieu d'ici, connectons-le, connectons-le plutôt à celui-ci et créons des notes de redirection. Donc ça a l'air bien. Maintenant, compilons et cela devrait fonctionner. Ce n'était qu'une petite erreur. Pillons à nouveau tout. Et maintenant, nous avons la bonne taille de pile maximale. Nous allons donc le faire glisser vers le suivant, et maintenant cela fonctionne. Et si je fais glisser ce chiffre de dix vers quatre, cela devrait indiquer 10,4. Cela devrait donc passer de l'un à l' autre comme ça. Cela fonctionne donc maintenant que les éléments empilables fonctionnent. Et si je le laisse tomber ici, je laisse tomber celui-ci, je les charge. Cfi, laissez-moi dessiner celui-ci, vais le récupérer, le mettre ici, il devrait d'abord remplir cette place ici. Ensuite, il mettra les choses qui sont plus nombreuses ici. Cela les placera dans le premier emplacement. OK, donc tout fonctionne maintenant. Nous sommes en train de tout mettre à jour. Je vais maintenant placer tous les articles sur le sol et tester le produit final. 49. 8.05 Ajouter des effets sonores: Pour rendre les choses un peu plus intéressantes avant de terminer ce cours, ajoutons quelques effets sonores. Donc, dans le dossier audio, j'ai inclus quelques effets sonores. Nous pouvons bien sûr en ajouter d'autres, mais essayons-les pour le moment. Pour ces effets sonores, vous pouvez cliquer sur le premier, maintenir la touche Maj enfoncée, cliquer sur le dernier et cliquer avec le bouton droit de la souris. Vous pouvez créer plusieurs files d'attente. Nous sommes donc en train de créer ces signaux sonores. Je vais les renommer. Par exemple, je peux renommer le premier. Au lieu d'appeler une file d'attente ici, je vais l'appeler SC pour le signal sonore, puis le nom de l'effet sonore. Maintenant que je les ai tous renommés, il suffit de commencer par le signal sonore. Je peux les jouer maintenant, mais ils sont très bruyants. Je pense que cela vous sera autorisé. Donc, avant de le faire, je vais ouvrir le premier. Et maintenant, pour ce qui est du multiplicateur de volume, vous pouvez réduire le son. C'est Bottom Hoover. Alors laissez-moi écrire 0.5 et jouer à la file d'attente. Et peut-être que 0,4 est mieux. Fermons-le. Ouvrons le bouton suivant, disons 0,4. Je pense que c'est bien. Maintenant, pour l' inventaire perdu, essayons 0.4. C'est très bien. Encore une fois , en optant pour l'objet à déposer, peut-être 0,5 pour celui-ci, c'est très silencieux et les Luddites lui font 0,50, 0,4. Je pense que c'est mieux. D'accord. Et le dernier, l'inventaire ouvert. Essayons 0,4 aussi fort. 0,3. Je pense que 0,25, peut-être, quelque chose comme ça. Sauvegardons tout maintenant que nous avons réduit le son. Maintenant, comme petite astuce si vous voulez des sons différents. Donc, en ce moment, vous pouvez voir à quoi cela ressemble. Mais si vous voulez que le son soit un peu différent à chaque fois que vous l'ouvrez, pouvez simplement le faire glisser d'ici et écrire le modulateur ici, celui-ci et le connecter ici. Vous avez donc maintenant un modulateur entre les deux. Et vous pouvez dire que le minimum est de 0,9 et que le ton maximum est de 1,1. Et si vous le jouez à chaque fois que vous l'entendez, c'est un effet sonore différent. À chaque fois. Il change légèrement de hauteur en hauteur et en baisse. C'est donc à vous de décider, par exemple, les sons du luth, l'objet à déposer. Vous pouvez les rendre légèrement différents chaque fois que vous les chargez. Donc c'est bon pour le moment. Ajoutons donc le bouton « survol » et le bouton pour commencer. Passons donc à l'interface utilisateur. Et première année dans la catégorie. Cliquons dessus. Et ici, cliquez sur la catégorie du bouton. Vous pouvez descendre ici et vous entendrez un son déprimé et un son survolant. Ils cliqueront ici, sélectionneront le bouton survoleront et appuieront sur le bouton correspondant à celui-ci Compilons et enregistrons ce que nous pouvons faire. Nous pouvons également l'ajouter aux boutons d'inventaire. Donc, en cliquant sur l'interface utilisateur principale, si nous cliquons sur ce bouton, nous pouvons ajouter la même chose ici. Appuyez sur le bouton, passez la souris. Compilons et sauvegardons tout. Tu peux l'essayer. Vous pouvez essayer de cliquer sur Play et voir ce qui se passe ici pour le client. Si je clique sur Occupé, cela fonctionne maintenant. C'est donc un peu plus intéressant que de ne pas avoir de son du tout. Eh bien, fermons-le et la prochaine chose que nous devons ajouter est l'inventaire fermé et l'inventaire fermé et l'inventaire ouvert. Passons aux plans. Et essayons d'abord. Nous avons ici et le joueur, nous ouvrons et fermons l'inventaire. Nous pouvons donc le déposer ici, ou nous pouvons le jouer dans la manette du joueur. Si nous passons à la manette du joueur et que vous êtes libre de faire ce que vous voulez ici, c'est à vous de décider. Nous pouvons également parler ici du moment où vous ouvrez le widget, l' inventaire qui s'ouvre, ou lorsque nous fermons le widget, de la fermeture de l'inventaire. Il peut donc le faire ici ou là. Permettez-moi de le jouer ici dans le lecteur, de le faire glisser d'ici, dire le son tardif en D, et de le copier-coller ici. Nous voici donc en train de clôturer l'inventaire. Cliquez donc ici et sélectionnez l'inventaire le plus bas. Et ici, nous ouvrons l'inventaire. Je vais donc sélectionner Ouvrir l'inventaire et les inclure également ici dans le commentaire. OK, compilons et cliquons sur Play pour voir ce qui se passe. Donc, si je clique dessus pour ouvrir l'inventaire, et que je clique sur OK pour le fermer à nouveau. OK, maintenant ça marche aussi. La dernière chose qui nous manque dans l'audio , c'est l' objet à déposer et l'objet pour luth. Pour l'objet chargé, nous appuyons sur E pour piller l'ISM Il sera transféré le serveur et ajouté à l'inventaire. Cependant, nous ne l'avons pas encore chargé ici. Passons donc à l' inventaire et jouons-le en boucle, complet. Lorsque nous détruisons l'objet, nous l'avons chargé ici. Partons d'ici et disons « jouer du son » à D. Et ce que nous voulons jouer, c'est celui auquel il est fait allusion. C'est donc un objet obscène. Et copions-le également ici. Nous sommes également en train de charger ici. Très bien, donc le son final qui nous manque ici est celui du drop item. Donc, pour l'élément à déposer, si vous vous en souvenez, passons à l'interface utilisateur et passons à la page principale de la base de données. À l'intérieur, nous avons cette fonction Andhra qui consiste à déposer l'objet. Et nous avons cet objet à déposer l'inventaire et il se retrouve, si vous vous en souvenez, sur la manette du joueur, il répondra de la même manière lorsque nous le lancerons. Cependant, si vous y jouez ici, n'oubliez pas que cet événement se déroule via le serveur. Il ne passe donc jamais par le client. Donc, si vous ajoutez du son play à d ici, cela ne fonctionnera pas. Le client ne l'entendra pas. Faisons-le donc dans WB Main ici. Lorsque nous sommes prêts à déposer l'article, allons-y et déposez-le. Vous pouvez même simplement le déposer ici pour mettre à jour l'interface utilisateur. Jouons-y ici avant de passer à la dernière étape. Et n'oubliez pas de sélectionner le signal sonore de l'objet déposé. Et compilons et cliquez sur Play. Alors maintenant, quand je me promène, j'ai fait allusion à un objet. Ouvrez l'inventaire auquel je fais allusion. OK, ça a l'air sympa. Et quand je laisse tomber l'objet, tu peux l'entendre aussi. C'est ainsi que vous ajoutez des effets sonores. Bien entendu, vous ne pouvez l'entendre que par vous-même, car il s'agit d'un inventaire après tout. Et nous ne voulons pas que tous ces sons soient également entendus par l' autre couche. Alors maintenant, tout semble bien. Et passons à autre chose. 50. 8.06 Tester le produit final: Très bien, nous sommes maintenant prêts à tester le produit final et à voir si nous avons une boîte. Donc, si nous cliquons sur jouer ici et maintenant c'est le serveur et que nous demandons au serveur, je vais faire allusion à une arme et je la charge. Je suis en train de charger le suivant. Voici le couteau. Tout fonctionne. Je peux les déplacer et si je fais encore allusion, se chargeront ici. Cela fonctionne donc correctement ? Juste comme ça, je vais perdre une potion et je vais appuyer ici. Et ce sont trois potions au sol qui chargent ces 13 potions d'endurance qui chargent plus de potions d'endurance. C'en était un sur le terrain. En regardant ici, il y aura plus de potions. Je pense que la taille maximale de la pile est de dix pour la potion, en fait de six pour les quotients. Et maintenant, vous pouvez voir qu'ils sont ajoutés au-dessus d'une nouvelle pile. Et je peux m'en tenir à cinq, je crois, pour les manipulations. Il va donc créer une nouvelle pile. Tout fonctionne donc parfaitement. Je vais charger les bananes. Ceux-ci fonctionnent comme vous le savez, nous les avons testés de nombreuses fois comme ça. Parfait. Ils fonctionnent donc. Je vais perdre la viande. Et tu peux voir la viande. Celui-ci est, je pense, six pièces. Et en fait, pas celui-ci. Celui-ci est composé de six pièces, il va donc ajouter 5.1. Et ça fonctionne. 5.1. C'est exact. Et maintenant, vous pouvez voir que cela fonctionne parfaitement. Et si je continue à polluer les armes, très bien, pour que tout fonctionne comme prévu. Je peux les déplacer. Si je déplace des pièces qui ne sont pas empilables, elles ne s' empileront pas. Donc, ces cinq étrangers, je peux les échanger entre eux et les supprimer si je le souhaite. Maintenant, en tant que client, nous devons savoir que nous pouvons faire de même. Donc, en cliquant sur Play, c'est le serveur. Pour en revenir au client, je vais minimiser un peu cela. Aller chez le client, appuyer sur un œil pour voir l'inventaire. Je peux regarder ça, ça marche très bien. La viande est présente dans la nourriture. C'est génial. Je vais faire allusion à toutes ces choses et cela fonctionne parfaitement également. Maintenant, pour le client, si je tombe, le serveur devrait pouvoir les voir. Et je peux le constater, cette baisse vient de baisser. Donc, si j'y ai fait allusion, celle-ci est composée de cinq potions. Donc, si je le dépose ici, les objets peuvent le voir, et le client peut également charger ces cinq océans. Il sera empilé ici avant d'être empilé ici. OK, donc la dernière chose à faire, testons-le entre deux clients parce que nous ne voulons pas connaître la logique du serveur, donc elle devrait également être correcte. Si deux clients sont installés ensemble, disons sur un serveur dédié. Allons-y en tant que premier client. Pillons et laissons tomber ces cinq bananes. Je les vois aussi. Et le nouveau client va les perdre. Et ce sont en fait cinq bananes, disons que je les ai déposées ici à la place. Et je peux les voir sur les autres clients. Tout fonctionne donc bien pour le client et le serveur. C'était pour l'inventaire. J'espère que vous avez apprécié le cours. C'était très amusant à faire. Si mes autres cours vous intéressent , rendez-vous sur pixel helmet.com. Je continuerai à publier des cours chaque mois. Alors allez-y et jetez un œil si vous avez besoin d'aide. Je peux également vous aider sur mon site Web ou si vous souhaitez rejoindre notre serveur Discord, vous remercierai d'être là et je vous verrai lors du prochain.