assembly-definitions
Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization.
Mobile optimization — tile-based GPU, ASTC textures, draw call budget (<100), thermal throttling, battery, touch input, safe areas, App Store guidelines.
$ npx -y skills add XeldarAlz/everything-claude-unity --skill mobile --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/mobileContext preview
The summary Claude sees to decide when to auto-load this skill.
Mobile optimization — tile-based GPU, ASTC textures, draw call budget (<100), thermal throttling, battery, touch input, safe areas, App Store guidelines.
name: mobile description: "Mobile optimization — tile-based GPU, ASTC textures, draw call budget (<100), thermal throttling, battery, touch input, safe areas, App Store guidelines." alwaysApply: true globs: ["**/*.cs"]
Mobile GPUs use **tile-based rendering** (TBDR). Key implications:
| Metric | Low-End | Mid-Range | High-End | |--------|---------|-----------|----------| | Draw calls | < 50 | < 100 | < 200 | | Triangles | < 50k | < 100k | < 200k | | Frame time | 33ms (30fps) | 16.6ms (60fps) | 16.6ms | | Texture memory | < 100MB | < 150MB | < 256MB | | Total memory | < 300MB | < 500MB | < 800MB | | Build size | < 100MB | < 200MB | < 500MB |
1. **SRP Batcher** — enabled by default in URP, ensure shader compatibility 2. **GPU Instancing** — for repeated objects (trees, rocks, enemies) 3. **Static Batching** — for non-moving environment 4. **Texture Atlasing** — combine sprite sheets 5. **Material sharing** — same material = same batch
// Adaptive Performance package
using UnityEngine.AdaptivePerformance;
private void Update()
{
IAdaptivePerformance ap = Holder.Instance;
if (ap != null && ap.ThermalStatus.ThermalMetrics.WarningLevel > WarningLevel.NoWarning)
{
// Reduce quality: lower resolution, reduce particles, cap framerate
QualitySettings.resolutionScalingFixedDPIFactor = 0.75f;
}
}// Input System touch [SerializeField] private float _swipeThreshold = 50f; // Minimum tap target: 44x44 points (Apple HIG) // Minimum tap target: 48x48 dp (Material Design)
private void ApplySafeArea()
{
Rect safeArea = Screen.safeArea;
Vector2 anchorMin = safeArea.position;
Vector2 anchorMax = safeArea.position + safeArea.size;
anchorMin.x /= Screen.width;
anchorMin.y /= Screen.height;
anchorMax.x /= Screen.width;
anchorMax.y /= Screen.height;
RectTransform rect = GetComponent<RectTransform>();
rect.anchorMin = anchorMin;
rect.anchorMax = anchorMax;
}Apply to the root UI panel to respect notches and rounded corners.
| Type | Format | Quality | Load Type | |------|--------|---------|-----------| | Music | Vorbis | 40-60% | Streaming | | SFX (short) | ADPCM | — | Decompress On Load | | SFX (long) | Vorbis | 70% | Compressed In Memory | | UI clicks | PCM | — | Decompress On Load |
The ultimate Claude Code toolkit for Unity game development. A production-ready, plug-and-play system that gives Claude Code deep Unity expertise — from writing performant C# to building scenes, profiling performance, and triggering iOS/Android builds — all
Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization.
Structured commit trailers — adds Constraint, Rejected, Scope-risk, and Not-tested metadata to commit messages. Captures architectural decisions and known gaps…
Ambiguity gating — detects vague feature requests and forces structured requirements gathering with scoring across scope, platform, performance, integration,…
Event system patterns — C# events, UnityEvent, SO event channels, static EventBus. When to use each, zero-allocation patterns, memory leak prevention.
Configures Claude Code's statusline to display Unity workflow state — current phase, active agent, files modified, and session duration.
Post-debugging knowledge extraction — captures non-obvious, codebase-specific learnings that pass quality gates. Invoke after resolving tricky bugs or…