Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Unity
  3. Introduction à Unity
Extrait - Unity De la création à la publication d'un jeu vidéo en 2D
Extraits du livre
Unity De la création à la publication d'un jeu vidéo en 2D Revenir à la page d'achat du livre

Introduction à Unity

Présentation générale de Unity

1. Qu’est-ce que Unity ?

Unity est un moteur de jeu multiplateforme et un IDE (Integrated Development Environment) ou, en français, un environnement de développement intégré utilisé pour créer des jeux vidéo, des simulations et des applications interactives en 2D et 3D. Cela signifie qu’il regroupe toutes les ressources permettant de gérer la création du jeu telles que l’éditeur de code, les outils de compilation, les outils de débogage, la gestion des sources, la documentation, etc.

Développé par la société Unity Technologies, Unity est l’un des moteurs de jeux les plus populaires notamment grâce à son accessibilité et à sa grande communauté, rendant son utilisation agréable tant pour les débutants que pour les professionnels. En effet, la courbe d’apprentissage de Unity est moins raide que d’autres moteurs de jeu tels que Unreal Engine. Unity offre une licence gratuite (Unity Personal) permettant aux développeurs indépendants et aux petits studios de créer leurs premiers jeux sans frais initiaux, à condition qu’ils ne dépassent pas un plafond de revenus annuels (100 000 $ à l’écriture de ce livre). Au-delà de ce plafond, les développeurs devront utiliser Unity Plus qui offre des fonctionnalités supplémentaires telles que des services cloud et sera facturé mensuellement ou annuellement. Il existe aussi des versions Pro, Entreprise et Education pour d’autres situations.

2. Pourquoi utiliser Unity ?

Unity est un moteur de jeu parmi d’autres, il est donc légitime de se demander les raisons pour lesquelles celui-ci se démarque. Il a tout d’abord pour lui sa polyvalence. En effet, il est assez simple de réaliser différents types de projets 2D, 3D ou une combinaison des deux. Concernant le support du moteur, Unity possède une grande communauté active ainsi que plusieurs ressources en ligne gratuites permettant d’obtenir de l’aide aisément. Le moteur est en constante évolution et de nouvelles versions du moteur sortent régulièrement pour répondre aux besoins des utilisateurs. Quant aux plateformes sur lesquelles il est possible d’exporter un jeu, Unity prend en charge une large gamme d’entre elles y compris iOS, Android, Windows, Linux, macOS ainsi que les principales consoles de Sony, Microsoft et Nintendo. Il est aussi possible d’exporter le jeu pour une utilisation de la réalité virtuelle ou de la réalité augmentée. Enfin, son utilisation peut convenir à des profils ayant une base de connaissance en développement grâce à l’utilisation de script C#, mais aussi aux profils n’ayant pas cette base tout en gardant la même logique grâce au Visual Scripting qui permet de construire visuellement des éléments de gameplay.

3. Les types de projets réalisables avec Unity

Unity est une option de choix dans la création de jeux et applications 2D. Il est, par exemple, possible de créer :

  • des jeux de plateformes où les joueurs se déplacent et évoluent sur le plan horizontal et vertical (comme les jeux Mario ou Sonic dans les années 1990) ;

  • des jeux de réflexion où les joueurs seront mis à l’épreuve avec des casse-têtes, des énigmes, etc. (comme Tetris ou le Sudoku) ;

  • des jeux RPG où les joueurs seront plongés dans une aventure dans un monde fantastique (comme la série des Dark Souls ou des JRPG comme les Final Fantasy) ;

  • des jeux de simulation où le joueur sera amené à expérimenter de manière de plus en plus poussée un domaine ou une activité (comme Flight Simulator ou les Sims) ;

  • des jeux d’arcades avec des gameplay simples et addictifs qui sont souvent populaires sur les plateformes mobiles (comme Candy Crush ou Angry Bird).

Ceci est une petite partie de ce qu’il est possible de réaliser avec Unity. Le moteur est assez polyvalent pour pouvoir réaliser tout type de projet, et ce sur différentes plateformes.

4. Les outils associés à Unity

a. Outils de développement

Unity n’intègre pas en son sein un outil de développement pour les scripts C#. Il permet cependant de lier un logiciel de développement pour associer les fichiers .cs du projet avec ce logiciel. Le logiciel le plus communément utilisé avec Unity est Visual Studio dont l’installation est proposée lors de l’installation de Unity. Visual Studio étant un logiciel demandant beaucoup de ressources, certains utilisateurs se tourneront plutôt vers Visual Studio Code qui est une version allégée de Visual Studio 202X.

L’utilisation de l’éditeur de code va permettre d’avoir un support adéquat pour développer les scripts mais aussi de pouvoir facilement déboguer le code en cas d’erreur. En effet, une fois le logiciel lié à Unity, il sera possible de placer des points d’arrêt sur les scripts.

b. Les outils de suivi

Il est possible de lier un projet Unity à un gestionnaire de versions. Un gestionnaire de versions va permettre de mieux gérer un projet lorsque plusieurs personnes travaillent dessus, de suivre et historiser les modifications et revenir dessus en cas de besoin, de pouvoir travailler avec des branches pour garder une branche principale propre à tout moment. Le moteur de jeu intègre un Unity Version Control (anciennement Unity Collaborate jusqu’au rachat de la solution de gestion de version Plastic SCM par Unity). Même si Unity propose sa propre solution de gestion des versions, il est tout de même possible d’utiliser d’autres outils du même genre sur le projet. L’alternative la plus utilisée avec Unity est Git.

5. Unity Hub

a. Définition

Unity hub est une application standalone qui permet de trouver, télécharger et gérer tous les projets Unity et les installations des versions du moteur avec une seule plateforme. Elle permet aussi :

  • de gérer le compte Unity et les licences du moteur ;

  • de gérer les différents projets avec leurs versions respectives ;

  • d’ajouter des composants aux versions déjà installées comme la dernière version de Visual Studio ou la possibilité de créer une application Android ;

  • d’installer les dernières versions de Unity ;

  • d’accéder aux projets pour apprendre à partir d’un projet de base ;

  • d’accéder au contenu de la communauté autour de Unity comme l’Asset store, l’espace d’entraide, etc.

b. L’onglet Projects

L’onglet Projects permet d’accéder aux projets Unity...

Asset Store et Package Manager

1. Asset Store

L’Asset Store de Unity est une plateforme en ligne où les développeurs de jeux et d’applications peuvent vendre, acheter et partager des ressources telles que des outils d’aide au développement, des scripts, des éléments graphiques, des plug-ins et autres éléments. Les avantages d’utiliser des ressources venant de l’Asset Store sont : un gain de temps sur le développement d’un jeu ou d’une application, d’avoir pour la plupart des ressources un support réactif en cas de problème ou de demande spécifique ainsi que des mises à jour simples des ressources à chaque nouvelle version d’un Asset.

images/01EI05.png

2. Package Manager

Le Package Manager (ou gestionnaire de paquets) est un outil permettant d’ajouter, de mettre à jour et de gérer les extensions utilisées sur un projet. Ces packages peuvent inclure des bibliothèques de code, des ressources graphiques, des outils, des plug-ins, etc. Il est accessible dans la barre de menu de la fenêtre Unity dans le menu Windows - Package Manager.

images/01EI06.PNG

Les packages disponibles sont positionnés dans différentes rubriques sur la fenêtre du Package Manager :

  • In Project : liste les packages installés sur le projet. Cette vue est utile pour repérer rapidement les packages ayant une mise à jour disponible.

  • Unity Registry : liste tous les packages mis à disposition, centralisés sur un serveur et maintenus par la société Unity Technologies elle-même.

  • Built-in : liste les packages directement inclus dans Unity.

  • My Assets : liste les packages disponibles sur le compte de l’utilisateur, comme les assets achetés...

Configuration de l’environnement de développement d’un projet 2D

Avant de valider la création d’un nouveau projet dans Unity, plusieurs choix sont proposés afin d’avoir les bons outils pour démarrer le type de projet voulu. Concernant les options pour démarrer un projet 2D, il est possible de partir sur une base de projet vide (scène vide) avec tous les packages de base. Il est également possible de créer un projet 2D avec l’Universal Render Pipeline (URP), qui est un « pipeline » de rendu, c’est-à-dire une séquence d’étapes du rendu graphique qui permet d’avoir à l’écran une simulation de matériau, de relief et de reflet. L’URP est un pipeline de rendu optimisé pour les jeux 2D et mobiles permettant d’avoir des rendus solides tout en gardant de bonnes performances sur une large gamme d’appareils. Enfin, il est possible de créer un projet avec les packages recommandés pour la réalisation de projets mobiles.

Il faut aussi veiller à bien choisir sa version de Unity afin d’avoir une compatibilité au niveau des packages, de pouvoir réaliser des projets pour les appareils récents ou d’être en adéquation avec la version d’autres projets qui seraient amenés à être inclus dans celui-ci....

Présentation de la structure de base d’un projet Unity

Un projet Unity est composé de plusieurs dossiers sur l’ordinateur ainsi que d’une solution qui liera tous les scripts créés au projet. Seuls les dossiers Assets et Packages apparaîtront dans l’arborescence du projet dans Unity.

Le dossier Packages contiendra tous les packages de base qui sont utiles pour la réalisation du projet voulu en fonction du choix précédemment fait. Son contenu est visualisable mais n’a pas vocation à être utilisé puisque les packages sont gérés via une autre option appelée Package Manager.

Le dossier Assets est le dossier de travail dans lequel tous les éléments du projet se trouveront. Un dossier Scenes avec une scène SampleScene est disponible à la création du projet. Il n’y a pas de contraintes réelles dans la création des ressources du projet, c’est-à-dire que le projet fonctionnera correctement quel que soit l’endroit où se trouvent les ressources dans le dossier Assets. Cependant, il est tout de même recommandé de respecter certaines normes pour des questions d’organisation et de facilité de lecture du projet. Les dossiers couramment créés dans un projet Unity sont les suivants :

  • Le dossier Scenes qui est créé par défaut et contiendra toutes les scènes du projet. Elles peuvent être séparées en différents sous-dossiers pour, par exemple, séparer les scènes de jeux et les scènes de menu.

  • Le dossier Scripts qui contiendra tous les scripts du projet.

  • Le dossier Prefabs qui contiendra tous les modèles préfabriqués qui pourront être réutilisés dans plusieurs scènes.

  • Le dossier Materials qui contiendra les matériaux...

Prise en main de l’éditeur de Unity

1. Menus

La fenêtre principale du logiciel Unity est modulable, c’est-à-dire que les fenêtres qui s’y trouvent peuvent être déplacées ou retirées selon les préférences. Il est également possible d’ajouter de nouvelles fenêtres depuis la barre de menus.

La barre de menus est composée des menus File, Edit, Assets, GameObject, Services, Window et Help. Selon les packages installés, de nouveaux menus peuvent apparaître.

Le menu File contient les sous-menus permettant de créer ou d’ouvrir des scènes en passant par l’explorateur de fichiers mais également permettant de gérer les projets Unity grâce aux sous-menus de création, d’ouverture et de sauvegarde. Enfin, il y a le sous-menu Build permettant de créer un exécutable à partir du projet afin de jouer au jeu en dehors de Unity et ainsi le partager.

Le menu Edit regroupe une suite d’outils de manipulation d’éléments comme le fait de copier, coller, couper, tout sélectionner, annuler une action, etc. mais aussi des raccourcis d’autres fonctionnalités disponibles sur la fenêtre comme le fait de lancer la simulation. Enfin, ce menu donne accès aux préférences et aux paramètres du projet.

Le menu Preferences permet de personnaliser l’apparence de Unity en choisissant des couleurs adaptées aux goûts de l’utilisateur ou pour rendre certains éléments plus visibles que d’autres. Il permet aussi de définir des emplacements pour stocker certaines ressources comme les packages externes, et enfin il permet aussi de choisir les logiciels externes (External Tools) pour définir les outils à utiliser pour éditer les scripts, ouvrir les images et pour gérer les versions. 

images/01EI08.PNG
images/01EI09.PNG

Le menu Assets permet d’accéder à la création de GameObjects, objets de base pour la construction d’une scène pour un jeu, qui est aussi accessible dans le menu contextuel de la fenêtre Hierarchy. Il permet aussi d’importer ou d’exporter des ressources au format .unitypackage. Ce format permet d’ajouter des ressources telles que des scènes, des scripts et des éléments graphiques depuis d’autres projets ou d’exporter tout ou partie de notre projet pour une utilisation par d’autres projets.

Le menu Component permet d’ajouter à un GameObject un ou plusieurs composants qui peuvent être liés à la physique, au graphisme ou à l’audio. Les éléments de ce menu sont grisés si aucun GameObject n’est sélectionné au préalable, et ce menu fait écho à celui accessible sur la fenêtre Inspector lorsqu’un GameObject est sélectionné et que le bouton Add component est cliqué.

images/01EI10.PNG

Le menu Service permet d’accéder à tous les outils liés à la gestion du projet au sein d’un groupe ou d’une organisation et aux services permettant de mettre en place de la monétisation via les pubs ou des achats intégrés. L’option Explore va tout d’abord mener à la fenêtre de gestion des packages (Package Manager) pour installer le package nécessaire à l’utilisation des services.

images/01EI11.PNG

Une fois installé, ce package nécessitera la configuration du projet qui demandera de sélectionner l’organisation à laquelle il sera lié et fournira un project ID.

images/01EI12.PNG

Une fois cela fait, il faut installer le package In App Purchasing qui va donner la possibilité d’inclure des achats intégrés aux jeux et applications. 

images/01EI13.PNG

Le package donne accès dans le menu Service à de nouveaux composants permettant d’ajouter des interactions pour proposer des achats intégrés : les IAP Button qui seront l’aspect visuel de l’élément proposé à l’achat dans le jeu et IAP Listener qui va écouter les événements liés aux achats intégrés comme un achat réussi ou un achat échoué.

images/01EI15.PNG

L’option IAP Catalog permet d’accéder à la fenêtre permettant de définir tous les éléments à afficher dans la boutique du jeu en indiquant son type pour savoir si c’est un consommable ou non, le titre et la description qui pourraient être affichés dans la boutique, la langue dans laquelle le titre et la description sont saisis et le prix de chaque élément de la boutique, et tout cela en fonction des plateformes à partir desquelles le jeu a été téléchargé.

images/01EI16.PNG

Le menu Window permet d’accéder à toutes les fenêtres disponibles dans Unity, qu’elles soient issues de Unity ou d’un package. Il permet notamment d’accéder au Package Manager et aux fenêtres principales de Unity, à savoir Hierarchy, Scene, Game, Inspector, Project et Console.

Enfin, le menu Help permet d’avoir accès à toutes les ressources documentaires de Unity comme les tutoriels, la version de Unity et les technologies utilisées, de vérifier les dernières mises à jour et les notes de release pour savoir quelles sont les dernières nouveautés de la version en cours d’utilisation.

2. Fenêtres

Unity a une interface composée de plusieurs fenêtres qui peuvent être déplacées, retirées ou ajoutées via le menu Window. Celles affichées par défaut sont les plus utiles pour démarrer un projet.

La fenêtre Hierarchy contient la hiérarchie de tous les éléments de la scène.

images/01EI17.PNG

Elle contient la liste des objets présents sur la scène, aussi appelés GameObject, et permet aussi de les créer grâce au bouton + ou au menu contextuel en faisant un clic droit dans la fenêtre. Ces menus contiennent les mêmes éléments de création que dans le menu GameObject (cf. la sous-section Les menus). Nous parlons ici de hiérarchie, car chaque objet peut être contenu dans un autre, soit pour lier deux éléments d’un même objet comme par exemple un bouton et son texte et/ou son icône, soit pour organiser les éléments par groupe d’objets comme par exemple regrouper toutes les pièces à récolter dans un niveau.

images/01EI18.PNG

Il est aussi possible de faciliter la lisibilité de la hiérarchie ou de la scène grâce à la barre de recherche ou de cacher ou non les objets présents sur la scène.

La fenêtre Scene est l’endroit où tous les éléments visuels du jeu seront présents et pourront y être créés et modifiés.

images/01EI19.PNG

Elle offre une représentation visuelle en temps réel de ce qui sera affiché sur le jeu, notamment concernant les effets de lumière, de ce que voit la caméra et les modifications apportées aux objets de la scène. Il y est possible de manipuler les GameObject grâce aux outils de déplacement mis à disposition par Unity. Cette fenêtre donne une vue globale sur le contenu du niveau du jeu puisque tous les éléments de la scène de jeu y seront présents, mais qu’une seule partie sera visible par la caméra.

La fenêtre Game représente le jeu tel que le joueur le verra. Lorsque le bouton Play est cliqué, Unity basculera automatiquement sur cette fenêtre. Ce qui y est affiché...