Catégories
Développement Tutoriel Unity

Unity 3D – Créer un inventaire partie 1

Dans ce tutoriel, nous mettrons en place un inventaire, qui comprendra la création des objets et la gestion du stockage.

Cela permettra d’appréhender le fonctionnement des ScriptableObject, des List et de la création d’interface.

Dans cette partie, nous allons commencer par le plus simple, la création des objets et de l’interface que nous utiliserons par la suite.

Le code source complet sera disponible à la fin du tutoriel.

Création des objets

Pour gérer un inventaire, il nous faut bien des objets à ranger ou à prendre.

Nous allons créer un script Item qui représentera les différentes données d’un objet de notre jeu.

Pour faire quelque chose de réutilisable, la classe Item héritera de la classe ScriptableObject.
Les ScriptableObject permettent de créer des objets pour stocker des données puis les exploiter facilement.
Un Item aura un nom, une icone et une description.

Dans le script, saisissez le code suivant :

using UnityEngine;

[CreateAssetMenu(fileName ="Nouvel objet", menuName ="Inventaire/Créer un objet")]
public class Item : ScriptableObject
{
    public new string name;
    public Sprite icon;
    public string description;
}

La classe Item hérite de ScriptableObject, on a bien créé les différentes données qui seront utilisées par la suite.

CreateAssetMenu vous permets de modifier le menu des ressources de votre projet.

Asset Menu création d'objet

Normalement, quand vous faites clic droit dans votre projet dans les dossiers, vous devriez voir ceci

Maintenant, nous sommes en capacité de créer des objets.
Nous allons en faire un ou deux pour varier, dans mon cas, une potion et une épée. Dans le but d’avoir un projet structuré, j’ai créé un dossier Objets.

Pour les icônes des objets, j’utilise pour cet exemple un pack d’icônes mis a disposition sur OpenGameArt de yinakoSGA.

Mise en place du menu

Maintenant que nous avons créé des objets, nous allons pouvoir regarder pour faire l’interface graphique du menu.
Pour cet exemple, j’utilise le pack d’interface de Kenney.

Nous allons commencer par créer un Panel en faisant clic droit UI > Panel.

Je vais importer un fond, un bouton qui fera office de case comme vous pouvez le voir ci-dessous.

Menu inventaire

Pour les cases bleue à droite, ce sont des prefab que j’ai nommé Case objet.
Case Objet est une Image, Nom objet est un Text et Icone une autre Image.

Pour créer un prefab, un élément réutilisable, il suffit de faire glisser l’élément de votre arborescence vers le dossier Assets si vous avez une version récente d’Unity.

Voici mon arborescence le deuxième gameobject Inventaire est notre Panel.

Pour aligner facilement les cases, j’ai ajouté un Grid Layout Group sur le Panel Inventaire avec ces paramètres qui permettent de gérer l’espace entre les éléments :

A gauche trois boutons pour tester cette exemple. Que nous configurerons par la suite.

Nous avons fini la première partie du tutoriel.

Conclusion

Nous avons vu comment créer des objets facilement à l’aide des ScriptableObject qui permettent de stocker des données facilement.

Pour ce tutoriel, j’ai utilisé des ressources de Kenney, une personne qui propose de nombreuses ressources gratuites qu’il a créés.
Je vous conseille d’y faire un tour sur son site https://www.kenney.nl pour voir ce qu’il propose et qui sait… faire un don ;).

Laisser un commentaire

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