Comment créer un système d’inventaire simple dans Unity 2026 (tuto débutant)

Créer un Système d’Inventaire Simple dans Unity 2026 : Le Guide du Débutant

Dans l’univers captivant du développement de jeux vidéo, un système d’inventaire robuste s’impose comme un élément fondamental, quel que soit le genre de votre création. Que vous développiez un RPG épique, un jeu de survie immersif ou une aventure de type point-and-click, les joueurs ont besoin de collecter, de stocker et de gérer leurs objets. Vous vous demandez comment intégrer cette fonctionnalité essentielle ? Ce tutoriel inventaire Unity débutant est conçu pour vous guider pas à pas dans la création d’un système d’inventaire simple dans Unity 2026. Nous explorerons les bases de la gestion des objets, de l’interface utilisateur et des interactions, vous donnant ainsi les outils nécessaires pour équiper vos jeux.

1. Comprendre les fondements d’un inventaire dans Unity

Un système d’inventaire, à la base, est un mécanisme qui permet à un joueur de collecter, de stocker et d’interagir avec des objets virtuels. Pour le développer efficacement dans Unity, vous devez en comprendre les composants clés. Premièrement, vous avez les Items (objets eux-mêmes) : ce sont les entités que le joueur ramasse, utilise ou équipe. Deuxièmement, il y a les Slots (emplacements d’inventaire) : ces conteneurs visuels et logiques dans lesquels les objets sont placés. Enfin, un Inventory Manager agit comme le cerveau du système, gérant l’ajout, le retrait et la mise à jour des objets dans l’inventaire du joueur.

La clé d’un bon système réside dans une structure de données claire. Souvent, vous utiliserez des listes ou des dictionnaires pour stocker les objets de manière organisée. En outre, la future version Unity 2026, tout comme les précédentes, offre un environnement idéal pour prototyper et développer ces systèmes grâce à son puissant éditeur et son système UI flexible.

2. Établir la structure de données des objets et de l’inventaire

Pour construire votre système inventaire Unity 2026, la première étape cruciale consiste à définir comment vos objets existeront dans votre jeu. Nous allons créer un type d’objet générique appelé Item et un gestionnaire d’inventaire.

Définir vos objets avec des ScriptableObjects

Les ScriptableObjects sont parfaits pour représenter des objets dans votre inventaire. Ils vous permettent de créer des ressources de données qui existent en dehors des scènes, ce qui facilite leur réutilisation et leur gestion. Suivez ces étapes :

  • Créez un nouveau script C# nommé ItemData.
  • Modifiez le script pour hériter de ScriptableObject et ajoutez l’attribut [CreateAssetMenu] pour pouvoir créer facilement des instances depuis l’éditeur.
  • Ajoutez des propriétés comme itemName (string), itemIcon (Sprite), itemDescription (string) et isStackable (bool).
using UnityEngine;

[CreateAssetMenu(fileName = "New Item Data", menuName = "Inventory/Item Data")]
public class ItemData : ScriptableObject
{
    public string itemName = "New Item";
    public Sprite itemIcon = null;
    [TextArea(5, 10)]
    public string itemDescription = "Default description.";
    public bool isStackable = true;
    public int maxStackSize = 99;
}

Le gestionnaire d’inventaire (InventoryManager)

Le InventoryManager est le cœur logique de votre inventaire. Il gérera la liste des objets que le joueur possède. Il est souvent implémenté comme un Singleton pour un accès facile depuis n’importe quel autre script.

  • Créez un nouveau script C# nommé InventoryManager.
  • Implémentez le pattern Singleton.
  • Définissez une classe interne ou une structure pour représenter un InventorySlot, qui contiendra un ItemData et une quantity.
  • Utilisez une List<InventorySlot> pour stocker l’inventaire du joueur.
  • Ajoutez des méthodes publiques comme AddItem(ItemData itemToAdd, int quantity) et RemoveItem(ItemData itemToRemove, int quantity). Assurez-vous que la logique de isStackable et maxStackSize est correctement gérée dans la méthode AddItem.

3. Concevoir l’interface utilisateur (UI) de l’inventaire

Une fois la logique interne en place, il est temps de rendre votre inventaire visible au joueur. L’UI de Unity est un outil puissant pour cela.

Mettre en place le Canvas UI

Commencez par créer un Canvas (GameObject -> UI -> Canvas) dans votre scène. Ce Canvas sera l’hôte de tous vos éléments d’interface utilisateur. Vous pouvez ensuite ajouter un Panel pour servir de fond à votre fenêtre d’inventaire.

Créer un Slot UI d’inventaire

Chaque emplacement de votre inventaire aura sa propre représentation visuelle. Pour un tutoriel inventaire Unity débutant, nous allons créer un prefab de UISlot :

  • Dans votre Canvas, créez un Image (GameObject -> UI -> Image). Renommez-le InventorySlot.
  • Ajoutez un autre Image enfant pour afficher l’icône de l’objet et un Text (Text – TextMeshPro recommandé) pour la quantité.
  • Créez un nouveau script C# nommé InventorySlotUI. Ce script sera responsable de la mise à jour de l’apparence du slot en fonction de l’objet qu’il contient. Il exposera des méthodes pour définir l’icône et la quantité.
  • Transformez ce InventorySlot en un Prefab pour le réutiliser facilement.

Connecter l’UI à l’InventoryManager

Votre InventoryManager aura besoin de savoir quand l’inventaire change pour mettre à jour l’UI. La meilleure approche est d’utiliser un système d’événements :

  • Dans InventoryManager, déclarez un événement comme public static event Action OnInventoryChanged;.
  • Déclenchez cet événement (OnInventoryChanged?.Invoke();) chaque fois que vous ajoutez ou retirez un objet.
  • Créez un script InventoryDisplay qui s’abonnera à cet événement et instanciera ou mettra à jour les InventorySlotUI en fonction du contenu de l’InventoryManager.

4. Implémenter des interactions simples : ramasser et déposer des objets

Un inventaire n’est utile que si les joueurs peuvent y ajouter et en retirer des objets. Explorons les mécanismes de base.

Ramasser des objets dans le monde

Pour permettre aux joueurs de ramasser des objets, vous devez d’abord représenter ces objets dans le monde du jeu. Créez un Prefab pour chaque Item qui contiendra :

  • Un SpriteRenderer pour l’apparence visuelle.
  • Un Collider2D (ou Collider 3D) marqué comme Is Trigger.
  • Un script nommé WorldItem qui détient une référence à son ItemData.

Dans le script WorldItem, utilisez la méthode OnTriggerEnter2D (ou OnTriggerEnter) pour détecter quand le joueur entre en collision. Ensuite, appelez InventoryManager.Instance.AddItem(itemData, 1); et détruisez l’objet du monde (Destroy(gameObject);).

Déposer des objets depuis l’inventaire

Le fait de déposer un objet implique de le retirer de l’inventaire et de l’instancier dans le monde du jeu. Pour une interface utilisateur simplifiée, vous pouvez ajouter un bouton sur chaque InventorySlotUI ou implémenter un simple clic pour déposer l’objet devant le joueur :

  • Dans votre script InventorySlotUI, ajoutez une méthode OnDropButtonClick().
  • Cette méthode appellera InventoryManager.Instance.RemoveItem(itemData, 1);.
  • Ensuite, elle instanciera le Prefab WorldItem correspondant à l’emplacement de votre joueur.

Assurez-vous que l’événement OnInventoryChanged est déclenché après chaque ajout ou retrait pour maintenir l’UI à jour.

5. Prochaines étapes et améliorations pour votre inventaire

Félicitations ! Vous avez bâti un solide système inventaire Unity 2026. Maintenant, vous pouvez envisager d’autres fonctionnalités pour rendre votre inventaire encore plus complet :

  • Empilement d’objets (Stacking) : Améliorez votre logique AddItem pour empiler des objets identiques jusqu’à maxStackSize.
  • Glisser-déposer (Drag and Drop) : Implémentez des interfaces Unity IDragHandler, IBeginDragHandler, IEndDragHandler et IDropHandler pour permettre aux joueurs de réorganiser leurs objets.
  • Affichage des détails d’objet : Créez un panneau qui s’affiche lorsque le joueur survole ou sélectionne un objet, affichant son nom, son icône et sa description.
  • Système d’équipement : Ajoutez la possibilité d’équiper des objets (armes, armures) en déplaçant l’objet de l’inventaire vers un emplacement d’équipement dédié.
  • Sauvegarde et chargement : Implémentez un système pour sauvegarder l’état de l’inventaire et le recharger entre les sessions de jeu, peut-être en utilisant JSON ou Unity’s PlayerPrefs pour les débutants.

Conclusion

Créer un système d’inventaire simple dans Unity 2026 est une étape fantastique dans votre parcours de développement de jeux. Grâce à ce tutoriel inventaire Unity débutant, vous avez appris à structurer vos données d’objets avec des ScriptableObjects, à gérer la logique d’inventaire avec un InventoryManager et à construire une interface utilisateur fonctionnelle. Cette base solide vous ouvre les portes à d’innombrables possibilités pour enrichir l’expérience de jeu de vos projets. N’hésitez pas à expérimenter, à ajouter de nouvelles fonctionnalités et à personnaliser ce système pour qu’il corresponde parfaitement à la vision de votre jeu. Le monde du développement est vaste ; continuez d’apprendre et de créer !

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Facebook Twitter Instagram Linkedin Youtube