Vous avez envie de vous lancer dans Unity ? Vous avez déjà choisi la licence qui vous correspond le mieux ? Voici un petit tutoriel pour vous expliquer comment créer votre première scène et faire évoluer un personnage à l’intérieur !
Créer une scène
Pour commencer, démarrez un nouveau projet (disons 3D, même si les idées seront similaires). Une fois dans l’éditeur, créez une nouvelle scène et sauvegardez. La première étape consiste à créer un environnement dans lequel votre joueur va évoluer ; nous pourrions le faire bouger dans l’espace, mais une approche plus terrestre va nous permettre d’introduire quelques éléments supplémentaires.
Dans le menu « GameObject », sélectionnez par exemple « Plane ». Un plan apparaît immédiatement dans votre éditeur ; vous pouvez changer sa taille, avec l’un des curseurs ou directement en modifiant les valeurs dans l’Inspecteur, fenêtre se trouvant par défaut à droite de l’écran. Par mesure d’hygiène, vous pouvez également le positionner au centre de la scène, en paramétrant ses coordonnées à (0, 0, 0).
Désormais, nous allons créer notre « personnage ». S’agissant d’une introduction à Unity, nous nous contenterons d’un simple cube ; libre à vous d’utiliser un autre objet, ou de le customiser par la suite. Dans le menu GameObject, sélectionnez donc Cube, et votre objet apparaîtra dans la scène. Vous pouvez lui aussi le replacer à l’origine sur les axes X et Z ; mais puisque nous voulons qu’il soit au-dessus de notre plan, vous pouvez le placer à une ordonnée (axe Y) de 2 ou 3.
Un peu de couleurs et de physique
Vous l’aurez sans doute remarqué, nos deux objets sont blancs et manquent donc de visibilité. Pour pallier à ce problème, nous allons créer des « Materials », que nous appliqueront ensuite sur notre cube et notre plan. Les Materials disposent de plusieurs propriétés, mais nous pourrons commencer par simplement en changer la couleur.
Dans la fenêtre d’exploration du projet, faites un clic-droit, puis Create -> Material. Bien que l’icône soit une sphère, rassurez-vous, vous pouvez l’appliquer directement sur n’importe quel type d’objet. Dans la fenêtre de l’Inspecteur, modifiez sa couleur. Ensuite, maintenez le clic gauche enfoncé pour faire glisser le Material de la fenêtre d’exploration jusqu’à votre objet dans l’architecture de la scène. Vous devriez alors voir votre objet prendre la couleur attendue dans l’éditeur !
Répétez l’opération pour obtenir un deuxième Material, attribuez-lui une couleur différente, et faites-le glisser vers votre deuxième objet. Vous devriez maintenant y voir un peu plus clair !
Avant de poursuivre, vous pouvez modifier la position de la « Main Camera » (créée par défaut) afin d’obtenir un angle de vue qui vous convient mieux. Pour cela, utilisez les différents curseurs pour effectuer des translations ou des rotations dans l’éditeur, ou bien modifiez directement ces valeurs dans l’Inspecteur.
C’est l’heure d’un premier petit test : appuyez sur le bouton Play au-dessus de votre éditeur. Le jeu va se lancer, et normalement… rien ne se passe ! Votre cube reste en l’air.
Pour respecter un peu plus les lois de la physique, nous devons ajouter un composant à notre joueur. Avant toute chose, n’oubliez pas de ré-appuyer sur le bouton « Play » pour quitter le mode Jeu ; sans cela, les modifications que vous apporterez au projet ne seront pas prises en compte. Sur la capture précédente, l’écran est devenu bleu lorsque nous sommes rentrés en mode Jeu ; vous pouvez paramétrer cela dans Edit -> Preferences -> Colors -> General -> Playmode tint. Cela permet d’éviter les accidents en différenciant clairement les deux modes.
Sélectionnez donc votre Cube dans la Hiérarchie, puis, dans l’inspecteur, cliquez sur « Add Component ». Recherchez « RigidBody » et cliquez simplement dessus. Vous pouvez directement relancer votre jeu, et vous devriez voir votre cube tomber sous l’effet de la gravité, avant de s’arrêter sur le plan. Une première étape de franchie !
Déplacer notre cube
Pour que notre joueur puisse vagabonder sur son plan, nous allons devoir lui attacher un script. Rien de bien compliqué : vous pouvez créer un script dans l’explorateur du projet (Clic droit -> Create -> C# Script), puis le faire glisser sur votre objet, comme pour les matériaux. Vous pouvez également ajouter un composant directement à l’objet, en cliquant sur Add Component -> New script et en lui donnant un nom. Si le script ne s’ouvre pas directement, double-cliquez dessus, et vous devriez basculer vers MonoDevelop ou Visual Studio, selon vos préférences (Edit -> Preferences -> External Tools).
Par défaut, votre script dispose de deux fonctions : Start(), qui sera appelée une seule fois à l’activation du script, et Update(), qui sera elle appelée à chaque frame. Pour pouvoir déplacer notre cube, le principe est très simple : lorsque nous appuierons sur une touche, nous allons appliquer la fonction Translate(x, y, z) à notre objet.
Unity fournit toutes les fonctions utiles à l’implémentation de ce comportement. Input.GetKey(KeyCode) va détecter si la touche est enfoncée, et exécutera le code lié à la condition tant que le joueur ne relâchera pas la touche. Si vous souhaitez que le joueur ait à appuyer sur la touche à chaque fois, vous pouvez utiliser Input.GetKeyDown(KeyCode).
Enfin, la fonction Translate (x, y, z) déplace notre objet en fonction des paramètres fournis. Il faut l’appliquer au composant « Transform » de notre objet.
Vous pouvez bien sûr lier d’autres touches au déplacement en fonction de vos préférences. Si vous lancez votre scène, vous devriez pour déplacer votre cube sur le plan ! Attention toutefois à ne pas aller trop loin, votre pauvre cube tomberait dans un gouffre infini…