Ce guide présente comment migrer en douceur de Unity vers Godot (version .NET supportant C#). Dans cette première partie, nous comparons leurs éléments et principes de base.

➤ Comparaison de gestionnaires de projets
➤ Comparaison des fenêtres de création de projet
➤ Comparaison des interfaces
➤ Retrouver dans Godot les concepts de bases de Unity : composants et préfabs
➤ Comment créer un prefab sous Godot ?
➤ Comment créer un GameObject sous Godot ?

— réalisé par Anthony Cardinale, auteur de plusieurs livres sur Unity et du livre sur Godot "Développer des jeux avec Godot 4 et le langage C#"

UNITY HUB vs GESTIONNAIRE DE PROJETS GODOT

Capture d'écran du UnityHub

Capture d'écran du gestionnaire de projet de Godot

Unity HUB permet de gérer ses projets, de créer un nouveau projet et d’installer plusieurs versions de Unity en parallèle.

Le gestionnaire de projets de Godot permet de faire sensiblement la même chose mais ne permet pas de visualiser les différentes installations de Godot dont vous disposez. Cependant, vous pouvez ouvrir un projet réalisé sur une version différente de Godot et le gestionnaire se chargera de faire la conversion.

CRÉATION D’UN PROJET

Fenêtre de création d'un projet sous Unity

Fen%C3%AAtre%20de%20cr%C3%A9ation%20dun%20projet%20sous%20Godot.png

L’INTERFACE

Interface de Unity

Interface de Godot

ÉQUIVALENCES ENTRE CONCEPTS DE BASE

Unity

Godot

Hierarchy

L’arbre de scène / Scene tree

Project

Système de fichiers / File system

Scene

Scène

Inspector

Inspecteur / Inspector



L’interface de Godot est assez similaire à celle de Unity. Les fenêtres peuvent être agencées à votre guise.

La particularité de Godot c’est que tout tourne autour du système de nœuds (contrairement à Unity qui fonctionne avec des composants  [components]). Plusieurs nœuds imbriqués forment un arbre. Lorsqu’on parle de Scene tree, on parle de la liste des nœuds de la scène.

Dans Godot, les liens de parenté sont très importants. Encore plus que sous Unity. Pour construire une scène, nous créons des nœuds qui forment des branches puis un arbre de scène.

Exemple d’arbre :

Exemple d'arbre dans Godot

CRÉER UN COMPOSANT RÉUTILISABLE DANS GODOT

Dans Unity, lorsqu’on souhaite réutiliser un objet de jeu, on crée ce que l’on appelle un prefab. Dans Godot nous avons un système similaire mais qui se manifeste différemment.

Pour créer quelque chose d’équivalent à un prefab, nous devons créer une scène qui aura ses propres nœuds. Par exemple, si j’ai un objet à ramasser (Rigidbody + Mesh + Collider), je vais créer la scène avec l’arbre suivant :

Equivalent d'un prefab sous Godot

Cette scène peut ensuite être enregistrée afin d’être par la suite instanciée et donc réutilisée :

Création d'un prefab sous Godot

Donc un prefab c’est une scène qui peut être insérée dans une autre scène.

CRÉER UN NŒUD

Dans Godot, pour créer un nouveau nœud, il faut cliquer sur le « + » au niveau du Scene tree :

DeUnityAGodot_part1_html_2bb72bc85528c021.png

Créer un nœud revient à créer un GameObject ou à ajouter un composant à un GameObject.

Lorsqu’on crée un nœud, nous devons choisir la nature de ce nœud :

Nature d'un noeud sous Godot

Par exemple, pour créer un Cube 3D, il faut commencer par créer un MeshInstance3D (l’équivalent d’un Mesh Renderer sous Unity) :

Création d'un cube 3D sous Godot : 1. le MeshInstance3D

Une fois ce nœud créé, pas grand-chose ne se passe. En effet, il faut préciser le mesh à utiliser en passant par l’inspector :

Création d'un cube 3D sous Godot : 2. déclaration du mesh

Création d'un cube 3D sous Godot : 2. Déclaration du Mesh

Le cube est alors visible :

Création d'un cube 3D sous Godot : 3. résultat

AJOUTER UN COMPOSANT

Dans Godot, tout fonctionne avec des nœuds. Pour ajouter un composant au cube, nous devons ajouter un nœud enfant. Par exemple, pour ajouter un collider, nous allons sélectionner le nœud CollisionShape3D :

Ajout d'un collider sous Godot

On remarque qu’une alerte apparaît à côté de ce nœud. En réalité, Godot vous demande de toujours préciser les caractéristiques d’un nœud. Lorsque vous ajoutez un CollisionShape, Godot attend que vous précisiez la nature de cette forme de collision. On va donc choisir un BoxShape3D :

Sélection de la forme du collider sous Godot

Comme pour Unity, Godot fait la distinction entre les nœuds 3D et les nœuds 2D. Donc, en général, le nom du nœud se termine par 2D ou 3D selon sa nature. C’est comme pour le Rigidbody ou Rigidbody2D sous Unity.

En parlant de Rigidbody, si on souhaite que le cube soit un Rigidbody (et donc affecté par la gravité), il faut convertir son nœud parent. D’ailleurs, le CollisionShape3D ne peut être enfant que d’un Area ou d’un Body (Rigidbody, Staticbody, Characterbody).

Pour convertir un nœud, faites un clic droit puis choisissez Changer de type :

Conversion d'un noeud sous Godot

Choisissez RigidBody3D. Faites ensuite glisser le nœud CollisionShape3D sous le nœud principal :

Conversion d'un noeud sous Godot : résultat

Vous pouvez renommer les nœuds afin de mieux vous y retrouver. Ensuite, pour créer un prefab, enregistrez simplement la scène : Scène / Enregistrer la scène sous :

Renommer un noeud sous Godot

Pour instancier la scène (utiliser le prefab), utilisez l’icône suivante :

Instancier un objet (scène) sous Godot

Attention, vous ne pouvez pas instancier une scène dans elle-même. Créez une nouvelle scène vide pour tester l’instanciation :

Création d'une nouvelle scène vide sous Godot

Vous pouvez de cette façon construire vos scènes / niveaux et organiser le tout. Sous Godot, vous retrouverez des nœuds pour gérer les lumières, les materials, les caméras, les sons, les agents de navigation, les collisions, l’interface utilisateur… N’hésitez pas à parcourir la liste des nœuds ainsi que la documentation pour prendre connaissance des différents nœuds disponibles.

Voilà, vous connaissez les manipulations de base pour créer vos scènes sous Godot.



De Unity à Godot - Partie 2 : Écrire des scripts sous Godot

➥  suivant