Skip to content
Unity Debug logo

Unity Debug

Diagnostic et correction systematique de bugs Unity par analyse de code. Classifie le bug, trace le chemin d'execution, propose un fix avec prevention. Triggers: /unity-debug, /debug, 'bug Unity', 'NullReferenceException', 'crash Unity', 'erreur Unity', 'ne marche pas', 'comportement bizarre', 'M...

SKILL.md

Full skill instructions

Unity Debug

Diagnostic et correction systematique de bugs Unity. Trace le chemin d'execution, identifie la cause racine, propose fix + prevention.

Ce que fait cette skill

  1. Collecte les symptomes (message d'erreur, stack trace, description)
  2. Classifie le type de bug
  3. Lit le code implique
  4. Applique l'arbre diagnostique par categorie
  5. Propose un fix avec explication
  6. Ajoute du code defensif et des recommendations de prevention

Prerequis

  • Acces aux fichiers sources du projet Unity
  • Idealement : le message d'erreur exact ou la stack trace
  • Outils Claude Code uniquement (Read, Grep, Glob) — pas de MCP Unity requis

Demarrage rapide

  1. L'utilisateur decrit le bug ou colle l'erreur
  2. Classifier le type de bug (voir categories)
  3. Lire les fichiers impliques
  4. Suivre l'arbre diagnostique
  5. Produire le diagnostic au format : Symptome | Cause | Fix | Prevention

Arbre de decision

Le bug est...
|
+-- Erreur de compilation (code rouge, pas de Play)
|   +-- COMPILE ERROR -> verifier syntaxe, references, asmdef
|
+-- Exception a l'execution (message en console, peut crasher)
|   +-- NullReferenceException        -> ARBRE NULL REF
|   +-- MissingComponentException     -> ARBRE MISSING COMPONENT
|   +-- MissingReferenceException     -> ARBRE DESTROYED OBJECT
|   +-- IndexOutOfRangeException      -> verifier tailles collections
|   +-- InvalidOperationException     -> verifier etat collection pendant iteration
|   +-- StackOverflowException        -> verifier recursion / boucle d'events
|   +-- OperationCanceledException    -> ARBRE ASYNC/​AWAITABLE
|
+-- Comportement incorrect (pas d'erreur visible)
|   +-- LOGIC BUG -> tracer le chemin d'execution
|
+-- Performance (lag, stutter, freeze)
|   +-- Bug de perf specifique -> PERF ISSUE -> chercher allocations, Update lourd, physics
|   +-- Audit systematique     -> utiliser /​perf-audit a la place
|
+-- Probleme visuel (rendu, UI, shader)
|   +-- VISUAL GLITCH -> verifier materials, sorting, render pipeline
|
+-- Probleme physique (traverse les murs, jitter)
|   +-- PHYSICS BUG -> verifier Update vs FixedUpdate, layers, scale
|
+-- Probleme async / Awaitable
    +-- ASYNC BUG -> ARBRE ASYNC/​AWAITABLE

Guide etape par etape

1 — Collecter les symptomes

Informations a obtenir de l'utilisateur :

  • Message d'erreur exact (copie complete avec stack trace)
  • Quand ca arrive (au lancement, apres une action, aleatoire)
  • Reproductibilite (toujours, parfois, seulement en build)
  • Changements recents (qu'est-ce qui a ete modifie avant que ca casse)

Si une stack trace est disponible, extraire :

  • Le fichier et la ligne (at Namespace.Class.Method () in File.cs:line X)
  • La chaine d'appel (qui appelle qui)

2 — Lire les fichiers impliques

Grep("class NomDuScript", type: "cs")        -> trouver le fichier
Read(fichier identifie)                       -> lire le code complet
Grep("GetComponent|Find|SendMessage", fichier) -> reperer les appels risques
Grep("void Update|void FixedUpdate", fichier)  -> reperer les hot paths

Pour les stack traces, lire CHAQUE fichier mentionne dans la chaine d'appel, du plus profond au plus haut.

3 — Appliquer l'arbre diagnostique

Arbres de diagnostic detailles : voir references/​diagnostic-trees.md

4 — Proposer le fix

Format de sortie

Format obligatoire pour chaque diagnostic :

## Diagnostic

**Symptome** : [description precise de ce qui se passe]
**Cause** : [explication technique de pourquoi ca arrive]
**Fix** : [code corrige avec diff ou snippet]
**Prevention** : [comment eviter ce bug a l'avenir]

Code defensif — patterns

// Null check avec log explicite
if (_target == null)
{
    Debug.LogWarning($"[{name}] Target reference is missing.", this);
    return;
}

// TryGetComponent au lieu de GetComponent
if (!TryGetComponent(out Rigidbody rb))
{
    Debug.LogError($"[{name}] Missing Rigidbody.", this);
    return;
}

// Verifier destruction avant callback
private IEnumerator DelayedAction()
{
    yield return new WaitForSeconds(1f);
    if (this == null) yield break;  // objet detruit pendant le wait
    DoAction();
}

// Desubscription propre
private void OnEnable() => _eventChannel.Subscribe(OnEvent);
private void OnDisable() => _eventChannel.Unsubscribe(OnEvent);

Regles strictes

TOUJOURS :

  • Lire le code source reel avant de diagnostiquer
  • Tracer le chemin d'execution complet (pas de deduction sans preuve)
  • Proposer une prevention en plus du fix
  • Commencer par l'explication la plus simple (rasoir d'Occam)
  • Verifier les references Inspector (champs [SerializeField] non assignes)
  • Verifier l'ordre de lifecycle Unity (Awake -> OnEnable -> Start)
  • Fournir le diagnostic au format Symptome | Cause | Fix | Prevention

JAMAIS :

  • Deviner la cause sans lire le code
  • Proposer un fix sans comprendre la cause racine
  • Ignorer la stack trace (chaque ligne est un indice)
  • Proposer try/​catch comme fix (ca masque le bug, ca ne le resout pas)
  • Supposer que le bug est dans Unity Engine (c'est presque toujours le code utilisateur)
  • Proposer un fix qui introduit un nouveau probleme (regression)

Skills connexes

  • Le bug est un probleme de performance general, pas un cas specifique ? Utiliser /​perf-audit (Unity Perf Audit)
  • Le fix necessite un refactoring important ? Utiliser /​unity-refactor (Unity Refactor)
  • Le fix necessite de valider avec des tests ? Utiliser /​unity-test (Unity Test)

Troubleshooting

ProblemeSolution
Pas de stack trace disponibleDemander a l'utilisateur de reproduire avec la console ouverte, ou chercher des Debug.Log existants pour tracer
Bug non reproductibleChercher les race conditions, verifier si ca depend de l'ordre de chargement des scenes ou du framerate
Erreur dans un package tiersLire le code du package (Library/​PackageCache/), chercher des issues connues, proposer un workaround
Bug seulement en build (pas en Editor)Verifier : stripping de code (IL2CPP), differences de serialisation, #if UNITY_EDITOR mal place, SO modifies a runtime
Bug intermittent lie au framerateChercher du code dependant du frame dans Update qui devrait etre dans FixedUpdate, ou des comparaisons float sans epsilon
Performance degrade progressivementChercher des fuites : events non desubscrits, listes qui grandissent sans clear, objets instancies sans pool

Table des bugs courants : voir references/​common-bugs.md

More skills from JulianKerignard

Unity UI Toolkit logo
JulianKerignard/Unity-Skills

Unity UI Toolkit

Creation d'interfaces utilisateur avec UI Toolkit (UXML, USS, C# bindings). Genere des ecrans complets avec structure UXML, styling USS et presenter C#. Triggers: /uitk, /ui, 'UI Toolkit', 'UXML', 'USS', 'UIDocument', 'data binding UI', 'runtime UI', 'menu principal', 'HUD', 'interface utilisateu...

7 0
View
Unity Refactor logo
JulianKerignard/Unity-Skills

Unity Refactor

Refactoring incremental et securise de code C# Unity. Detecte les code smells, propose un plan priorise par risque, et execute les changements un par un avec verification de compilation. Triggers: /unity-refactor, 'refactor', 'code smell', 'clean code', 'dette technique', 'refactoring unity'. Pro...

7 0
View
Unity Editor Tools logo
JulianKerignard/Unity-Skills

Unity Editor Tools

Cree des outils custom pour l'editeur Unity : inspectors personnalises, fenetres d'outils, drawers, menu items, wizards et asset processors. Triggers: /unity-editor-tools, /editor, 'custom inspector', 'editor window', 'property drawer', 'menu item', 'editor tool', 'outil editeur'. Produit des scr...

7 0
View
Unity Perf Audit logo
JulianKerignard/Unity-Skills

Unity Perf Audit

Audit statique de performance pour projets Unity. Triggers: /perf, /perf-audit, 'audit performance', 'optimiser performance', 'anti-pattern performance', 'frame rate', 'profiler', 'budget fps'. Analyse le code C# du projet pour detecter les anti-patterns de performance (CPU, GPU, memoire). Produi...

7 0
View
Unity Build & CI/CD Configurator logo
JulianKerignard/Unity-Skills

Unity Build & CI/CD Configurator

Configure le pipeline de build Unity, CI/CD, et deployment. Triggers: /build-config, /ci, /deploy, 'configurer build', 'github actions unity', 'gitlab ci unity', 'gitignore unity', 'build automation'. Scanne le projet, genere les scripts de build C#, les workflows CI/CD, et les fichiers Git optim...

7 0
View
Unity DOTS logo
JulianKerignard/Unity-Skills

Unity DOTS

Data-Oriented Technology Stack (ECS, Job System, Burst). Authoring, baking, systems, queries, jobs paralleles. Triggers: /dots, /ecs, 'DOTS', 'ECS', 'ISystem', 'SystemAPI', 'IJobEntity', 'Burst', 'NativeArray', 'Entity', 'IComponentData', 'data oriented'.

7 0
View
Unity Save System logo
JulianKerignard/Unity-Skills

Unity Save System

Implementer un systeme de sauvegarde et persistence : /unity-save, /save, sauvegarde, save system, persistence, sauvegarder, charger une partie, save game, PlayerPrefs, serialisation, JSON save, cloud save, slot de sauvegarde

7 0
View
Unity Addressables logo
JulianKerignard/Unity-Skills

Unity Addressables

Asset loading et content management avec Addressables. Organisation des groupes, chargement async, memory management, remote content. Triggers: /addressables, /assets, 'Addressables', 'AssetReference', 'chargement async', 'remote content', 'DLC', 'asset bundles', 'Resources.Load migration', 'load...

7 0
View
Unity Code Gen logo
JulianKerignard/Unity-Skills

Unity Code Gen

Generation de code C# Unity production-ready a partir de specifications fonctionnelles. Analyse la codebase existante, choisit le bon pattern architectural, genere le code et les tests. Triggers: /unity-code-gen, 'generer script Unity', 'creer composant', 'nouveau MonoBehaviour', 'creer Scriptabl...

7 0
View
Unity 2D logo
JulianKerignard/Unity-Skills

Unity 2D

Guide complet pour le developpement 2D dans Unity 6+ : Tilemap, Sprite, 2D platformer, top-down 2D, 2D physics, Light2D, Sprite Atlas, pixel art, 2D game, jeu 2D, tile, Rule Tile. Commandes : /unity-2d, /2d

7 0
View
Unity Audio logo
JulianKerignard/Unity-Skills

Unity Audio

Systeme audio complet Unity 6+ : SFX, musique, ambiance, spatialisation 3D, AudioMixer, pooling, Audio Random Container, Scriptable Audio Pipeline. Triggers: /unity-audio, /audio, audio, son, musique, AudioMixer, AudioSource, spatial audio, 3D sound, sound design, SFX

7 0
View
Unity Shader Generator logo
JulianKerignard/Unity-Skills

Unity Shader Generator

Genere des shaders Unity (HLSL/ShaderLab) pour effets visuels. Triggers: /shader, /shader-gen, 'creer un shader', 'effet visuel shader', 'dissolve', 'outline', 'toon shading', 'hologram', 'water shader'. Detecte automatiquement le render pipeline (URP/HDRP/Built-in) et produit un fichier .shader ...

7 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View