Cette page décrit la démarche technique derrière Prefab Fusion. Pour l'outil lui-même — ce qu'il fait, ce qu'il demande, où le trouver — la page de l'outil est faite pour ça.
Le problème
Dans un projet Unity, une interface grandit vite par copier-coller : un bloc dupliqué avec Ctrl+D dans dix écrans, un prefab copié puis retouché au lieu d'en faire une variante. Le jour où ce bloc doit changer, il faut le changer dix fois. Restructurer à la main coûte cher : chaque objet recréé change d'identifiant, et les références des scènes et des autres prefabs qui pointaient vers lui se cassent, overrides compris.
L'approche
Prefab Fusion lit chaque prefab comme un arbre : les objets, leurs composants, et chaque champ sérialisé qui diffère d'un composant neuf. Deux parties ont la même structure quand leurs noms et leurs types de composants concordent, même si leurs textes, leurs couleurs ou leurs sprites diffèrent.
Extraire en prefab imbriqué : une partie devient un prefab à part entière, et les parties de même structure dans les autres prefabs deviennent des instances de ce prefab, leurs propres valeurs gardées en overrides. Faire une variante, sur place : un prefab existant devient une variante d'un autre ; il garde son chemin et son GUID, donc rien de ce qui l'utilise ne casse. Dans les deux cas, les références des scènes, des prefabs et des assets suivent les objets déplacés, overrides compris.
La sécurité d'abord
Un outil qui réécrit des prefabs doit inspirer confiance. Rien ne change avant un aperçu complet. Les fichiers
concernés sont sauvegardés, et les dix dernières restructurations s'annulent. Dans un dépôt git, l'outil signale
les fichiers aux modifications non commitées. Surtout, après chaque restructuration, chaque valeur de chaque
prefab touché est comparée à sa valeur d'avant : le rapport se termine par
check: every value is the same as before, ou liste ce qui diffère.
Trouver quoi restructurer
Un scan liste les blocs répétés entre les prefabs d'un dossier, et les paires de prefabs assez proches pour être des variantes. La première version ne comparait que les prefabs de même forme et noyait les bonnes pistes : sur un projet de 284 prefabs, 4 999 suggestions, des objets d'un seul nœud en tête. Or deux nœuds se correspondent quand leurs chemins de noms concordent : le nombre de chemins que partagent deux prefabs borne donc leur score, et ce calcul très léger écarte presque toutes les paires sans espoir avant la comparaison complète. Sur le même projet, le scan propose désormais 88 paires, les vraies quasi-copies en tête, et il va plus de deux fois plus vite.
Tests
Une suite de 53 tests automatisés tourne sans échec sous Windows, sur Unity 2022.3, 6.0, 6.3, 6.4, 6.5 et 6.6. Sur quatre projets réels, 687 prefabs sur 722 reviennent identiques, valeur par valeur, après un aller-retour en JSON ; presque tous les autres utilisent un script absent du projet.



