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.