Présentation d'Unity 2019.1

La première version TECH Stream de l'année – Unity 2019.1 – est désormais disponible. Elle comprend de nombreuses nouvelles fonctionnalités prêtes pour la production, telles que le compilateur Burst, le Lightweight Render Pipeline (LWRP) et Shader Graph. De plus, il y a de nombreuses innovations pour les animateurs, les développeurs mobiles et les experts en graphismes, ainsi que plusieurs mises à jour qui rationalisent les flux de travail des projets et simplifient les tâches de l'éditeur.
Dans les prochaines semaines, nous publierons également la version de soutien à long terme (LTS) 2018.4 de Unity pour ceux d'entre vous qui ont des projets sur le point d'être publiés et qui souhaitent donc verrouiller leur production sur une base solide pour une période prolongée.
Unity 2019.1 regorge de plus de 283 nouvelles fonctionnalités et améliorations. Au début de ce post, vous trouverez un résumé, suivi d'une présentation détaillée, des principales nouvelles fonctionnalités. Si vous êtes impatient d'installer et de commencer à utiliser Unity 2019.1, envisagez de lancer le téléchargement (cliquez sur le bouton ci-dessous ou accédez-y via Unity Hub) pendant que vous lisez ce post.
Dans Unity 2018.1, nous avons introduit le Scriptable Render Pipeline (SRP) et Shader Graph en aperçu. Avec Unity 2019.1, nous avons supprimé l'étiquette Preview et nous recommandons LWRP et Shader Graph pour la production. Unity 2019.1 apporte également aux artistes des fonctionnalités supplémentaires et une prise en charge de la plateforme pour le GPU Lightmapper (Preview) ainsi qu'une longue liste d'améliorations pour le High-Definition Render Pipeline (HDRP, Preview) et le Post-Processing Stack (Preview).
L'Hérétique, un nouveau court métrage de l'équipe primée Demo d'Unity, a été présenté en première à la GDC. La démo est construite sur Unity 2019.1 et tire parti de Unity’s Scriptable Render Pipeline (SRP) architecture. En utilisant la dernière version du High-Definition Render Pipeline (HDRP) d'Unity avec son Post-Processing Stack intégré, l'équipe a obtenu un rendu cinématographique qui imite de près le fonctionnement des caméras physiques, et qui est rendu en temps réel.
Nous continuons à nous concentrer sur les outils pour les artistes. Dans cette version, nous introduisons le montage d'animation en temps réel, qui vous donne un meilleur contrôle artistique de vos animations. Nous avons également apporté des améliorations à nos outils audio, vidéo, DCC et de construction de mondes. Enfin, Timeline est désormais un package validé, et la nouvelle fonctionnalité Timeline Signals offre un moyen simple pour Timeline d'interagir avec les objets dans la scène.
Cette version apporte un certain nombre d'améliorations pour les mobiles, notamment la possibilité de corriger le package de l'application au lieu de le reconstruire. Cela vous permet d'effectuer des itérations plus rapides pendant le développement. Nous introduisons également la performance adaptative mobile (aperçu), qui vous fournit des données sur les tendances thermiques, y compris des informations indiquant si votre jeu est lié au CPU ou au GPU à l'exécution, ainsi que des améliorations du débogage et du flux de travail pour le développement de jeux mobiles en général. Enfin, l'éditeur Unity pour Linux est désormais en version préliminaire.
Nous continuons à progresser dans la création d'un multithreading haute performance Pile technologique orientée données (DOTS) avec notre compilateur Burst sortant de la version Preview dans 2019.1. Vous trouverez également une gamme d'autres outils liés à DOTS qui ont permis de créer le massif Démo de Megacity, qui est désormais disponible pour téléchargez ici.
En seulement deux mois, notre équipe DOTS et deux artistes de notre groupe FPS Sample ont produit ce paysage urbain futuriste.
Nous présentons également une solution physique complète pour les projets basés sur DOTS dans Unity, développée en collaboration avec Havok. Nous avons apporté d'autres améliorations, notamment des liens d'empilement cliquables qui vous renvoient à la ligne de code source pour les appels de fonction répertoriés dans l'empilement, un outil de recherche basé sur du texte pour filtrer les entrées de la console, et nous introduisons le nouveau collecteur de déchets incrémental comme alternative expérimentale au collecteur de déchets existant.
Nous adorons les excellentes performances en temps d'exécution, mais les hautes performances sont tout aussi importantes lorsque vous travaillez dans l'éditeur, nous continuons donc à nous concentrer sur l'amélioration du flux de travail. Avec le gestionnaire de raccourcis, nous introduisons une interface visuelle interactive et un ensemble d'API pour vous permettre de gérer plus facilement les touches de raccourci de l'éditeur, de les affecter à différents contextes et de visualiser les liaisons existantes dans une seule interface. Avec les nouveaux contrôles SceneVis, vous pouvez désormais masquer et afficher rapidement les objets dans la vue de la scène, sans modifier la visibilité de l'objet dans le jeu. Vous pouvez désormais également utiliser des éléments d'interface utilisateur pour étendre l'éditeur.
Les versions d'Unity comprennent un flux TECH et un flux de support à long terme (LTS). En 2019, nous aurons trois versions du flux TECH : 2019.1, 2019.2 (été) et 2019.3 (fin de l'automne). La version 2019.1 marque le début du nouveau flux TECH et offre un accès aux dernières fonctionnalités.
La version LTS ne comporte aucune nouvelle fonctionnalité, modification d'API ou amélioration. Il s'agit simplement d'une suite du flux TECH 2018, avec des mises à jour et des corrections. C'est pourquoi nous l'appelons 2018.4, tandis que le flux TECH de cette année commence avec 2019.1. Le flux LTS est destiné aux utilisateurs qui souhaitent continuer à développer et à publier leurs jeux/contenus et rester sur une version stable pendant une période prolongée. Il prend en charge les plantages, les régressions et les problèmes qui affectent la communauté dans son ensemble, tels que les problèmes des clients du support d'entreprise, les problèmes des SDK/XDK de console, ou tout changement majeur qui empêcherait un grand nombre d'utilisateurs de publier leur jeu. Chaque flux LTS est pris en charge pendant une période de deux ans.
Le 2018-LTS est actuellement en cours de tests et devrait être publié dans les prochaines semaines suivant la version 2019.1.0.
En savoir plus sur le flux de version qui vous convient le mieux dans notre article de blog.
Notifications mobiles (paquet de prévisualisation}
Performance adaptative (Samsung)
SDK et NDK Android installés avec Unity Hub
Intégration d'Android Logcat (aperçu)
Itérations plus rapides avec le correctif de compilation uniquement pour les scripts sur Android
Exemples d'AR pour appareils portables
Améliorations de l'exécution asynchrone
Chaînage et concaténation des tampons de commandes sur PlayStation 4
Support de la plateforme Windows universelle ARM64
Dialogue de résolution d'affichage (également appelé sélecteur d'écran)
Pile de technologies orientées données (DOTS)
Compilateur Burst sorti de la version préliminaire
Nouveau moteur de rendu/mixage audio (expérimental)
Système de physique basé sur DOTS
Améliorations de la physique multi-scène
Analyseur de profilage (aperçu)
Collecte de la corbeille incrémentale (expérimental)
Réinitialisation des ScriptableObjects
Modification des ressources de préfabrication dans l'inspecteur
Améliorations de la console de l'éditeur
Recherche rapide (package de prévisualisation)
Montage d'animation (package de prévisualisation)
Unity Hub 2.0 (bêta) disponible dès maintenant
Mises à jour du gestionnaire de packages
Éléments d'interface utilisateur
Prise en charge du système d'emplois C#
Pipeline d'éclairage léger (LWRP)
Pipeline d'éclairage haute définition (HDRP - Aperçu)
Amélioration de la prise en charge des plateformes
Double largeur VR désormais disponible
Amélioration de l'interface utilisateur et prise en charge de l'appareil photo
Améliorations du mode Débogage
Assistant du pipeline d'images
Nouveau shader et prise en charge de Shader Graph
Amélioration de la qualité et du contrôle de l'éclairage
Améliorations du système de réflexion
Prise en charge de la réflexion planaire en temps réel
Intégration native de Post Processing dans HDRP
Améliorations de Visual Effect Graph (Aperçu)
Prise en charge native du plugin de rendu pour Vulkan
Ajout de la prise en charge de l'Optix AI Denoiser
Échantillonnage d'importance multiple pour l'environnement (MIS Environment)
Autres améliorations de l'éclairage
Compilation de shaders asynchrone dans l'éditeur
Poids de la peau à forte influence
Améliorations de l'importateur SketchUp
Améliorations de l'audio de la Timeline
Prise en charge de H.265 pour la vidéo
Prise en charge complète de SRP pour le enregistreur/lecteur vidéo
Outils de visibilité de la scène
Améliorations de la forme des sprites
Améliorations des capacités de construction du monde 2D
Le package de prévisualisation des notifications mobiles vous aide à mettre en œuvre des mécanismes de rétention et un gameplay basé sur un temporisateur en ajoutant la prise en charge de la planification de notifications locales répétables ou ponctuelles sur iOS (à partir d'iOS 10) et Android (4.1 et versions ultérieures). Il est disponible sous forme de package, et vous pouvez trouver plus d'informations ici.
La version de prévisualisation de la performance adaptative est désormais disponible pour Unity 2019.1.
L'un des plus grands défis pour les développeurs de jeux mobiles est de créer des jeux à la fois beaux et fluides, sans surcharger le matériel, ce qui entraîne un étranglement (des performances médiocres et incohérentes) et une réduction de la durée de vie de la batterie. Prolonger la durée de vie de la batterie/réduire les problèmes thermiques peut permettre aux joueurs de jouer plus longtemps, ce qui améliore la rétention des utilisateurs et, en fin de compte, rend les jeux plus réussis. Contrairement à un PC ou à une console, l'utilisation du matériel mobile nécessite un équilibre délicat : utiliser pleinement les capacités d'un appareil compromet rapidement les performances.
Pour résoudre ces problèmes, nous avons collaboré avec Samsung – en nous appuyant sur leur GameSDK – pour créer la performance adaptative, qui est à votre disposition pour optimiser les projets pour le Galaxy S10 et le Galaxy Fold.
En savoir plus sur les performances adaptatives ici.
Le Hub vous permet désormais d'installer tous les composants requis pour Android dans le cadre de l'option de prise en charge de la compilation Android, afin que vous soyez sûr d'obtenir les dépendances correctes et de ne pas avoir à installer quoi que ce soit d'autre. Si vous êtes un utilisateur avancé d'Android, vous pouvez toujours installer et configurer manuellement les composants et utiliser Android Studio. Notez également qu'à partir de 2018.3, la prise en charge de la compilation Android est livrée avec son propre runtime Java basé sur OpenJDK.

Android Logcat Package est un utilitaire compatible avec Unity 2019.1 pour afficher les messages de journal provenant des appareils Android dans l'éditeur Unity, ce qui facilite le débogage en contrôlant et en filtrant les messages directement dans Unity.

Pour effectuer des itérations plus rapides pendant le développement, vous pouvez utiliser le Option de compilation uniquement pour les scripts dans l'éditeur. Cela vous permet de sauter de nombreuses étapes du processus de création et de recompiler uniquement les scripts, puis de créer le package final et de le déployer lorsque vous sélectionnez Build And Run.
Nous avons étendu cette fonctionnalité pour vous permettre de corriger le package de l'application (APK, uniquement Android) sur les appareils cibles au lieu de le reconstruire et de le redistribuer. Ainsi, lorsque vous itérez sur votre code C#, seules les bibliothèques recompilées sont envoyées à l'appareil. Notez qu'une création complète du projet doit être disponible avant que Unity puisse exécuter une création uniquement de scripts.

AR Foundation permet aux développeurs Unity de se lancer rapidement dans la création de projets de réalité augmentée. Vous choisissez les fonctionnalités à inclure dans vos expériences tout en ne construisant qu'une seule fois pour déployer sur les appareils ARKit et ARCore. Disponible en aperçu dans le Package Manager, il encapsule les API de bas niveau d'ARKit et d'ARCore dans un cadre cohérent qui inclut également des fonctionnalités supplémentaires pour aider les développeurs à surmonter les plus grands défis du développement de la RA.
Cette fonctionnalité vous permet de transmettre des données entre un appareil et l'éditeur afin que vous n'ayez pas à créer pour l'appareil chaque fois que vous souhaitez tester une fonctionnalité. Il comprend l'enregistrement et la lecture de session, qui vous permettent d'enregistrer des sessions sur l'appareil et de les lire dans l'éditeur pour créer des tests robustes de votre application ou itérer sur les visualisations.
Disponible sur GitHub, cette collection de scènes, de préfabriqués et de composants d'assistance est construite sur AR Foundation pour démontrer comment vous pouvez visualiser un plan, placer des objets, et plus encore. Il comprend également un exemple d'utilisation de LWRP avec AR Foundation. Il contient tous les éléments fondamentaux dont vous avez besoin pour commencer à construire afin que vous puissiez mettre rapidement en route vos projets de réalité augmentée.
Prise en charge de LWRP pour la RA et le RV
La prise en charge d'AR Foundation pour LWRP est disponible sous forme de package de prévisualisation, vous permettant d'utiliser LWRP pour des expériences de réalité augmentée. Avec cette version et dans le package LWRP vérifié le plus récent, vous pouvez désormais tirer parti du Shader Graph, ainsi que des optimisations de performance de LWRP, pour créer des expériences de réalité virtuelle pour toutes les plateformes de réalité virtuelle prises en charge officiellement par Unity. En savoir plus sur nos mises à jour de LWRP dans la section Graphiques.
Mode de rendu stéréo de secours
Lorsque l'instançage stéréo n'est pas pris en charge sur l'appareil cible, le rendu stéréo bascule automatiquement sur un rendu en un seul passage (double largeur). Vous pouvez désormais utiliser en toute sécurité le mode de rendu Stereo Instancing plus performant sans avoir à vous soucier du fait que l'API graphique d'un appareil spécifique ne le prend pas en charge. Avec les versions précédentes, le mode de rendu stéréo repassait au rendu en plusieurs étapes.
Prise en charge du post-traitement pour Stereo Instancing
Inclus dans cette version et dans le dernier package Post-Processing, tous les effets de post-traitement utilisables pour la réalité virtuelle fonctionnent désormais avec le mode de rendu Stereo Instancing.
Prise en charge intégrée de Magic Leap (Lumin OS)
La prise en charge du développement pour Magic Leap One est désormais incluse dans cette version. Cela signifie que, plutôt que d'avoir à utiliser une version spéciale de Technical Preview d'Unity pour le développement Magic Leap, vous pouvez utiliser cette version d'Unity.
Avec cette version, WebAssembly est le format de sortie par défaut pour Unity WebGL. De plus, asm.js a été supprimé de l'interface utilisateur de l'éditeur, qui était obsolète depuis 2018.3. Pour refléter ces changements, l'option de compilation Use PreBuilt Engine spécifique à asm.js n'est plus disponible. Les paramètres du lecteur WebGL ont également été mis à jour : Le cible du lien et la taille de la mémoire sont définies sur WebGLLinkerTarget.Wasm et 32 Mo respectivement, et elles ont été supprimées de l'interface utilisateur de l'éditeur. Cependant, il est toujours possible de modifier ces paramètres via le script de l'éditeur.
Dans cette version, nous introduisons également le multithreading WebAssembly expérimental, qui peut être activé via PlayerSettings.WebGL.threadsSupport. Voir cela message du forum pour plus d'informations.
L'éditeur Unity pour Linux est désormais en version préliminaire. Vous pouvez obtenir les dernières versions à partir de Unity Hub. Il reste encore quelques imperfections, mais vous continuerez à voir des améliorations au fil du temps. Le fait d'amener l'éditeur Unity pour Linux de l'expérimental au préliminaire signifie que nous sommes désormais sur la voie d'une version entièrement prise en charge d'ici la fin de l'année. Nous accordons la priorité au support des configurations suivantes :
- Ubuntu 16.04, 18.04
- CentOS 7
- Architecture x86-64
- Environnement de bureau Gnome fonctionnant sur le système de fenêtres X11
- Pilote graphique propriétaire officiel Nvidia et pilote graphique AMD Mesa
- Formes de facteur de bureau, fonctionnant sur un appareil/matériel sans émulation ni couche de compatibilité
Nous vous recommandons d'utiliser l'une des configurations prises en charge ci-dessus pour la meilleure expérience de développement.
Nous avons introduit quelques améliorations de notre support de l'exécution asynchrone pour les consoles. Nous autorisons désormais un plus large éventail de fonctions de script de tampon de commande valides pour les tampons de commande ciblant les files d'attente d'exécution asynchrone (par exemple, les fonctions qui définissent des données de shader globales ou gèrent des cibles de rendu temporaires). Nous avons également amélioré la gestion des erreurs pour les tampons de commande ciblant les files d’attente de calcul asynchrones, en fournissant un retour immédiat si des fonctions de script de tampon de commande invalides sont utilisées ; cela facilite le débogage pour vous.
Avec la chaîne et la concaténation de tampons de commande, nous optimisons la manière dont le travail est soumis au GPU, en particulier pour les tâches graphiques natives où la méthode précédente entraînait une légère surcharge du GPU.
Nous avons ajouté la prise en charge des appareils ARM64 UWP. Choisissez simplement ARM64 pour votre architecture cible et déployez-le sur les ordinateurs portables ARM64 basés sur Windows.
Sur la base des données des utilisateurs et des études de marché, la boîte de dialogue Résolution d’affichage est « désactivée » par défaut à partir de cette version. Vous pouvez toujours l’activer via le menu déroulant de la boîte de dialogue Résolution d’affichage dans les paramètres de votre projet. Vous le trouverez dans Player, Resolution and Presentation, dans le groupe Standalone Player Options. Plus d’informations sur l’évolution de la boîte de dialogue Résolution d’affichage seront partagées prochainement.
En 2018.1, nous avons introduit le Compilateur Burst, un nouveau compilateur basé sur LLVM qui prend les tâches C# et produit un code machine hautement optimisé pour votre plateforme cible. Avec cette version, il n’est plus en version préliminaire et est disponible pour la production.
Avec le compilateur Burst, vous n’avez pas besoin de faire le travail difficile de la programmation de bas niveau pour obtenir les gains de performance qui accompagnent les langages d’assemblage réglés manuellement. Vous pouvez continuer à écrire votre code en C#.

DSPGraph est le nouveau moteur de rendu/mixage audio, construit sur le système d’emplois C# d’Unity. Il est entièrement extensible en C# et peut être utilisé avec le compilateur Burst. Dans le projet Megacity, il alimente 100 000 émetteurs de sons 3D/spatiaux uniques, y compris des enseignes néon, des ventilateurs de climatisation et des voitures, produisant un paysage sonore riche et réaliste.
Notez que DSPGraph est une API expérimentale interne que nous prévoyons de peaufiner et de publier sous forme de package de prévisualisation plus tard cette année. Cela constituera la base du futur système audio Data-Oriented Technology Stack (entre autres). Rejoignez-nous dans le nouveau Forum audio de la pile technologique orientée données si vous avez exploré DSPGraph dans le contexte de notre projet Megacity. C’est l’endroit parfait pour poser des questions ou partager vos besoins audio avec nous.
Les sous-scènes font partie de la boîte à outils créée pour le Megacity projet. Cette fonctionnalité comble le fossé entre les GameObjects et les DOTS en utilisant les scènes de GameObjects comme mécanisme de regroupement pour la conversion par lots des GameObjects en entités.
Les sous-scènes sont particulièrement utiles lorsque vous travaillez sur des projets de grande envergure comme Megacity, où des millions de GameObjects sont convertis en entités. Comme vous n'avez à travailler que sur un nombre limité de Sous-scènes à la fois, votre projet est beaucoup plus gérable et performant dans l'éditeur. Nous appelons cela un flux de travail « hybride ».

En plus d'améliorer votre flux de travail dans l'éditeur, vous pouvez également utiliser les Sous-scènes converties comme unités de diffusion. Elles peuvent être chargées et déchargées pendant le jeu et sont également chargées de manière asynchrone dans l'éditeur.
Vous pouvez convertir un groupe de GameObjects en entités en ajoutant le composant Sous-scène à un GameObject racine. Lorsque vous souhaitez modifier les GameObjects dans une Sous-scène, il suffit de l'ouvrir et d'apporter vos modifications. Le groupe de GameObjects est automatiquement converti en entités une fois que vous avez terminé de modifier et que vous fermez la Sous-scène GameObject.
Les modifications apportées aux GameObjects dans une sous-scène n’affectent pas la scène principale, ce qui facilite la collaboration simultanée de plusieurs membres de l’équipe sur des sous-scènes distinctes.
La fonctionnalité des sous-scènes fait partie du package Entities, que vous pouvez trouver dans le Package Manager. La fonctionnalité est actuellement expérimentale et non documentée, alors utilisez-la avec prudence.
En seulement deux mois, notre équipe ECS et deux artistes de notre groupe FPS Sample ont produit Megacity, un paysage urbain futuriste animé de véhicules volants, de centaines de milliers d'objets de jeu très détaillés et de sources audio uniques. Ils ont tiré parti de Pile technologique orientée données (DOTS), le nom de tous les projets sous la bannière Performance by Default, y compris le système de composants d'entités (ECS), le système d'emplois C# et le compilateur Burst.
Megacity montre comment DOTS peut être utilisé aujourd'hui pour des productions complexes, à partir d'Unity 2019.1, et le nouveaux flux de travail de préfabrication, qui ont été introduits dans Unity 2018.3. La démo est maintenant disponible au téléchargement afin que vous puissiez commencer à explorer les possibilités que DOTS offre pour vos futurs projets.
Si vous souhaitez savoir comment quelques développeurs de Nordeus ont réalisé la démonstration Megacity pour montrer comment utiliser DOTS et LWRP pour facilement adapter un projet PC haute résolution pour les plateformes mobiles. Vous pouvez télécharger le projet complet ici.

À la GDC 2019, nous avons annoncé notre partenariat avec Havok pour créer une solution complète pour les projets basés sur DOTS dans Unity. Si votre projet utilise le nouveau framework DOTS, Unity Physics (aperçu) est votre système de physique par défaut. Ce système est écrit en utilisant le framework DOTS C# et tire parti du compilateur Burst et du système d'emplois C# pour offrir des simulations haute performance. En utilisant une conception sans état et sans cache, le résolveur est beaucoup plus simple, ce qui nous permet de créer un système de physique plus adapté au réseau, qui peut être facilement étendu, ajusté et modifié pour répondre à vos besoins de production. Unity Physics est disponible pour Unity 2019.1 via le Package Manager.
En juin 2019, nous proposerons également le package Havok Physics comme intégration pour les projets basés sur DOTS avec des besoins de simulation physique très complexes. Il utilise le même framework C# DOTS que Unity Physics, mais est soutenu par le moteur Havok Physics propriétaire, à code source fermé, écrit en C++ natif. Nous avons construit à la fois Unity Physics et Havok Physics pour utiliser le même protocole de données, ce qui signifie que vous pouvez créer votre contenu et votre code de jeu une seule fois et que ces données sont partagées entre les deux systèmes. Cela vous permettra d'alterner sans problème entre les deux solutions de physique basées sur DOTS ou même de les utiliser en même temps dans votre projet.

Si vous utilisez actuellement le cadre GameObject et MonoBehaviour pour vos projets, alors PhysX sera votre système de physique par défaut. Cela ne changera pas, et nous continuerons à prendre en charge et à évaluer les mises à jour de PhysX dans Unity pour les projets basés sur GameObject/MonoBehaviour.
Nous avons ajouté un certain nombre d’améliorations à notre solution PhysX pour les projets non DOTS. Par exemple, le tissu peut désormais appliquer sa propre gravité, indépendante de la gravité de la scène, pour des ajustements plus faciles. Nous avons également mis à jour les couleurs de la vue de débogage physique pour une meilleure expérience et une meilleure cohérence avec les couleurs des gizmos. Il existe une nouvelle section dans l’inspecteur du composant Rigidbody qui affiche des informations internes utiles pour le débogage, telles que les vitesses linéaires et angulaires, le centre de masse et le tenseur d’inertie.

La nouvelle fonction Physics.GetIgnoreCollision vous permet de vérifier facilement si les collecteurs donnés ont les collisions désactivées ou non. La vitesse angulaire maximale par défaut des corps a été augmentée de 7 à 50. Cela améliorera les simulations avec des objets en mouvement rapide, ainsi que la qualité de résolution des collisions ragdoll dans des configurations difficiles. Il permettra au solveur de faire pivoter les corps plus rapidement et de satisfaire ainsi les contraintes en moins d'itérations.
Jusqu'à présent, nous ne souhaitions que le raycast dans le contexte de plusieurs scènes. Avec cette version, toutes les requêtes de scène sont désormais disponibles dans le contexte de plusieurs scènes. La vue de débogage Physique prend également en charge les scènes multi-physique, ce qui vous permet de voir à quelle scène physique un objet sélectionné appartient. Vous pouvez également afficher les objets appartenant à une scène physique donnée.
Nous avons amélioré les performances en temps d'exécution lorsque le débogage des scripts est activé. De plus, les performances du code généré par IL2CPP ont été améliorées de 20 %.
Nous avons amélioré l'intégration du débogueur d'Unity avec les débogueurs externes. La version de développement d'Unity génère désormais des marqueurs pour Android Systrace, vous permettant de visualiser les sections nommées événements Unity sur l'outil d'analyse système Android Systrace. Vous pouvez ensuite analyser votre jeu dans le contexte de l'activité du système d'exploitation, comme la planification, l'état du processeur et les autres processus en cours d'exécution dans le système. La prise en charge native de Systrace, auparavant un module complémentaire, fait désormais partie d'Unity 2019.1. Tous les threads gérés sont désormais visibles dans les back-ends de script Mono et IL2CPP, et tous les threads Unity natifs sont exposés. L'activité sur les threads est affichée dans la vue Timeline de la fenêtre Profiler, et nous enregistrons également automatiquement tous les threads avec le Profiler. De plus, nous avons augmenté la valeur par défaut de la mémoire autorisée pour le Profiler à 4 Mo dans les Players et à 64 Mo dans l'éditeur. Cela vous permet d'accumuler plus de données avant de les diffuser sur le disque ou le réseau, et réduit les frais généraux. Vous pouvez également le contrôler avec les arguments de ligne de commande « -profiler-maxusedmemory ». Enfin, nous avons ajouté l'API UnityEditor.Profiling.HierarchyFrameDataView qui vous permet de parcourir rapidement les données de profilage CPU pour tous les threads et d'obtenir toutes les informations disponibles dans la vue Hiérarchie de la fenêtre Profiler, ainsi que tous les métadonnées pertinentes (par exemple, les piles d'appels GC.Alloc).
L'analyseur de profil est un nouveau package de profilage disponible en aperçu. Il complète l'analyse d'un seul cadre du Unity Profiler en ajoutant la possibilité d'analyser plusieurs cadres à la fois. Cela est utile lorsque vous devez avoir une vue plus large de vos performances, par exemple lors de la mise à niveau des versions d'Unity, du test des avantages de l'optimisation ou du suivi des performances dans le cadre de votre cycle de développement. Il analyse les données de cadre et de marqueur du CPU qui sont extraites de l'ensemble actif de cadres actuellement chargés dans le Unity Profiler ou chargées à partir d'une session du Profile Analyzer enregistrée précédemment. Les données de cadre et de marqueur du CPU analysées sont résumées et mises en graphique à l'aide d'histogrammes, de boîtes et de plots en barbes, qui complètent une liste triable d'activité pour chaque marqueur, y compris le minimum, le maximum, la moyenne, le nombre d'instances, l'étendue et le cadre dans lequel le marqueur est apparu pour la première fois.


Dans cette version, nous introduisons le collecteur de mémoire incrémental comme alternative expérimentale au collecteur de mémoire existant (GC). Le collecteur de mémoire incrémental est capable de diviser son travail en plusieurs tranches. Cela signifie que, au lieu d'une seule interruption prolongée de votre programme, le collecteur de mémoire incrémental effectuera plusieurs interruptions beaucoup plus courtes. Bien que cela n'accélère pas l'ensemble du GC, cela peut réduire considérablement le problème des pics de GC qui perturbent la fluidité des animations dans votre projet, car cela répartit la charge de travail sur plusieurs cadres. Pour en savoir plus, lisez notre article de blog ici.
Les objets ScriptableObject sont désormais rechargés lors de l'importation des ressources. Cela signifie que si un ScriptableObject est chargé avant une importation et que le fichier sous-jacent sur disque a été modifié, alors le ScriptableObject sera rechargé et aura les nouvelles valeurs du fichier sur disque après l'importation. Avant ce changement, le ScriptableObject aurait été déchargé après l'importation, ce qui aurait entraîné l'égalité de null pour le ScriptableObject lors de la comparaison à l'aide de l'opérateur d'égalité (==). Ce rechargement ne se produit que pour les ScriptableObjects et pour les Prefabs imbriqués qui sont déjà chargés avant une (ré)importation. Pour plus d'informations sur le rechargement des ScriptableObjects, vous pouvez consulter l'exemple de code disponible ici.
Avec cette version, il est désormais possible pour les développeurs de packages de dépendre conditionnellement du code C# dans les packages en utilisant la nouvelle fonctionnalité Définitions de version dans l'inspecteur du fichier de définition d'assembly.
Les références manquantes au fichier de définition d'assembly (asmdef) sont désormais ignorées au lieu de produire une erreur de référence manquante. Cela vous permet d'ajouter des références à des assemblies asmdef qui sont optionnels.
En utilisant les nouvelles fonctionnalités de Définitions de version dans l'inspecteur de définition d'assembly, vous pouvez définir quelles directives de préprocesseur C# sont définies en fonction des plages de versions pour les packages et les modules actuellement résolus dans le projet. Cela vous permet de #if votre code C# pour les fonctionnalités dans les packages optionnels.

Avec cette version, nous réintroduisons la possibilité d'éditer les ressources Prefab dans l'inspecteur une fois que vous avez sélectionné le Prefab dans la vue Projet. Cela signifie que vous n'aurez pas à ouvrir un Prefab en mode Prefab ou à le faire glisser dans la scène pour le modifier.
Le gestionnaire de raccourcis vous offre une interface visuelle interactive et un ensemble d'API pour faciliter la gestion des touches de raccourci de l'éditeur, leur affectation à différents contextes et la visualisation des liaisons existantes. Pour résoudre les conflits de liaison, vous pouvez désormais visualiser si plusieurs commandes utilisent la même liaison et vous permettre de les remapper en conséquence.
Vous pouvez voir quels raccourcis sont disponibles en maintenant enfoncé Maj + Contrôle. Une liste de toutes les touches réservées et non réservées apparaît. Vous pouvez également stocker des touches de raccourci dans des profils personnalisés afin qu'elles puissent être enregistrées, partagées et migrées vers d'autres postes de travail. Un nouveau système de contexte vous permet d'enregistrer des commandes dans un contexte spécifique pour les fenêtres de l'éditeur. Cela permet aux développeurs d'outils de définir leurs propres actions et de les rendre disponibles sous forme de raccourci. Ces raccourcis peuvent être définis comme sensibles au contexte, de sorte qu'ils ne soient disponibles que dans le bon contexte. Enfin, vous pouvez visualiser et résoudre les éventuels conflits entre les raccourcis. Par exemple, si plusieurs packages utilisent le même raccourci, l'éditeur déclenche une notification et propose des options pour gérer le conflit.
Nous avons mis à jour la console de l'éditeur avec des liens d'empilement cliquables qui vous renvoient à la ligne de code source pour les appels de fonction répertoriés dans l'empilement, et un outil de recherche pour filtrer les entrées de la console.
Le nouvel outil de recherche rapide facilite la recherche dans plusieurs fournisseurs de recherche (par exemple, Actifs, Hiérarchie, Paramètres) dans l'éditeur. Il est également extensible pour les développeurs qui souhaitent inclure leurs propres fournisseurs de recherche. La fonctionnalité est actuellement en version préliminaire. Pour en savoir plus, voir les forums et n'oubliez pas de partager vos commentaires si vous l'essayez.

Le nouveau package Animation Rigging vous offre un meilleur contrôle artistique de vos animations. Vous pouvez utiliser un ensemble de contraintes d'animation prédéfinies pour construire manuellement une hiérarchie de contrôle pour un personnage générique. Au moment de l'exécution, les contraintes de la structure sont converties en une liste d'emplois d'animation qui sont ajoutées en tant qu'opérations de post-traitement au graphe de jeu jouable du contrôleur. Le nouveau package Animation Rigging est basé sur des tâches C# d'animation, qui vous permettent de configurer des structures multi-thread sécurisées capables de contrôler de manière procédurale les déformations, de simuler des comportements pseudo-physiques ou des mouvements secondaires, et de corriger les animations globales.
Vous pouvez utiliser la bibliothèque de contraintes prédéfinies incluse dans le package pour construire différentes configurations de structure à des fins distinctes, puis les mélanger dynamiquement au bon moment pendant le jeu pour contrôler le débit d'animation final.
Enfin, le package est extensible, vous permettant d'écrire des contraintes personnalisées adaptées à vos besoins de production spécifiques. Pour plus d'informations, regardez notre Conférence GDC 2019. Rejoignez-nous sur les forums pour discuter du package Animation Rigging !

La nouvelle architecture UI/UX comprend de nombreuses fonctionnalités qui améliorent la visibilité et la recherche grâce à Sort & Search et Reveal dans l'Explorateur/Finder. Vous pouvez désormais redimensionner la fenêtre principale du Hub sur le bureau, gérer vos licences directement depuis le Hub et installer et exécuter le Hub sans activer au préalable votre licence Unity. Cette version inclut également la prise en charge de la localisation et de l'internationalisation des langues, ainsi que quelques améliorations concernant la gestion des vérifications de connectivité réseau. Pour plus d'informations, veuillez consulter notre post sur le forum.
Étant donné que vous pouvez désormais gérer vos projets via Unity Hub, le lanceur de projets intégré n'est plus inclus dans l'éditeur. Il s'agit d'un changement important dans la manière dont vous ouvrez/créez des projets et dont les licences sont gérées au sein de l'éditeur. Nous serions donc reconnaissants de vos commentaires au fur et à mesure de cette transition.

Remarque : L'interface de ligne de commande de l'éditeur n'est pas affectée par ce changement et continuera à fonctionner comme prévu pour la gestion des projets et l'activation des licences. Si vous ne l'avez pas encore téléchargé/installé, vous pouvez obtenir la dernière version de Unity Hub ici. Si vous avez déjà installé le Hub, assurez-vous qu'il est mis à jour au moins à la version 1.3 (le lancement/le redémarrage du Hub déclenchera le processus de mise à jour automatique).
Vous pouvez désormais visualiser vos packages et vos dépendances principales dans l'éditeur, installer un package directement à partir d'un dépôt GitHub et gérer les registres privés et hébergés par Unity côte à côte. Cette version inclut également la prise en charge des références de définition d'assemblage (consultez la section Version Defines). Rejoignez la discussion sur le Forum du gestionnaire de packages Unity et consultez le manuel de la version 2019.1 pour plus d'informations.
Il s'agit d'un nouveau système d'interface utilisateur en mode conservé qui permet aux développeurs de créer et de modifier rapidement les mises en page et le style de l'interface utilisateur. Le nouveau système d'interface utilisateur emprunte des concepts du système CSS, jQuery, HTML DOM et Events du web pour faciliter la création et l'optimisation de l'interface utilisateur dans Unity. Il offre également des performances améliorées et de nombreuses nouvelles fonctionnalités, notamment des feuilles de style et une gestion d'événements dynamique et contextuelle.
Nous avons conçu le nouveau système en tenant compte des performances et de la évolutivité, il dispose donc d'une API C# conventionnelle et complète qui permet aux développeurs de créer, de modifier et d'interagir avec l'interface utilisateur. L'API C# familière, le système d'événements, les formats d'importation CSS et XML facilitent la création d'interfaces utilisateur. Les éléments d'interface utilisateur remplacent IMGUI pour étendre et créer l'interface utilisateur de l'éditeur, et remplaceront uGUI pour créer l'interface utilisateur en temps d'exécution dans les futures versions.
Vous pouvez désormais manipuler les données des particules à l'aide du système d'emplois C# sans avoir à copier les données des particules entre le script et le code natif. Pour le configurer, créez une structure d'emploi basée sur IParticleSystemJob, attachez-la au système de particules à l'aide de SetJob, et elle sera appelée depuis un thread après l'exécution de la mise à jour des particules natives.
Cette version inclut un certain nombre de petites améliorations pour les particules de maillage. Par exemple, le maillage affecté à chaque particule peut être interrogé et affecté à partir d'un script. La structure ParticleSystem.Particle contient désormais des méthodes pour obtenir/définir l'index du maillage. Les flux d'vertex personnalisés disposent d'un nouveau flux d'index de maillage, qui vous permet d'envoyer l'index du maillage à un shader. Vous pouvez l'utiliser pour écrire du code de shader adapté à des maillages individuels. Le module Texture Sheet Animation contient un nouveau mode de ligne, qui sélectionne la ligne de l'animation en fonction de l'index du maillage de la particule. Cela vous permet d'assigner des animations spécifiques à chaque maillage de l'effet.
Prêt pour la production dans cette version, Shader Graph est une interface visuelle basée sur des nœuds pour créer des shaders. Il permet aux artistes de personnaliser facilement l'apparence des éléments sans écrire de code. Shader Graph vous permet de faire glisser et de déposer des nœuds pour voir les résultats en temps réel. La rétroaction instantanée facilite également le débogage et le réglage fin, aussi bien pour les experts que pour les débutants en matière de shaders. Une nouvelle fonctionnalité clé de Shader Graph est les sous-graphiques imbriqués, qui vous permettent de créer visuellement des nœuds personnalisés. Les sous-graphiques sont également imbriqués, de sorte que vous pouvez définir des bibliothèques de contenu personnalisées pour votre projet ou votre studio. Cela offre aux artistes techniques un contrôle flexible et non destructif sur l'ensemble du pipeline d'ombres, ce qui favorise l'expérimentation et la créativité. En savoir plus sur les nouvelles fonctionnalités de Shader Graph et les flux de travail recommandés dans cette conférence GDC 2019.
LWRP est prêt pour la production dans cette version. LWRP est un pipeline d'exécution scriptable (SRP) préconstruit qui est optimisé pour offrir des performances élevées en matière de rendu graphique. Il est hautement configurable et vous permet de contrôler les paramètres de rendu de manière globale ou par caméra. Il vous offre également la flexibilité nécessaire pour configurer la profondeur de la caméra et la texture de couleur pour des effets personnalisés, ce qui est intégré à Shader Graph. Cette architecture modulaire et extensible de type plug-and-play vous permet de créer des passes d'affichage personnalisées. Vous pouvez également remplacer le rendu pour obtenir des effets spécifiques. L'utilisation de LWRP vous offre une grande flexibilité et permet d'adapter l'échelle du rendu entre les plateformes. Le code source est disponible sur GitHub, ce qui vous permet de personnaliser davantage LWRP. Dans la version 2019.1, nous avons également ajouté la prise en charge de l'échelle dynamique, avec préservation de l'interface utilisateur, ce qui vous aide à conserver une interface utilisateur nette lors du rendu de votre jeu sur des appareils mobiles avec des écrans haute DPI. De plus, nous avons ajouté la prise en charge de SRP Batcher et plusieurs améliorations des shaders de particules, y compris les particules douces et les distorsions. Il y a également des améliorations pour les shaders de terrain ainsi que pour le shader baked Lit. Cette version propose également un système de rendu personnalisé qui permet une plus grande personnalisation. De plus, nous avons ajouté une prise en charge préliminaire de Visual Effect Graph et une prise en charge initiale de LWRP pour les shaders Unlit, limitée aux plateformes capables d'exécuter des calculs.
En savoir plus sur LWRP dans le manuel Unity.
HDRP est un pipeline de rendu scriptable préconstruit et haute fidélité conçu pour cibler les plateformes modernes compatibles avec les shaders de calcul. Par conception, il vous fournit des outils pour créer tout ce qui va des jeux aux démonstrations techniques à la plus haute résolution. Dans cette version, nous avons ajouté plusieurs nouvelles fonctionnalités et considérablement amélioré le flux de travail pour les artistes. L’un des inconvénients de ces modifications est que certaines données précédemment créées ne sont pas compatibles avec cette version et nécessiteront une nouvelle création. Pour vous aider à passer de 2018.3, nous avons créé un guide pour le processus de migration. Il est disponible ici. Cette version prend en charge DX11 et DX12 pour PC, Metal pour Mac, Vulkan pour PC et Linux, Xbox One et PS4. HDRP restera en version préliminaire jusqu’à 2019.3. Note : Cette version est fournie avec le package 5.7.2 de HDRP dans le modèle HDRP. Pour bénéficier des fonctionnalités répertoriées ici, nous vous recommandons de mettre à niveau vers le package 5.12.0 ou supérieur après avoir installé le modèle.
Cette version inclut un meilleur support pour les API Linux et Vulkan, y compris moins d'artefacts. Certains artefacts subsistent, mais l'expérience globale s'est améliorée.
Double-wide est un chemin lent pour la réalité virtuelle qui rend deux vues côte à côte. Une version optimisée à un seul passage et instanciée sera disponible avec la version 2019.2. Tous les effets HDRP sont désormais pris en charge, y compris la réfraction, la distorsion, la diffusion sous-jacente, les décalcomanies et les effets volumétriques. Pour plus de détails sur les fonctionnalités prises en charge, consultez ceci article.
HDRP utilise désormais un format de tampon de couleur RGB111110Float au lieu de ARGBHalf, ce qui entraîne une exécution des shaders plus rapide et des performances globales améliorées. Dans la version 2019.1, nous disposons désormais d'un chemin rapide lorsqu'il n'y a qu'une seule lumière directionnelle et des matériaux simples. Pour économiser du temps de traitement CPU, les objets de vecteurs de mouvement ne sont plus rendus deux fois avec le pré-traitement de la profondeur. La distorsion a été optimisée avec un tampon de tracé, et le dépouillement des variantes d'ombres a été amélioré afin de réduire le temps de génération. La version 2019.1 prend également en charge la résolution dynamique logicielle, qui vous permet de rendre le monde à une échelle différente de l'interface utilisateur sur toutes les plateformes (la prise en charge de la résolution dynamique matérielle sur les plateformes prises en charge sera disponible ultérieurement). Vous devez simplement régler votre résolution souhaitée via un {i}C# script{i}. Enfin, les matériaux transparents peuvent désormais utiliser un nom de passe de rendu « faible résolution » pour qu'ils soient rendus à un quart de résolution avec une qualité visuelle similaire. Cela est utile pour améliorer les performances de sur-tracé des grandes particules.

HDRP dispose désormais d'un meilleur support de multi-édition pour tous ses éléments d'interface utilisateur, d'une meilleure documentation et de meilleurs outils. Il ajoute également la prise en charge de Multi ViewPort, qui vous permet de rendre plusieurs caméras dans la même cible pour obtenir un rendu en écran partagé et d'autres comportements similaires.

Les paramètres FrameSettings et les paramètres des ressources HDRP ont été refondus pour des temps de calcul plus rapides et une édition plus facile. Il y a désormais des informations sur l'impact des paramètres des ressources HDRP sur la mémoire et les variantes d'ombres. Support pour le SMAA La méthode de lissage anti-aliasing (SMAA 1X) a été ajoutée. Il fournit une méthode intermédiaire entre la performance (FXAA) et la qualité (TAA).

Le Après le post-traitement Le rendu de passe est désormais disponible pour le shader Unlit. HDRP rend les objets qui utilisent ce passage de rendu après le passage de post-traitement, ce qui signifie que le post-traitement n'a pas d'effet sur eux. Cela est utile pour le rendu d'une interface utilisateur 3D, par exemple.
HDRP contient désormais une option de débogage pour geler la caméra pour le culling, mais la garde mobile du point de vue du rendu, vous permettant de voir ce qui est culling pour une vue de scène donnée. Il y a également un validateur de matériau PBR et une suppression de couleur émissive.
Cet assistant vous aide à configurer les paramètres du projet pour qu'ils fonctionnent correctement lors de l'utilisation d'HDRP. Il met en évidence les éléments mal configurés et fournit des boutons de correction pour les corriger. De plus, vous pouvez configurer de nouvelles scènes personnalisées.

Décals ont été améliorés avec un meilleur contrôle des gadgets, prise en charge de Shader Graph et prise en charge de l'émissivité pour les décalcomanies opaques. Le Recorder est désormais pris en charge et vous permet d'enregistrer des séquences à partir de HDRP. Le Tissu Le modèle d'éclairage pour le coton a été amélioré pour refléter le recherches récentes de Sony Pictures Imageworks.

Volumetric brouillard a été optimisé et il est plus précis. Nous avons également mis à jour le gadget pour le volume de densité. Couches de lumière, qui vous permettent de marquer les lumières et les objets de sorte que seuls les objets portant les mêmes balises reçoivent de la lumière d'une lumière spécifique, sont désormais entièrement fonctionnels et prennent correctement en charge le contrôle des ombres. Profil de diffusion pour la diffusion sous-cutanée a changé avec 2019.1. Auparavant, la liste des profils de diffusion dans chaque projet était limitée à 16 profils. Les profils de diffusion sont désormais des ressources individuelles pouvant être partagées/distribuées et il y a une limitation de 16 profils par vue. La liste actuelle des profils utilisés dans une vue est contrôlée à l'aide des paramètres de volume. La version 2019.1 migre automatiquement les données de l'ancien système de profil de diffusion vers le nouveau, mais pas pour Shader Graph. Vous devrez réautoriser ces profils de diffusion. Cette version ajoute également la prise en charge de Vecteurs de mouvement sur des matériaux transparents. Les matériaux transparents peuvent écrire leur propre vitesse, écrasant le contenu précédent du tampon de vitesse. Cela est utile pour les matériaux à fin alpha comme les cheveux.
La version 2019.1 est livrée avec plusieurs nouveaux nœuds maîtres pour Shader Graph. Le nouveau HD Unlit Master Node vous donne accès à l'ensemble complet des fonctionnalités que le pipeline cross-Unlit ne pouvait pas, comme la distorsion ou la sélection de passe de rendu.

Il y a aussi un nouveau AxF Master Node conçu pour prendre en charge le X-Rite AxF format de matériau mesuré. AxF Material n'est utile que lorsqu'il est couplé à l'importateur AxF qui fait partie de notre Logiciel Unity Industry. L'importateur AxF est automatiquement rempli avec tous les paramètres du matériau AxF.

Un nouveau Hair Master Node est également disponible. Il repose sur le modèle d'éclairage Kajiya Kay, convivial pour les artistes, qui offre une meilleure conservation de l'énergie et plus de flexibilité.

Différents nouveaux nœuds/comportements spécifiques à HDRP ont été ajoutés. Il est désormais possible d'échantillonner la couleur de la scène, y compris les mipmaps floues, pour simuler une réfraction ou une distorsion grossière (la couleur n'est disponible que pour les objets transparents). Le Profondeur de scène node vous permet également d'accéder à la profondeur brute, linéaire (entre 0 et 1) ou oculaire. A Décalage de profondeur Une entrée sur le nœud maître Lit a été ajoutée pour pousser la profondeur vers l'intérieur ou vers l'extérieur dans la direction du vecteur de vue. Ceci est utile lors de l'utilisation du nouveau Parallaxe de cartographie d'occultation Nœud pour obtenir l'ombrage des lumières.

De plus, tous les nœuds maîtres HDRP prennent désormais en charge la suppression de l'éclairage global intégré. Pour l'activer, utilisez le Override Baked GI case à cocher dans les paramètres du nœud maître. Il ajoute deux nouvelles entrées sur le nœud maître : GI précalculé et GI précalculé arrière. Cela vous permet de fournir votre propre GI cuit pour l'éclairage diffus indirect et la transmission respectivement ; ou, en combinaison avec le Baked GI Node, vous pouvez le modifier. La valeur par défaut pour la propriété GI Baked est équivalente à la sortie par défaut du nœud GI Baked.

Nous avons apporté de nombreuses améliorations à l'éclairage. Auparavant, l'éclairage ne pouvait pas utiliser de valeurs réelles/physiques correctes car la plage d'exposition et la précision ne le permettaient pas. Le calcul de l'éclairage utilise désormais la pré-exposition. Cela signifie que l'exposition n'est pas appliquée à la fin du cadre pendant le post-traitement, mais est appliquée à l'éclairage lui-même, ce qui améliore considérablement la précision et permet des valeurs élevées pour l'intensité lumineuse, comme pour le soleil. De plus, le ciel, l'émissivité et certains éclairages utilisent désormais des unités EV100 au lieu de EV, qui est l'unité généralement utilisée pour les valeurs de référence dans les tableaux d'éclairage. Comme c'est la plus grande différence de luminosité avec la version 2018.3, la mise à niveau de votre projet vers cette version signifie que vous devrez peut-être ajuster certaines intensités lumineuses. Les propriétés émissives sur le nœud maître Lit/Unlit et le shader Lit/Unlit ont été améliorées pour prendre en charge l'unité EV100 ou Luminance, avec une option supplémentaire Poids d'exposition contrôle et Nœud d'émission. Ce contrôle vous permet de forcer un objet à déborder même lorsqu'il est correctement exposé (par exemple, pour lui permettre de déborder même en pleine lumière du jour).

Les lumières de zone rectangulaires ont été améliorées pour prendre en charge cookie et ombres d'zone approximatives. Il s'agit d'une fonctionnalité « coûteuse » et devrait être utilisée principalement pour le mode haute qualité ou les cinématiques. Support du masque d'ombre a été ajouté, fournissant des ombres douces intégrées de haute qualité tout en conservant la mise en lumière spéculaire.

Le GPU cuit désormais les probes de réflexion, ce qui accélère le cuissage. De plus, les probes de réflexion sont intégrées au flux de travail d'éclairage pour rationaliser le processus de cuisson des probes de réflexion, vous permettant de cuire toutes les probes de réflexion chargées depuis la fenêtre d'éclairage.
Le support de la réflexion planaire en temps réel a été ajouté. Pendant la lecture, HDRP ne rend que les probes de réflexion et planaires en temps réel visibles, qui ont désormais des contrôles individuels dans FrameSettings pour le rendu en temps réel ou hors ligne.
En 2019.1, nous avons intégré le post-traitement directement dans HDRP et inclus un ensemble personnalisé d'effets de post-traitement basés sur des shaders de calcul spécialement conçus pour les plates-formes de bureau et de consoles haut de gamme, en tenant compte des performances et de la qualité. Ce nouveau jeu d'outils de post-traitement est compatible avec le système RT Handle et prend en charge les fonctionnalités de résolution dynamique. Notez que les nouveaux paramètres de post-traitement ne sont pas compatibles avec le Post-Processing Stack V2 (PPv2), ce qui signifie que vous devez réautoriser tout le post-traitement lors de la mise à niveau vers 2019.1. Cela signifie également que HDRP ne prend plus en charge PPv2. Le floutage anti-aliasing, qui est fourni avec FXAA, SMAA, le floutage temporel et le dithering 8 bits, aide à lisser les dégradés et à supprimer les bandes de couleur 8 bits. Vous les définissez directement sur la caméra. L'aberration chromatique, la distorsion de l'objectif et la vignette sont les mêmes que dans PPv2. Le grain de film a été retravaillé pour utiliser des textures de recherche de grain au lieu du bruit procédural. Nous avons également ajouté un nouveau Projection Panini effet.
Effet de projection Panini. Bloom utilise désormais un seuil basé sur la valeur pré-exposée. Cela signifie que seuls les objets surexposés seront affectés par le flou d'éblouissement, et non les objets dont l'intensité dépasse une valeur spécifique. Correction des couleurs dispose d'une version améliorée du mode « Correction HDR » de PPv2. Le grand panneau de gradation des couleurs a été divisé en composants de volume distincts afin de réduire l'encombrement de l'Inspector. Profondeur de champ a été entièrement repensé et offre désormais un contrôle paramétrique de la forme de l'ouverture, vous permettant de configurer facilement le nombre de lamelles, leur courbure, le détourage du barillet et l'anamorphose. L'effet est désormais indépendant de la résolution. Motion Blur a également été entièrement retravaillé pour améliorer la qualité et les performances. Cela inclut des modifications algorithmiques innovantes qui permettent des flous plus précis et plus larges, tout en réduisant les artefacts.


En 2019.1, vous pouvez désormais accéder aux tampons de profondeur et de normales depuis HDRP. De plus, les effets visuels peuvent accéder aux tampons de rendu HDRP internes tels que la profondeur ou la couleur pour la caméra principale et les utiliser comme textures d'entrée pendant le passage de simulation. Cela vous permet de configurer facilement des fonctionnalités telles que la collision du tampon de profondeur et la morphing de scène avec des particules.
Le Visual Effect Graph est un système basé sur des nœuds facile à utiliser et flexible, inspiré des principaux outils de VFX pour le cinéma. Il vous permet de créer rapidement des effets époustouflants pour les jeux et d'autres contenus créatifs. En 2019.1, nous avons ajouté plusieurs améliorations et nouvelles fonctionnalités, ainsi que produit divers échantillons pour vous aider à créer des effets visuels de nouvelle génération. Un nouveau Préchauffage Cette fonctionnalité vous permet de pré-simuler une partie d'un effet jusqu'à un certain temps, de sorte qu'il soit dans son état pleinement développé. Cela peut être utilisé pour créer des effets tels qu'un empilement de fumée qui s'est accumulé au fil du temps. Nous avons également mis à jour les capteurs de lumière et volumes de proxy de capteur de lumière. Les fonctions de bruit ont été améliorées avec perlin (bruits de valeur et cellulaires, et leurs variations de courbure). Les opérateurs de temps et de nombre de particules permettent désormais de compter le nombre de particules générées en une seule fois dans l'imageur précédent.
Nous disposons désormais d'une prise en charge native des modules d'extension d'affichage pour Vulkan. Voir documentation pour plus d'informations et nos exemples.
Le GPU Lightmapper est désormais en version préliminaire, avec des fonctionnalités supplémentaires et une prise en charge de plateformes. Il est activé sur macOS et Linux et prend en charge les indicateurs GI double face sur les matériaux, ainsi que le lancer et la réception d'ombres sur les maillages.

Le GPU Lightmapper utilise désormais par défaut le même GPU que l'éditeur pour garantir l'utilisation du GPU dédié haute performance. Si nécessaire, vous pouvez changer de GPU en utilisant la ligne de commande ; voir la documentation Pour plus de détails.

Le Optix AI Denoiser est un denoiseur basé sur l'apprentissage profond, formé sur une bibliothèque d'images tracées par chemins. Il s'agit d'une amélioration substantielle par rapport aux options de filtrage, en particulier pour les petits nombres d'échantillons, et il est résistant aux fuites et au flou. Il peut être combiné avec des filtres pour obtenir des lightmaps encore plus fluides. L'utilisation du nouveau Denoiser permet de réduire considérablement le nombre d'échantillons pour obtenir des rendus beaucoup plus rapides qu'auparavant. Il n'est actuellement disponible que sur Windows et avec des GPU Nvidia compatibles.

L'environnement MIS est une nouvelle méthode d'échantillonnage des zones les plus importantes du cubemap/HDRI. Cette technique évite de projeter un grand nombre de rayons GI dans l'hémisphère, et se concentre plutôt sur les zones importantes telles que les points lumineux (comme le soleil). Grâce à cette fonctionnalité, il est possible de générer des scènes avec des cartes d'environnement HDRI mesurées qui sont très non uniformes. Un nouveau paramètre Échantillons d'environnement a été ajouté à la fenêtre Éclairage. Cette valeur contrôle le nombre de rayons tracés directement dans l'environnement par texel de la lightmap.


Les Gizmos de sonde de lumière sont désormais affectés par la correction de l'exposition. Cela facilite l'itération sur les sondes de lumière lors de l'utilisation de HDRP et d'un éclairage de haute intensité.

Avec le nouveau paramètre Limiter le nombre de lightmaps, vous pouvez spécifier un nombre maximum de lightmaps générées pour un groupe spécifique d'objets. Cela est particulièrement utile lorsque vous créez des jeux pour des plateformes mobiles où les ressources peuvent être limitées. Realtime GI: Async Readback supprime le besoin pour le CPU d'attendre une lecture par le GPU. Cela peut améliorer les performances et réduire les pointes de la CPU. Génération automatique ne constitue plus le paramètre par défaut pour les nouvelles scènes. Nous avons également ajouté un lien dans la barre d'état inférieure pour indiquer si vous êtes en mode génération automatique ou non.

LookDev, une fonctionnalité expérimentale pour la visualisation des ressources, a été supprimée. Nous l'améliorerons et la réintégrerons pour SRP (avec prise en charge de LWRP et HDRP) plus tard cette année.
L'éditeur Unity diffère le compilation des shaders jusqu'à ce que le rendu ait besoin d'une variante de shader particulière pour la première fois. Cependant, cela pourrait provoquer des blocages de l'éditeur car le cycle de compilation des shaders peut prendre un temps considérable. La nouvelle fonctionnalité de compilation d'ombres d'éclairage asynchrone élimine ces temps d'arrêt en découplant la compilation du rendu et utilise un shader fictif de couleur cyan en guise de remplacement jusqu'à ce que la compilation soit terminée. Il s'agit d'une fonctionnalité réservée à l'éditeur et qui n'affecte pas votre jeu, mais qui accélère simplement les temps de compilation.
Vous pouvez désormais avoir 32 influences d'os par sommet et jusqu'à 255 avec l'API pour les rendu de maillages écorcés. Cela maintient la fidélité des poids d'écorçage en temps d'exécution avec le contenu source dans des programmes externes. Cela est particulièrement utile pour le rigging de visages basé sur les os, où des zones très détaillées, comme les coins de la bouche et les yeux, nécessitent plus de 4 influences d'os. Cela améliorera également la qualité des squelettes qui utilisent une décomposition de l'écorçage lisse afin que vous puissiez obtenir un résultat plus fluide avec moins d'os.
Le Sketchup Importer présente désormais une interface utilisateur mise à jour. Nous avons également ajouté la prise en charge de l'importation de la caméra pour tous les types de caméras disponibles dans Sketchup (orthographique, perspective et à deux points). Enfin, nous avons amélioré les performances de l'interface utilisateur de l'onglet Matériaux de l'importateur de modèles.
Les signaux de la Timeline offrent un moyen simple pour la Timeline d'interagir avec les objets dans une scène. En utilisant un émetteur de signal et un élément de signal, vous pouvez déclencher un récepteur de signal qui définira un ensemble de réactions préconfigurées (événements Unity) pour votre Timeline. Les émetteurs de signal sont utilisés pour déclencher un changement d'état de la scène lorsque la chronologie passe un point donné dans le temps.
Nous avons choisi le mot « signaux » au lieu de « événements » car « signaux » soutient l'idée de « diffusion » ; cela évite également toute confusion avec les événements Unity et les événements d'animation existants.
Nous avons également introduit des « marqueurs » pour les utilisateurs qui souhaitent créer des images clés personnalisées avec des comportements spécifiques. Vous pouvez utiliser des marqueurs pour ajouter et manipuler des objets sur une chronologie de la même manière que les clips : sélectionner, copier-coller, modes d'édition, etc. Les marqueurs ont également des spécialisations, tout comme les clips d'animation, les clips d'activation, les clips de contrôle, etc. Voir ce forum pour apprendre à créer vos propres marqueurs personnalisés.
Nous avons ajouté un certain nombre d'améliorations audio à Timeline. Par exemple, vous pouvez désormais contrôler/définir des touches pour une piste audio individuelle tout en travaillant sur une édition de Timeline. Vous avez maintenant également des commandes simples de volume et de panoramique sur une piste, ainsi que des animations de volume et de panoramique par piste.

Cette version introduit la prise en charge du codec vidéo H.265. Cela vous permet de lire des films H.265 et de transcoder d'autres formats vidéo pris en charge en format de codec H.265.
H.265, ou High Efficiency Video Coding (HEVC), est une norme de compression vidéo qui est le successeur de l'Advanced Video Coding (H.264). Comparé à H.264, H.265 offre une meilleure qualité au même débit binaire.
SRP est désormais entièrement pris en charge dans notre lecteur vidéo et notre enregistreur vidéo. Cela permet au lecteur vidéo de lire des vidéos lors du rendu via HDRP ou LWRP. De plus, l'enregistreur vidéo a été mis à jour pour gérer l'entrée des caméras lorsque vous utilisez SRP. Dans le cadre de l'ajout de la prise en charge de SRP dans le lecteur vidéo, nous avons également corrigé quelques bogues majeurs affectant les modes de rendu de la caméra (plan lointain/proche) et avons également corrigé la prise en charge de la vidéo 360 (stéréo).
Vous pouvez utiliser les commandes SceneVis d'Unity pour masquer et afficher rapidement des objets dans la vue de la scène, sans modifier la visibilité des objets dans le jeu. Au fur et à mesure qu'une scène devient plus détaillée, il est souvent utile de masquer temporairement des objets spécifiques ; le nouveau mode Isoler vous permet de visualiser et de modifier sans obstacles. SceneVis permet cette fonctionnalité via des outils de hiérarchie et des raccourcis clavier, ainsi qu'un bouton de la barre d'outils qui vous permet d'activer ou de désactiver rapidement les effets.
Le package Sprite Shape présente de nombreuses améliorations. Par exemple, vous pouvez rendre le collider 2D final de Sprite Shape plus proche de la représentation visuelle du sprite, ce qui vous permet d'ajouter des colliders polygonaux et de bord qui s'adaptent mieux au Sprite Shape Renderer.
Nous avons également ajouté des tangentes continues non réfléchies pour les points de contrôle de forme, ce qui vous permet de créer des formes courbes pour vous aider à obtenir plus précisément l'apparence souhaitée.

Lorsque vous utilisez le nouveau package 2D Animation (v2.1, accessible via le Package Manager), vous remarquerez une amélioration des performances lorsque vous peaufinez un sprite dans l'éditeur et également au moment de l'exécution, car il est construit avec le système d'emplois C# et le compilateur Burst. Cette mise à jour améliore également les performances lorsque vous avez plusieurs personnages à l'écran animés à l'aide de cet outil.
Remarque : Cette version n'est pas rétrocompatible avec 2018.3. Pour les projets qui utilisent Unity 2018.3, veuillez continuer à utiliser le package 2D Animation v2.0.
Toutes les requêtes de physique 2D vous permettent désormais de fournir un tampon de résultats sous forme de « List .Net,” alors qu'auparavant, vous aviez besoin d'un tableau. Cela présente le même avantage que le tableau, en ce sens qu'aucune mémoire n'est allouée si la capacité de la liste est suffisamment grande pour contenir les résultats de la requête. Il offre l'avantage supplémentaire que la capacité de la liste augmentera automatiquement (avec l'allocation de mémoire associée) pour s'assurer qu'elle peut contenir tous les résultats de la requête tout en n'allouant que la mémoire nécessaire. Si vous réutilisez la même liste, les allocations seront minimisées et/ou éventuellement, aucune allocation ne sera effectuée.
Les versions d'Unity comprennent un flux TECH et un flux de support à long terme (LTS).
Le flux TECH, qui inclut toutes les dernières fonctionnalités, comporte trois versions majeures par an. Les versions TECH de cette année sont les versions 2019.1, 2019.2 et 2019.3, chacune ajoutant de nouvelles fonctionnalités.

2018.3 était la dernière version du cycle TECH 2018.x, et avec cette version, elle fait désormais partie du flux LTS avec un nouveau numéro de version (2018.4). Cela marque le point à partir duquel le calendrier de prise en charge de deux ans commence.
Contrairement au flux TECH, le flux LTS ne comportera aucune nouvelle fonctionnalité, modification ou amélioration de l'API. Au lieu de cela, il traitera les plantages, les régressions et les problèmes qui affectent la communauté dans son ensemble, les SDK/XDK de console, ou tout problème majeur qui empêcherait un grand nombre de développeurs de publier leurs jeux.
Il y a une publication hebdomadaire TECH avec des corrections de bogues, tandis qu'il y a une publication bimensuelle LTS avec des corrections de bogues. Le flux LTS est destiné aux développeurs qui souhaitent continuer à développer et à publier leurs jeux/contenus sur une version stable pendant une période prolongée. Le flux TECH, en revanche, est destiné aux développeurs qui souhaitent utiliser les dernières fonctionnalités et avoir accès aux dernières capacités d'Unity.
Tout d'abord, un remerciement spécial à notre communauté bêta pour avoir utilisé toutes les nouvelles fonctionnalités et fourni d'excellents retours, ce qui nous a aidés à finaliser et à publier la version 2019.1.
Si vous n'êtes pas encore un testeur bêta, envisagez de le devenir. Vous aurez un accès anticipé aux toutes dernières nouvelles fonctionnalités et vous pourrez vous assurer que votre projet sera compatible avec la nouvelle version. Vous pouvez également contribuer à façonner l'avenir d'Unity en partageant vos commentaires avec nos équipes de R&D dans notre forums ou en personne. De plus, vous aurez l'opportunité d'être invité aux événements Unity et de gagner des cadeaux exclusifs.
Commencez par télécharger notre dernière version alpha ou bêta et jetez un œil à ceci Guide pour devenir un testeur bêta efficace. Si vous souhaitez recevoir des e-mails occasionnels avec des nouvelles sur les bêta, des mises à jour et des astuces, veuillez vous inscrire ici.
La version complète comprend près de 300 nouvelles fonctionnalités et améliorations, trop nombreuses pour être mentionnées ici. Vous pouvez toujours trouver la liste complète des nouvelles fonctionnalités, des améliorations et des corrections dans le notes de version.
