Pour les programmeurs C++
Pour utiliser la programmation Blueprint, l'Unreal Engine suffit. Toutes les fonctionnalités nécessaires y sont intégrées.
Pour écrire du code en C++, téléchargez Visual Studio sur Windows ou installez Xcode sur macOS. Lorsque vous créez un nouveau projet C++ dans l'Unreal Engine (ou que vous ajoutez du code C++ à un projet existant), l'Unreal Engine crée automatiquement des fichiers de projet Visual Studio pour vous.
Vous pouvez accéder à Visual Studio de deux façons depuis votre projet Unreal Engine :
-
Dans le navigateur de contenu, double-cliquez sur une classe C++ pour l'ouvrir dans Visual Studio.
-
Dans le menu principal, allez dans Outils > Ouvrir Visual Studio. Cette option n'apparaît que si votre projet contient au moins une classe C++.
Important : vous devrez parfois actualiser manuellement les fichiers du projet Visual Studio (par exemple, après avoir téléchargé une nouvelle version de l'Unreal Engine ou lorsque vous déplacez manuellement un fichier source sur le disque.) Vous pouvez procéder de deux façons :
-
Dans le menu principal de l'Unreal Engine, allez dans Outils > Actualiser le projet Visual Studio.
-
Faites un clic droit sur le fichier .uproject dans le répertoire de votre projet et sélectionnez Generate Visual Studio project files.
Écrire les fonctions d'événement (Start, Update, etc.)
Si vous avez déjà travaillé avec MonoBehaviors, vous devrez connaître des méthodes telles que Start
, Update
et OnDestroy
. Vous trouverez ci-dessous une comparaison entre un comportement Unity et son équivalent pour les acteurs et composants Unreal Engine.
Dans Unity, vous aviez probablement un composant simple tel que celui-ci :
public class MyComponent : MonoBehaviour
{
void Start() {}
void OnDestroy() {}
void Update() {}
}
Dans l'Unreal Engine, vous pouvez coder directement sur l'acteur, au lieu de créer de nouveaux types de composants. C'est une opération très courante et pratique.
Les acteurs Unreal Engine ont un ensemble de méthodes semblables aux fonctions Start
, OnDestroy
et Update
de Unity. Elles sont présentées ci-dessous :
C++
UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()
// Appel au début du jeu.
void BeginPlay();
// Appel lors de la destruction.
void EndPlay(const EEndPlayReason::Type EndPlayReason);
// Appel à chaque image pour mettre à jour cet acteur.
void Tick(float DeltaSeconds);
};
Blueprint

Dans l'Unreal Engine, les composants contiennent différentes fonctions. Voici un exemple simple :
C++
UCLASS()
class UMyComponent : public UActorComponent
{
GENERATED_BODY()
// Appel après la création de l'acteur propriétaire.
void InitializeComponent();
// Appel lorsque le composant ou l'acteur propriétaire est en cours de destruction.
void UninitializeComponent();
// Version du composant de tick.
void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction);
};
Blueprint

Pour rappel, dans l'Unreal Engine, vous devez appeler la version du processus de la classe parente.
Par exemple, en C# dans Unity, cela s'appellerait base.Update()
, mais en C++ dans l'Unreal Engine, vous utiliserez Super::TickComponent()
:
void UMyComponent::TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
// Éléments relatifs aux ticks personnalisés ici
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
}
En C++, certaines classes utilisent le préfixe A
, tandis que d'autres utilisent le préfixe U
. A
indique une sous-classe d'acteur, tandis que U
désigne une sous-classe d'objet. Un autre préfixe courant est F
, qui est utilisé pour la plupart des structures de données ordinaires et des classes non-UObject.