• Jeux
  • Industrie
  • Ressources
  • Communauté
  • Apprentissage
  • Assistance
Développement
Moteur Unity
Créez des jeux 2D et 3D pour n'importe quelle plateforme
TéléchargerOffres et tarifs
Monétisation
Achat intégré (IAP)
Découvrez et gérez les IAP à travers les magasins
Mediation
Maximisez les revenus et optimisez la monétisation
Qualité des annonces
Protégez l'expérience utilisateur de votre application
Tapjoy
Construisez une fidélité utilisateur à long terme
Tous les produits de monétisation
Acquisition de nouveaux joueurs
Acquisition de nouveaux joueurs
Faites-vous découvrir et acquérez des utilisateurs mobiles
Unity Vector AI
Connectez les joueurs avec les bons jeux
Aura publicité sur appareil
Atteignez les utilisateurs sur l'appareil au moment de l'engagement maximal
Tous les produits de croissance
Cas d’utilisation
Collaboration 3D
Construisez et révisez des projets 3D en temps réel
Formation immersive
Entraînez-vous dans des environnements immersifs
Expériences client
Créez des expériences interactives 3D
Toutes les solutions sectorielles
Secteurs
Fabrication
Atteindre l'excellence opérationnelle
Distribution
Transformer les expériences en magasin en expériences en ligne
Automobile
Élever l'innovation et les expériences en voiture
Tous les secteurs
Bibliothèque technique
Documentation
Manuels d'utilisation officiels et références API
Outils de développement
Versions de publication et suivi des problèmes
Feuille de route
Examiner les fonctionnalités à venir
Glossaire
Bibliothèque de termes techniques
Informations
Études de cas
Histoires de succès dans le monde réel
Guides des meilleures pratiques
Conseils et astuces d'experts
Toutes les ressources
Nouveautés
Blog
Mises à jour, informations et conseils techniques
Actualités
Actualités, histoires et centre de presse
Centre communautaire
Discussions
Discuter, résoudre des problèmes et se connecter
Événements
Événements mondiaux et locaux
Histoires de la communauté
Made with Unity
Mise en avant des créateurs Unity
Diffusions en direct
Rejoignez les développeurs, créateurs et initiés
Unity Awards
Célébration des créateurs Unity dans le monde entier
Pour tous les niveaux
Unity Learn
Maîtrisez les compétences Unity gratuitement
Formation professionnelle
Améliorez votre équipe avec des formateurs Unity
Vous découvrez Unity ?
Démarrer
Démarrez votre apprentissage
Parcours essentiels Unity
Vous découvrez Unity ? Commencez votre parcours
Guides pratiques
Conseils pratiques et meilleures pratiques
Formation
Pour les étudiants
Démarrez votre carrière
Pour les enseignants
Boostez votre enseignement
Licence d'enseignement subventionnée
Apportez la puissance de Unity à votre institution
Certifications
Prouvez votre maîtrise de Unity
Options d'assistance
Obtenir de l'aide
Vous aider à réussir avec Unity
Plans de succès
Atteignez vos objectifs plus rapidement avec un support expert
FAQ
Réponses aux questions courantes
Contactez-nous.
Connectez-vous avec notre équipe
Offres et tarifs
Langue
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Réseaux sociaux
Devise
Acheter
  • Produits
  • Unity Ads
  • Abonnement
  • Asset Store Unity
  • Revendeurs
Formation
  • Participants
  • Formateurs
  • Établissements
  • Certification
  • Formation
  • Programme de développement des compétences
Télécharger
  • Hub Unity
  • Télécharger des archives
  • Programme version Bêta
Unity Labs
  • Laboratoires
  • Publications
Ressources
  • Plateforme d'apprentissage
  • Communauté
  • Documentation
  • Unity QA
  • FAQ
  • État des services
  • Études de cas
  • Made with Unity
Unity
  • Notre entreprise
  • Newsletter
  • Blog
  • Événements
  • Carrières
  • Aide
  • Presse
  • Partenaires
  • Investisseurs
  • Affiliés
  • Sécurité
  • Impact sociétal
  • Inclusion et diversité
  • Contactez-nous.
Copyright © 2025 Unity Technologies
  • Mentions légales
  • Politique de confidentialité
  • Cookies
  • Ne vendez ou ne partagez pas mes informations personnelles

« Unity », ses logos et autres marques sont des marques commerciales ou des marques commerciales déposées de Unity Technologies ou de ses filiales aux États-Unis et dans d'autres pays (pour en savoir plus, cliquez ici). Les autres noms ou marques cités sont des marques commerciales de leurs propriétaires respectifs.

Hero background image

La programmation dans Unity pour les programmeurs expérimentés

Pour les programmeurs qui débutent avec Unity

Dans Unity, vous pouvez utiliser des scripts pour développer la quasi totalité du jeu ou tout autre contenu interactif en temps réel. Unity prend en charge la programmation de scripts en C#.Il existe deux façons principales de concevoir vos scripts en C# dans Unity : la conception orientée objets, qui est l'approche traditionnelle, et la conception orientée données, qui est la plus plébiscitée. Cette dernière approche est désormais possible dans Unity pour certaines utilisations spécifiques, comme notre nouvelle pile technologique orientée vers les données (DOTS) multithread à hautes performances.

  • Vous vous lancez dans Unity et programmez en C++ ?
  • Les GameObjects et les Composants dans Unity
  • Les Composants de scripts dans Unity
  • Les avantages de la conception orientée données avec la DOTS
  • Profitez pleinement des appareils modernes
  • Le débogage dans Unity
  • Le système backend de programmation dans Unity
  • Personnaliser Unity en étendant l'Éditeur

Vous vous lancez dans Unity et programmez en C++ ?

Unity prend en charge le langage C#, un standard partageant quelques points communs avec Java ou C++

Comparé à C++, C# est plus simple à apprendre. De plus, il s'agit d'un « langage géré », ce qui signifie qu'il se charge automatiquement de la mémoire à votre place : il affecte/désaffecte de la mémoire, il couvre les pertes de mémoire, etc.

De manière générale, le C# est préférable au C++ si vous voulez créer votre jeu, puis gérer par la suite les aspects plus avancés de la programmation.

En savoir plus
Voir la documentation de l'API Unity
Les GameObjects et les Composants dans Unity

Les GameObjects et les Composants dans Unity

L’ensemble du gameplay et de l’interactivité développés dans Unity repose sur trois éléments fondamentaux : Objets de jeu, composants et variables.

Tout objet d'un jeu est un GameObject : c'est le cas des personnages, des éclairages, des effets spéciaux, des accessoires, bref, de tout.

Composants
Les GameObjects ne peuvent rien accomplir seuls. Pour qu'il puisse devenir plus qu'un objet, il lui faut des propriétés, obtenues par l'ajout de Composants.

Les Composants définissent et contrôlent le comportement des GameObjects auxquels ils sont attribués. Un simple exemple est la création d'un éclairage, qui implique d'attribuer un Composant de lumière à un GameObject (voir ci-dessous). Ou d'ajouter un Composant Rigidbody à un objet pour qu'il tombe.

Les Composants ont de nombreuses propriétés modifiables, ou variables, qui peuvent être ajustées dans la fenêtre Inspector, dans l'Éditeur Unityet/ou via un script. Dans l'exemple ci-dessus, les propriétés de la lumière comprennent la portée, la couleur et l'intensité.

Les Composants de scripts dans Unity

Les Composants intégrés de Unity sont très polyvalents, mais vous aurez bientôt besoin d'aller plus loin pour mettre en place votre propre logique. Pour cela, vous devrez utiliser des scripts pour appliquer votre propre logique et des comportements propres à votre jeu, puis ajouter ces scripts à vos GameObjects en qualité de Composants. Chaque script se relie au fonctionnement interne de Unity en implémentant une classe dérivée de la classe intégrée, MonoBehaviour.

Vos Composants de script vous permettront de faire de nombreuses actions : déclencher des événements, créer des collisions, appliquer de la physique, réagir aux entrées utilisateur et bien, bien plus. Pour plus d'informations, consultez la page de l'API de programmation Unity.

Démo Megacity de Unity, conçue avec la DOTS

Les avantages de la conception orientée données avec la DOTS

Le traditionnel concept GameObject-Composant fonctionne toujours si bien, car il est simple à comprendre, à la fois pour les débutants et pour les plus expérimentés, sans compter qu'il est simple de créer des IU intuitives pour ce système. Ajoutez un Composant Rigidbody à un GameObject et celui-ci tombe. Mettez un Composant d'éclairage et il émet de la lumière. Et ainsi de suite.

Cependant, le système de Composants a été conçu dans un cadre orienté objets, qui entraîne des problèmes pour les développeurs en ce qui concerne la gestion du cache et de la mémoire avec du matériel en perpétuelle évolution.

Les Composants et les GameObjects sont des éléments en « C++ lourd ». Tous les GameObjects ont un nom. Leurs Composants sont composés d'un wrapper en C# qui enveloppe des composants en C++. Il est donc simple de les manipuler, mais ils réduisent les performances, car ils sont souvent stockés de façon désorganisée. L'objet en C# peut être stocké n'importe où dans la mémoire. De même pour l'objet en C++. Ils ne sont pas rassemblés dans une mémoire contiguë. Dès qu'un objet est chargé pour être traité par le processeur, chaque élément doit être récupéré depuis différents endroits. L'opération peut être lente et inefficace et nécessite donc de nombreux contournements pour être optimisée.

Pour résoudre ces problèmes de performances, nous avons recréé le cœur de Unity avec la pile technologique orientée vers les données multithread à hautes performances, ou DOTS (actuellement disponible en aperçu).

La DOTS permet à votre jeu d'utiliser complètement et efficacement les processeurs multicœurs les plus récents. Elle est composée :

  • Du système de tâches C# pour faire fonctionner efficacement le code multithreadé.
  • Du système de composants d'entité (ECS) pour rédiger du code haute-performance par défaut.
  • Du Compilateur Burst, pour produire un code natif hautement optimisé.

Dans la DOTS, l'ECS est le nouveau système de Composants ; ce que vous faisiez avec un GameObject dans l'approche traditionnelle orientée objets, vous le faites avec une entité dans ce nouveau système. Les Composants n'ont pas changé de nom. La différence essentielle réside dans l'organisation des données. Vous pouvez en savoir plus à ce sujet dans l’article de blog «Sur le DOTS : Système de composants d'entité (ECS)

Démo Megacity de Unity, conçue avec la DOTS

Profitez pleinement des appareils modernes

Utiliser l'ECS est non seulement une meilleure approche de la programmation pour des raisons de conception, mais cela vous place également dans la position idéale pour tirer parti du système de tâches en C# et du Compilateur Burst de Unity, pour vous permettre de tirer pleinement profit du matériel moderne.

Les systèmes multithread de la DOTS vous permettent de créer des jeux qui fonctionnent sur une vaste gamme d'appareils et de concevoir des mondes plus riches en éléments avec des simulations plus complexes. Le code performant produit contribue ensuite à un contrôle optimal de la température et de la durée de vie de la batterie sur les appareils des joueurs. En passant d'une conception orientée objets à une conception orientée données, vous pourrez facilement réutiliser votre code, tandis qu'il sera plus simple pour les autres de le comprendre et de l'utiliser comme base.

Étant donné qu'une partie de la technologie de la DOTS n'est encore disponible qu'en aperçu, nous conseillons aux développeurs de ne l'utiliser qu'afin de résoudre un problème de performances spécifique, et non pour bâtir tout leur projet. Rendez-vous dans la section « Plus de ressources » en bas de cette page pour trouver des liens vers des ressources sur la DOTS.

L'outil Unity Profiler pour l'optimisation des performances

Le débogage dans Unity

Le processus d'ajustement des paramètres et de débogage est très efficace dans Unity, car l'ensemble des variables du gameplay sont affichées quand les développeurs jouent. Ils peuvent donc les modifier sur-le-champ, sans écrire une seule ligne de code. Vous pouvez mettre le jeu en pause à tout moment ou analyser chaque élément de code individuellement.

Voici quelques précieuses ressources pour en savoir plus sur l'optimisation de Unity :

Le Profiler

L'outil Profiler Analyzer

Le profiler de mémoire

Comprendre l'optimisation dans Unity

L'optimisation des performances graphiques

Les bonnes pratiques générales (incluent des conseils approfondis sur l'optimisation du système d'IU de Unity)

Le système backend de programmation dans Unity

.FILET: .NET : Unity s'est servi de l'implémentation de l'exécution standard Mono pour proposer une programmation qui supporte C# en natif. Unity est actuellement fourni avec Visual Studio pour Mac, au lieu de MonoDevelop-Unity sur macOS. Sous Windows, Unity est équipé de Visual Studio.

L'exécution de la programmation .NET 4.6 dans Unity supporte une grande partie des nouvelles fonctionnalités incroyables de C#, ainsi que les outils de débogage disponibles avec C# 6.0 et plus. Elle fournit également une fascinante expérience avec les IDE en C#, pour accompagner ces nouvelles fonctionnalités en C#.

IL2CPP : IL2CPP : le système backend de programmation développé par Unity, que vous pouvez utiliser comme alternative à Mono pour la conception de projets sur certaines plateformes. Lorsque vous choisissez de créer un projet IL2CPP, Unity convertit le code IL à partir des scripts et l'assemble sous forme de code C++, avant de créer un fichier binaire natif (.exe, apk, ou .xap, par exemple) pour la plateforme de votre choix.

Remarque : IL2CPP est le seul système de programmation backend disponible pour créer pour iOS et WebGL.

Personnaliser Unity en étendant l'Éditeur

En tant que programmeur, vous bénéficiez d'une grande flexibilité dans Unity, car vous pouvez étendre l'Éditeur avec vos propres fenêtres personnalisées, qui se comporteront exactement comme la fenêtre Inspector, Scene ou toute autre fenêtre standard. Ajoutez vos propres outils à Unity pour répondre aux besoins uniques de votre équipe et de votre flux de production, et donc booster votre efficacité.

Plus de ressources

Passer votre jeu à la DOTS

Passer votre jeu à la DOTS

Voir la vidéo
Démo Megacity conçue avec la DOTS

Documentation sur la DOTS

En savoir plus
Outils et services inclus sur la plateforme de développement Unity

Aperçu de la plateforme de 3D temps réel de Unity

En savoir plus