원클릭으로
Unity Testing, Debugging & QA
npx skills add https://github.com/Totes-MickGOATs/r8eo-x-unity --skill unity-testing-debugging-qa이 명령을 Claude Code에 복사하여 붙여넣어 스킬을 설치하세요
Unity Testing, Debugging & QA
npx skills add https://github.com/Totes-MickGOATs/r8eo-x-unity --skill unity-testing-debugging-qa이 명령을 Claude Code에 복사하여 붙여넣어 스킬을 설치하세요
Unity ScriptableObject Architecture
Unity Shaders
Unity State Machines
Registers new C# files in resources/manifests/<system>.json (files array + tests.editmode/playmode list) and validates with just validate-registry. Use when creating any new script, adding a new game system, or fixing 'orphan file' CI failures. Trigger phrases: 'add to manifest', 'register file', 'new system', 'validate registry'. Key capabilities: exact JSON manifest format, ACTIVE/DEPRECATED/EXPERIMENTAL status, dependency declarations, test class name mapping for pre-push gating via resolve_module_tests.py. Do NOT use for modifying physics logic or editing game scripts unrelated to registration.
Unity Terrain & Track Creation for RC Racing
Unity Testing Patterns
| name | unity-testing-debugging-qa |
| description | Unity Testing, Debugging & QA |
Comprehensive guide to testing, debugging, and quality assurance for Unity games. Use this skill as the unified entry point when planning QA strategy, setting up test infrastructure, debugging issues, or integrating quality checks into CI/CD. For deep dives into specific areas, see the Related Skills section.
Every change MUST meet these minimum test requirements. No exceptions.
| Level | What | Minimum | Where |
|---|---|---|---|
| Unit | Every public method/function touched or added | 1 positive + 1 negative per method (minimum 2) | Assets/Tests/EditMode/ |
| Integration | Every cross-class/cross-system interaction | 1 per interaction path | Assets/Tests/EditMode/ or Assets/Tests/PlayMode/ |
| E2E (PlayMode) | Every user-facing feature or behavior change | 1 per feature/behavior | Assets/Tests/PlayMode/ |
MethodName_Scenario_ExpectedOutcome.agents/skills/ask-first/SKILL.md Phase 2.Unity's crash reporting tool captures:
Deduplication: A clustering algorithm groups crashes by root cause, helping prioritize which errors to fix first for maximum stability improvement.
Analytics: Trend and pattern analysis over time reveals systemic issues and the impact of fixes.
Test on a range of devices within your target platforms, especially for mobile:
Beyond functionality, test for:
Revisit device benchmarks when adding features. A change that is fine on flagship hardware may break minimum-spec devices.
This case study illustrates the diagnostic pattern and TDD discipline described above. It took 4 PRs to fully resolve because testing was not comprehensive from the start.
Vehicle accelerated and braked with no controller connected on Windows. The Legacy Input Manager reported -1.0 on the CombinedTriggers axis — a constant phantom value from Windows platform behavior, not a Unity bug.
Constant value = phantom input. Attaching an InputDiagnostics MonoBehaviour to the vehicle and logging axis values every 30 frames revealed that trigger values showed zero variance across hundreds of frames. Real human input always shows micro-jitter. A value that never changes is stuck/phantom.
Three-layer defense: variance-based TriggerDetector (jitter < 0.02 = stuck), mode gating (zero output during Detecting/None modes), and deadzones (0.15 triggers, 0.2 steering). The critical insight was that the detection phase must observe, never drive — reading raw axes during detection leaked phantom values as real input.
Write the full test matrix first: ALL modes (Detecting, Separate, Combined, None) x ALL axes (throttle, brake, steering). Fixing one axis at a time without comprehensive tests caused 4 rounds of fixes instead of 1. The test matrix IS the specification.
Deep dive: See
unity-input-debuggingskill for the complete guide.
| Skill | When to Use |
|---|---|
unity-input-debugging | Deep dive: Phantom input on Windows, variance-based detection, three-layer defense, input TDD matrix, diagnostic MonoBehaviour |
unity-testing-patterns | Deep dive: UTF code examples, assertions reference, mocking, parameterized tests, setup/teardown patterns |
unity-debugging-profiling | Deep dive: Unity Profiler, Frame Debugger, Memory Profiler, Gizmos, custom debug tools, logging |
unity-e2e-testing | Deep dive: E2E automation, InputTestFixture, visual testing, AltTester, third-party tools, CI integration |
unity-performance-optimization | Deep dive: batching, GC reduction, object pooling, LOD, shader optimization |
clean-room-qa | Black-box testing with zero implementation knowledge — derive tests from function signatures and domain physics |
reverse-engineering | Systematic debugging methodology — chain of custody from symptom to root cause |
debug-system | Debug overlay architecture — structured logging, F-key overlays, runtime inspection |
Is this a bug fix?
YES -> Write a failing test that reproduces it (TDD), then fix
NO |
v
Is this pure logic / math / data?
YES -> Unit test (Edit Mode, [Test])
NO |
v
Does it involve multiple systems interacting?
YES -> Integration test (Play Mode, [UnityTest])
NO |
v
Is it a full user journey (boot -> menu -> play)?
YES -> E2E test (Play Mode, InputTestFixture, [Category("E2E")])
NO |
v
Is it a performance concern?
YES -> Performance test (Profiler + Performance Testing Extension)
NO |
v
Is it a visual/rendering concern?
YES -> Screenshot test (Graphics Test Framework) -- needs GPU in CI
NO |
v
Is it a design requirement ("when X, then Y")?
YES -> Functional test (black-box or white-box)
NO |
v
Did code just change and might have broken things?
YES -> Run regression suite, add tests for changed areas