跳到正文
cccskills
免费在 GitHub 公开

uw-unity-debugging

Systematic 4-phase debugging framework for Unity projects with GameDebug wrapper generation. Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes. Triggers on requests like "this doesn't work", "there's a bug", "it crashes when", "fix this error", "why is this happening", "null reference exception", "test is failing", "unexpected behavior", "something broke", or any debugging task. Four-phase framework (gather evidence, isolate, hypothesize, fix) that ensures understanding before attempting solutions.

中文简介正在准备中。当前显示原文说明。

集成工具Unity
查看安装方法

包含的文件(1)

  • SKILL.md4.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Unity Debugging

4-phase debugging framework. Also generates the GameDebug wrapper class.

Before You Start

  1. Check if GameDebug.cs already exists in the project (search for class GameDebug). If not, generate it using the template below during project setup.
  2. Read docs/ProjectConfig.yaml -> mcp.unity_mcp — if true, use read_console to read Unity console output.
  3. Read docs/CODING_STANDARDS.md for async patterns — bugs in async code often involve missing CancellationToken or unhandled OperationCanceledException.

4 Phases

Phase 1: Gather Evidence

  1. Read Unity console (read_console via MCP or ask user for errors).
  2. Reproduce — exact steps to trigger.
  3. Scope — single script, system interaction, or timing?
  4. Check git log -5 for recent changes.

Phase 2: Isolate

  1. Comment out systems to narrow the culprit.
  2. Add targeted GameDebug.Log at decision points.
  3. Check common causes:
    • Execution order (Awake vs Start vs OnEnable)
    • Null reference (destroyed object, unassigned field)
    • Unity API called from background thread
    • State not reset in OnDisable/OnDestroy
    • Physics in Update instead of FixedUpdate

Phase 3: Hypothesize & Test

  1. State: "I believe X happens because Y."
  2. Write a test proving/disproving the hypothesis.
  3. If test fails -> back to Phase 2.

Phase 4: Fix & Verify

  1. Implement minimal fix.
  2. Re-run the hypothesis test.
  3. Run full test suite for regressions.
  4. Clean up temp debug logs.
  5. Commit: fix({scope}): {root cause description}

GameDebug Wrapper

Generate during project setup. Uses [Conditional("ENABLE_LOGS")] so all calls are stripped in release builds. Includes [CallerFilePath], [CallerMemberName], and [CallerLineNumber] for automatic context — no need to manually describe where a log came from.

using System.Diagnostics;
using System.Runtime.CompilerServices;

public enum LogTopic { General, Gameplay, Audio, UI, Network, Physics, AI }

public static class GameDebug
{
    [Conditional("ENABLE_LOGS")]
    public static void Log(
        string message,
        LogTopic topic = LogTopic.General,
        [CallerFilePath] string file = "",
        [CallerMemberName] string member = "",
        [CallerLineNumber] int line = 0) =>
        UnityEngine.Debug.Log(Format(topic, message, file, member, line));

    [Conditional("ENABLE_LOGS")]
    public static void LogWarning(
        string message,
        LogTopic topic = LogTopic.General,
        [CallerFilePath] string file = "",
        [CallerMemberName] string member = "",
        [CallerLineNumber] int line = 0) =>
        UnityEngine.Debug.LogWarning(Format(topic, message, file, member, line));

    [Conditional("ENABLE_LOGS")]
    public static void LogError(
        string message,
        LogTopic topic = LogTopic.General,
        [CallerFilePath] string file = "",
        [CallerMemberName] string member = "",
        [CallerLineNumber] int line = 0) =>
        UnityEngine.Debug.LogError(Format(topic, message, file, member, line));

    private static string Format(
        LogTopic topic, string msg, string file, string member, int line) {
        var fileName = System.IO.Path.GetFileNameWithoutExtension(file);
        return $"[{topic}] {fileName}.{member}:{line} — {msg}";
    }
}

Usage: GameDebug.Log("Player spawned", LogTopic.Gameplay); Output: [Gameplay] PlayerController.Start:42 — Player spawned

Add ENABLE_LOGS to Scripting Define Symbols for Development builds only. Customize LogTopic enum per project.

After Debugging

  • Write regression test: Use uw-unity-test-runner to add a test that catches the bug if it reappears.
  • Code review: Use uw-code-review to verify the fix doesn't introduce new issues.
  • Visualize debug data: Use uw-unity-editor-tools to add Gizmos or Handles for spatial debugging (visualize raycast paths, trigger volumes, etc.).

Rules

  • Always follow the 4-phase framework — never jump to a fix before gathering evidence and forming a hypothesis.
  • Use GameDebug wrapper, never raw Debug.Log / Debug.LogWarning / Debug.LogError.
  • Clean up all temporary debug logs after the fix is verified.
  • Write a regression test for every bug fix.
  • If ProjectConfig.yaml -> mcp.unity_mcp is true, use read_console for console output and run_tests to verify fixes.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

adopt

免费

Brownfield onboarding — audits existing project artifacts for template format compliance (not just existence), classifies gaps by impact, and produces a numbered migration plan. Run this when joining an in-progress project or upgrading from an older template version. Distinct from /project-stage-detect (which checks what exists) — this checks whether what exists will actually work with the template's skills.

中文简介正在准备中。当前显示原文说明。

IdoCohen560/claude-unity-game-studio222026年7月8日 更新

Creates an Architecture Decision Record (ADR) documenting a significant technical decision, its context, alternatives considered, and consequences. Every major technical choice should have an ADR.

中文简介正在准备中。当前显示原文说明。

IdoCohen560/claude-unity-game-studio222026年7月8日 更新

Validates completeness and consistency of the project architecture against all GDDs. Builds a traceability matrix mapping every GDD technical requirement to ADRs, identifies coverage gaps, detects cross-ADR conflicts, verifies engine compatibility consistency across all decisions, and produces a PASS/CONCERNS/FAIL verdict. The architecture equivalent of /design-review.

中文简介正在准备中。当前显示原文说明。

IdoCohen560/claude-unity-game-studio222026年7月8日 更新

art-bible

免费

Guided, section-by-section Art Bible authoring. Creates the visual identity specification that gates all asset production. Run after /brainstorm is approved and before /map-systems or any GDD authoring begins.

中文简介正在准备中。当前显示原文说明。

IdoCohen560/claude-unity-game-studio222026年7月8日 更新

Audits game assets for compliance with naming conventions, file size budgets, format standards, and pipeline requirements. Identifies orphaned assets, missing references, and standard violations.

中文简介正在准备中。当前显示原文说明。

IdoCohen560/claude-unity-game-studio222026年7月8日 更新

Generate per-asset visual specifications and AI generation prompts from GDDs, level docs, or character profiles. Produces structured spec files and updates the master asset manifest. Run after art bible and GDD/level design are approved, before production begins.

中文简介正在准备中。当前显示原文说明。

IdoCohen560/claude-unity-game-studio222026年7月8日 更新

查看 IdoCohen560 的全部技能

报告此技能的问题