et j'ai du mal à comprendre à quoi servent les interfaces ?
Les interfaces servent à coder qu'une fois un "comportement" qui peut être appelés ou appliqués par plusieurs objets qui n'ont pas forcément quelque chose en commun. L'exemple utilisé dans la documentation (https://docs.unrealengine.com/en-us/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces). C'est que tu peux avoir un Arbre et une voiture. Mais que si tu veux que les deux puissent prendre des dégâts si on tire dessus. au lieu de coder deux fois le comportement "tu prend des dégâts, puis tu brûle" bas tu le fais qu'une fois en Interface.
Pour le système d'inventaire, c'est peut être pas le plus simple pour commencer. En soit, il faut que tu pense à tous les comportements possibles d'un tel système. du genre :
- Pouvoir changer dans les configurations de l'item le nombre de stack possible (là où il y a le nom de l'item, son image, sa description)
- Si tu dépasse le nombre maximum du stack d'un slot, tu calcule le surplus, envoie le surplus vers un autre slot d'item, et remet le slot original au maximum du stack de l'item.
- Si ton nouveau slot est au maximum, tu refais la même chose...
- Si tu fais un click-droit sur un slot, son stack se divise en deux, et le nouveau stack est "assigné à ta souris".
- Si tu fais un click-gauche sur un slot avec ta souris, tu prend son contenu si il y en a, et si tu avais déjà du contenu sur ta souris, alors le dépose sur le slot..
Et ainsi de suite jusqu'à avoir pensé au comportement voulu de ton système. Ensuite faut penser à l'architecture, ce que tu met en fonction, en interface, en Macro ect... et comment tu y accède. Et seulement ensuite tu commence à programmer en blueprint.
Ce sera pas simple (un système d'inventaire n'est jamais simple). Et ça aurait été sûrement mieux pour toi de commencer par programmer un système un peu plus simple pour que tu puisse connaître les difficultés, les avantages de certains procédés et comment développer une bonne architecture pour ton projet.