Sortie de Unity 2018.2

La version d’Unity 2018.2 est sorti officiellement sortie il y a quelques semaines. Et alors que bon nombre des fonctionnalités ajoutée à la 2018.1 étaient en preview, la 2018.2 présente quelques unes de ces promesses comme stables.

Des fonctionnalités utilisables en production

Nous avions rédigé un article sur la version 2018.1 qui comportait quelques lignes en gras disant que toutes les fonctionnalités ne sont pas encore utilisables en production. Eh bien ce n’est plus du tout le cas certaines parmi les plus importantes ont été rendues stables.

C# Jobs et Entity Component System

L’idée derrière les C# Jobs et le Entity Component System (ECS) est de tirer pleinement avantage des processeurs multicœurs, en s’épargnant les problématiques de programmation que ça apporte. Cependant, l’ECS était encore en preview dans la version précédente.

Les C# Jobs et l’ECS sont maintenant utilisables en production. Les équipes d’Unity Technologies ont d’ailleurs fait quelques améliorations, telles que l’utilisation de systèmes réactifs (Reactive systems). Le systèmes réactifs consistent à effectuer des opération uniquement lorsque l’état de quelque chose a changé. On parle d’architecture « event-driven », c’est-à-dire du code exécuté spontanément lors d’un événement (un changement), plutôt qu’exécuté à chaque frame en testant si une valeur a changé.

Joachim Ante, de Unity Technologies, a donné une conférence durant le Unite Berlin qui en dit un peu plus sur ce sujet.

Et bientôt, le Burst Compiler qui va avec…

Pour le Burst Compiler, malgré les améliorations qui ont été faites depuis la 2018.1, ce n’est pas encore tout à fait prêt. Pour rappel, cet outil doit traiter les C# Jobs à la compilation, pour produire un code natif exploitant au maximum les performances et fonctionnalités de la plateforme sur laquelle votre projet est déployé. Unity Technologies annonce la sortie de preview du Burst Compiler pour la version 2018.3.

Nouveautés

Pixel Perfect Camera (preview)

Démo du package Pixel Perfect Camera de Unity 2018.2

Oui, encore une fonctionnalité en preview…

Il s’agit d’une caméra toute désignée pour être utilisée sur des projets en pixel art, faisant tous les calculs nécessaires pour du pixel perfect à notre place. Ce qui permet donc un affichage net des assets en pixel art, peu importe la résolution de l’écran.

SVG Importer (preview) et Vector Graphics API (pas preview)

Il est maintenant possible d’importer des assets SVG dans des projets Unity, grâce au package SVG Importer. Cet outil fonctionne d’ailleurs de pair avec la Vector Graphics API.

Cette nouvelle API permet de manipuler les données vectorielles d’une image depuis le code.

Addressable Assets (preview)

Le système d’Addressable Assets est un package encore en preview, mais constitue un outil assez puissant. Cet outil permet de marquer certains assets comme « adressables », les rendant accessibles de n’importe où. Il est même possible de les rendre accessibles depuis le web, vous permettant de délocaliser vos assets sur un serveur plutôt que dans votre build.

Vous pouvez approfondir un peu le sujet avec la conférence de Stephen Palmer et Bill Ramsour d’Unity Technologies à ce propos. Vous pouvez aussi retrouver le tutoriel écrit sur ce système.

Unity Hub

L’Unity Hub est un launcher un peu plus avancé que l’actuel pour Unity qui permet de choisir par exemple à partir de quel template on créé un nouveau projet (et donc de créer et gérer ces templates de projets).

Aperçu du Unity Hub, ajouté depuis la version 2018.2

Améliorations

Depuis la nouvelle politique de versions d’Unity (avec le TECH stream et le LTS stream, que nous avons expliqué dans un article précédent), les équipes d’Unity Technologies sont beaucoup plus à l’écoute et beaucoup plus réactives sur les retours de la communauté. De fait, de nombreuses fonctionnalités ont été ajoutées aux outils déjà en place et ceux encore en preview.

Shader Graph

Le Shader Graph fait partie des grosses nouveauté d’Unity 2018, mais il est hélas toujours en preview dans cette version 2018.2. Néanmoins, de nombreux nodes et fonctionnalités ont été ajoutés, tels que :

  • les Gradient Nodes pour intégrer un dégradé dans le calcul d’un shader
  • le Texture 2D LOD Node pour permettre de définir différentes textures selon le LOD (Level Of Details, permettant d’afficher des mesh, textures ou autres éléments de moins bonne qualité à mesure que la caméra s’éloigne, afin d’optimiser les performances lorsque le joueur est loin d’un élément)
  • l’option « Show Generated Code » sur chaque node, permettant de connaître le code que chaque node va générer dans le shader final

Le Shader Graph est également compatible avec les deux Scriptable Render Pipelines proposés depuis Unity 2018.1 (Lightweight et High Definition), ne nous obligeant plus à choisir l’un ou l’autre pour pouvoir le manipuler.

Autres…

Comme pour chaque version, des nouveautés ont été apportées aux outils déjà en place depuis longtemps dans l’éditeur comme par exemple le système de particules (avec une option Emit From Sprite qui permet d’émettre des particules depuis la forme exacte d’un sprite), l’UI du moteur (avec un raccourci « Copy Path » sur un asset du projet), etc.

Bien sûr, les nouveautés ne s’arrêtent pas là, nous n’avons présenté que quelques unes d’entre elles. Vous pouvez trouver une liste complète des ajouts et améliorations sur le post officiel de la version 2018.2.