Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Unity3D
  3. Le GameObject et ses composants
Extrait - Unity3D Développer en C# des applications 2D/3D multiplateformes (iOS, Android, Windows...)
Extraits du livre
Unity3D Développer en C# des applications 2D/3D multiplateformes (iOS, Android, Windows...)
1 avis
Revenir à la page d'achat du livre

Le GameObject et ses composants

La programmation par composition

1. Présentation

Un concept fondamental à comprendre lorsque l’on veut se lancer dans la création de script personnalisé ou plus simplement dans la manipulation d’un objet, comme l’ajout d’une texture particulière, est le principe de programmation par composition.

L’idée étant de partir d’une boîte vide qui sera la pièce principale utilisée par l’ensemble des entités pour ensuite lui ajouter des composants. Cette entité en est réduite à être un simple conteneur de composant. La combinaison des composants crée ainsi une entité spécifique simple ou complexe.

Un composant peut ainsi se traduire comme un comportement qui est ajouté à une entité "conteneur". Cette même entité est alors définie par les différents composants qui la composent. Les composants sont par contre liés à un seul objet "conteneur" parent et leur durée de vie est intimement liée à celui-ci.

images/04_01_00.PNG

On peut ainsi considérer cet exemple du monde réel : l’entité "Vélo" est composée de deux composants "roues", d’un composant "guidon" et d’un composant "selle".

Attention, vous pouvez aussi entendre parler de programmation par agrégation, qui est un concept très proche de la programmation par composition.

2. Le GameObject : le conteneur de composants

Unity s’appuie entièrement sur ce design pattern (patron de conception) afin de créer tout type d’objets : personnage animé, carte de monde, caméra, etc.

L’objet de base servant de conteneur est la classe GameObject. Comme vu dans le chapitre précédent, une scène consiste notamment en une hiérarchie de GameObjects ayant un ou plusieurs composants rattachés.

Chacun de ces composants peut ainsi être ajouté une ou plusieurs fois au même GameObject.

3. Les différentes familles de composants

Il existe une multitude de types de composants faisant directement partie d’Unity. Pour tous les autres cas, il est possible de créer des scripts personnalisés pour répondre à des besoins spécifiques.

Les composants...

La classe GameObject

1. Présentation

La classe GameObject est, comme nous venons de le voir, la classe de base, fondamentale, pour l’ensemble des objets disposés dans une scène. Un GameObject seul est très peu utile car ses fonctions sont très basiques : affectation d’un nom, d’un tag ou d’un layer spécifique.

Si cet objet semble à première vue complètement inutile, sa grande force est de pouvoir se rendre modulaire très facilement grâce à l’ajout de composant.

2. Manipuler un GameObject

a. Ajouter un GameObject

Une des manipulations que vous ferez certainement le plus souvent sera d’ajouter un nouveau GameObject dans une scène. Cela peut se faire très simplement.

Création d’un GameObject vide

 Dans la fenêtre Hierarchy, sélectionnez Create - Create Empty.

IMAGES/03_02_100.PNG

Le nom de l’objet est utilisé afin de pouvoir récupérer l’élément via un script et pour l’identifier dans la hiérarchie.

images/04_01_01.PNG

À ce titre, il est intéressant de normaliser le nom de vos objets dans la hiérarchie afin de vous simplifier la vie. Une scène peut facilement passer les centaines d’objets et cela peut vite devenir une horreur pour trouver un élément précis.

b. Supprimer un GameObject

S’il est possible d’ajouter un nombre...

Manipuler les composants dans l’éditeur

Une fois un GameObject ajouté à la scène, il est possible de lui ajouter des composants.

Nous verrons aussi dans le chapitre suivant qu’il est possible de manipuler les composants via un script.

1. Ajouter un composant

Il est très simple de manipuler un objet d’une scène pour lui ajouter, supprimer ou modifier un composant. La fenêtre Inspector permet d’afficher la liste des composants ainsi que l’accès aux propriétés de ceux-ci.

Création d’une sphère

 Dans la fenêtre Hierarchy, sélectionnez Create - Create Empty.

images/04_01_01.PNG

 Dans la fenêtre Inspector, cliquez sur Add Component - Mesh - Mesh Filter.

IMAGES/03_03_101.PNG

Un nouveau composant Mesh apparaît dans l’Inspector.

images/04_01_02.PNG

 Dans la fenêtre Inspector - Mesh Filter, cliquez sur l’outil de sélection images/04_01_01a.PNG à droite du champ de saisie Mesh.

images/04_01_03.PNG

 Dans la liste, double cliquez sur Sphere.

images/04_01_04.PNG

 Dans la fenêtre Inspector, cliquez sur Add Component - Mesh - Mesh Renderer.

images/04_01_05.PNG

 Dans la fenêtre Inspector - Mesh Renderer - Materials, cliquez sur l’outil de sélection images/04_01_01a.PNG à droite du champ de saisie Element 0 puis double cliquez sur Default-Material.

IMAGES/03_03_102.PNG

Celui-ci apparaît dans l’Inspector :

images/04_01_07.PNG

 Dans la fenêtre Inspector, cliquez sur Add Component - Physics - Sphere Collider.

images/04_01_08.PNG

L’éditeur propose...

Réutiliser ses objets grâce aux préfabriqués

1. Présentation

Lors de la création d’une scène dans l’éditeur, de multiples GameObjects sont créés avec leurs composants propres et leurs valeurs bien définies. Très souvent, un objet peut être dupliqué un grand nombre de fois, lors de la création d’un décor par exemple, et cela peut être fastidieux de modifier chaque GameObject, un par un, afin de modifier une valeur.

C’est à ce moment que les objets préfabriqués, appelés prefabs, viennent à notre secours. Ils permettent d’enregistrer des objets avec l’ensemble de leurs composants ainsi que leurs valeurs pour être réutilisés. En utilisant un prefab dans une scène, vous vous assurez que l’ensemble de ses instances seront identiques en tout point à la création. Il est aussi tout à fait possible de modifier unitairement chaque instance du prefab lorsqu’il est dans la scène.

2. Création d’un prefab

La création d’un prefab dans l’éditeur se fait à partir d’une simple opération de glisser/déposer.

 Créez une nouvelle scène et ajoutez-lui deux sphères grâce au menu Create - 3D Object - Sphere de la fenêtre...