Comparaison des GameObjects avec les UObjects et les acteurs
Dans Unity, les GameObjects représentent des objets programmables dans le jeu. Un GameObject ne fait pas grand-chose par lui-même : il agit comme un conteneur pour les composants, tels que Light et Mesh, aux fonctionnalités spécifiques. Chaque GameObject comporte un composant Transform intégré qui représente sa position et son orientation dans le monde.
Dans l'Unreal Engine (UE), les UObjects représentent des objets programmables dans le monde de votre jeu. La classe UObject fonctionne comme une classe de base commune à la plupart des classes de l'UE. Cette approche prend en charge le système de reflets de l'Unreal Engine, qui fournit un nettoyage mémoire automatique et d'autres avantages.
Acteur, sous-classe d'UObject, est un équivalent proche du GameObject de Unity. Les acteurs prennent en charge le système de composants et les transformations (USceneComponent) de l'UE, afin que vous puissiez les placer dans le monde. Cependant, une différence essentielle par rapport à Unity est que vous pouvez directement étendre la fonctionnalité d'un acteur au lieu de vous appuyer exclusivement sur les composants.
Si l'implémentation de votre objet ne nécessite pas les fonctionnalités supplémentaires de l'une des sous-classes d'UObject, vous pouvez développer UObject directement pour alléger l'implémentation. Consultez la rubrique Objets pour obtenir des informations plus détaillées sur les UObjects.
Comparaison des systèmes de composants
Comme Unity, l'UE dispose d'un système de composants que vous pouvez utiliser pour joindre des fonctionnalités réutilisables à vos objets de jeu. Vous pouvez créer vos propres composants en partant de zéro ou en améliorant l'un des nombreux composants fournis avec l'UE. Avant cela, il convient de comprendre les principaux types de composants suivants :
Composant d'acteur - Le type de composant de base qui se joint à un acteur. Les composants d'acteur n'ont pas de transformation et n'ont donc pas d'emplacement physique dans le monde. Ils sont utiles pour les comportements abstraits, tels que la gestion des inventaires ou des attributs.
Composant de scène - Type de composant d'acteur bénéficiant d'une transformation pour le positionnement dans le monde. Les composants de scène n'ont pas de représentations visuelles et conviennent donc aux comportements non visuels basés sur la localisation, tels que les forces physiques, les caméras ou l'audio.
Composant primitif - Type de composant de scène bénéficiant d'une représentation visuelle et physique. Il convient au rendu des éléments visuels et des volumes de collision.
Dans Unity, vous pouvez créer des GameObjects complexes grâce à la relation parent-enfant. Par exemple, un objet parent peut avoir plusieurs objets enfants dotés de leurs propres maillages, leurs propres collisionneurs ou leurs propres comportements.
Dans l'UE, vous pouvez créer des acteurs avec une hiérarchie similaire en utilisant des composants au lieu d'acteurs enfants afin de réduire les performances et les coûts de mémoire.
Consultez la rubrique Composants pour obtenir des informations plus détaillées sur le système de composants de l'UE.
Comparaison d'Update() et de Tick()
Dans Unity, les mises à jour des composants sont principalement commandées par Update(), et FixedUpdate() dans MonoBehaviour.
Dans l'UE, les acteurs utilisent Tick() (activé par défaut), et les composants utilisent éventuellement TickComponent() (désactivé par défaut).
Par défaut, le tick se produit une fois par image. Vous pouvez spécifier un autre intervalle de tick en attribuant un groupe de ticks, tel que TG_DuringPhysics. Vous pouvez également spécifier une dépendance de tick pour empêcher les ticks jusqu'à ce qu'une autre fonction de tick spécifiée soit terminée.
Pour en savoir plus, consultez les ressources suivantes :
Framework de gameplay
Le framework de gameplay de l'Unreal Engine est une collection de classes comprenant des acteurs et des composants, qui vous fournissent une base modulaire sur laquelle bâtir vos expériences de jeu.
Si l'on compare l'implémentation du gameplay dans Unity à l'utilisation du framework de gameplay de l'UE, il y a plus de différences que de similitudes. Nous vous recommandons donc de consulter la section Framework de gameplay pour en savoir plus sur la manière dont les concepts abordés dans ce document s'inscrivent dans le framework. Les sections ci-dessous couvrent elles aussi certaines classes importantes du framework à un niveau élevé.
Sous-classes UObject importantes
Niveau - Contient un ensemble d'objets de jeu qui constituent un niveau dans votre jeu. Les niveaux sont semblables aux scènes dans Unity.
Ressource de données - Permet de définir les ressources qui stockent les données de votre jeu. Les ressources de données sont semblables aux ScriptableObjects dans Unity.
Sous-classes d'acteurs importantes
Pion - Agit en tant qu'"agent" dans le monde. Un contrôleur peut posséder un pion pour en prendre le contrôle.
Personnage - Type de pion qui représente un personnage de type humanoïde et qui offre des fonctionnalités élémentaires de déplacement et de collision.
Contrôleur - Responsable de la direction des pions après les avoir possédés.
PlayerController - Permet de fournir le contrôle d'un pion à un joueur humain.
Contrôleur IA - Permet de contrôler un pion à l'aide d'une intelligence artificielle.
Mode de jeu - Acteur gestionnaire qui définit et met en place votre jeu.
État de jeu - Contient les informations d'état de jeu.
État du joueur - Contient des informations sur l'état d'un joueur. L'état de jeu suit tous les états des joueurs dans une matrice.