← Zurück zum Blog

Game-UI-Safe-Area und Geräte-QA: Debug-Reihenfolge und Prefab-Fixes

Wenn der Unity Editor gut aussieht, aber Notches das HUD abschneiden oder Taps danebengehen: Fehlerklassen, Canvas Scaler und Screen.safeArea debuggen, Prefabs vs. Studio-Re-Export fixen.

Veröffentlicht
  • game-ui-design
  • game-dev-ai
  • ui-to-engine
  • safe-area
  • unity
  • godot
  • cocos
  • vberai
  • qa
  • 2026
Game-UI-Safe-Area und Geräte-QA: Debug-Reihenfolge und Prefab-Fixes

Der häufigste Bericht: Die Game-Ansicht sieht gut aus, aber auf einem hohen Smartphone sitzt das HUD unter der Notch, oder Buttons wirken antippbar, doch die Treffer gehen daneben. Safe Area ist nicht „den Anchor verschieben“ – es ist Root-Canvas-Policy, Full-Bleed-Hintergrund vs. eingerückter Inhalt und ob die Runtime-safeArea mit dem Kanal übereinstimmt.

Fehlerklassen, Unity-UGUI-Debug-Reihenfolge, Prefab-Fix-Regeln und Kanal-/Mini-Game-Caveats. Design-Handoff-Punkt 7 Safe-Zone-Markierungen sind unter „Was Design liefern muss“ zusammengefasst; Pre-Ship-Punkt 1 Geräteumfang wird hier erweitert – keine Wiederholung der Engine-+-MCP-Checkliste Raycast / erstes Play.

Godot / Cocos: Auf DisplayServer.get_display_safe_area() / Engine-SafeArea-Widgets abbilden; gleiche Schrittfolge wie bei Unity unten.

Fail-Kriterien (eines davon = nicht bestanden): primär lesbare UI oder erforderliche Buttons unter Systemverdeckung (Notch, Home-Indicator, abgerundete Ecken); offensichtlicher Versatz zwischen Optik und Treffer; Editor nur 16:9 ohne Ziel-Seitenverhältnis auf dem Gerät; Dev- vs. Release-Safe-Area-Verhalten weicht ohne Spec ab.


Zuerst klassifizieren: Clip, Offset oder nur Hintergrund

SymptomErster VerdachtDebug-Schritt
Visueller Clip (Text/Icons in der Notch)Inhalt nicht eingerückt; Root als Vollbild behandeltsafeArea vs. Content-Rects prüfen
Tap-Offset (sieht richtig aus, trifft nicht)Canvas-Scale-Modus, mehrere Canvases, Kamera-MismatchEventSystem-Raycast + Canvas renderMode
Hintergrund geclippt, Buttons OKFull-Bleed-BG by Design, Inhalt eingerücktKein Fail, wenn Spec es erlaubt
Falsch nach RotationKein Listener für Orientierungs-/safeArea-ÄnderungInset bei Rotation neu berechnen
Nur ein Kanal-Build betroffenSDK ändert safeArea oder AuflösungDiesen Build smoken; nicht nur auf generisches Android verlassen

Notch clip vs correct safe inset

Visual button vs hit area offset


Unity UGUI: empfohlene Debug-Reihenfolge (6 Schritte)

1. Reproduktion fixieren

Gerät, OS, Dev/Release, Orientierung, Game-View-Auflösung festhalten. Pre-Ship-Punkt 5: Haupt-HUD auf Dev und Release laufen lassen.

2. safeArea und Referenzauflösung loggen

Nach dem Laden der Haupt-UI loggen:

  • Screen.width / Screen.height
  • Screen.safeArea
  • Display.cutouts (Android 11+, falls genutzt)

Lesen: safeArea kleiner als Screen → Inhalt muss eingerückt werden. Im Editor ist safeArea oft gleich dem Vollbild → kein Ersatz für das Gerät.

3. Canvas-Root und Canvas Scaler

PrüfungTypischer FehlerFix-Richtung
Root Render ModeGemischtes Screen Space / Camera UI → Ray-OffsetEin Modus für UI
Canvas ScalerReferenzauflösung ≠ Projekt-Portrait-BaselineAn Engine-Checkliste Punkt 1 anpassen
Match width/heightLanges Seitenverhältnis skaliert falsch; Edge-Widgets driftenMatch mit Design/Prod abstimmen; Prefab fixen, nicht nur Scene
Mehrere Canvas-SortierungTreffer gehen an falschen LayersortingOrder und Raycast-Targets angleichen

4. Layer: Full-Bleed-Hintergrund vs. sicherer Inhalt

Vorgeschlagene Prefab-Hierarchie:

Canvas
├── Background_FullBleed   (voller Anchor, darf in Notch reichen, kein Input)
└── SafeRoot               (Safe-Area-Komponente oder safeArea-getriebenes Padding)
    ├── HUD_Content
    └── Popups

Background_FullBleed and SafeRoot hierarchy

Unity Safe Area nutzen (oder Projektcode, der offsetMin/Max aus Screen.safeArea setzt). Interaktive Buttons nicht ohne Inset über den Vollbildschirm strecken.

Studio-Exporte mit einer flachen Ebene: siehe Nine-Slice / strukturierter Re-Export und Canvas → Prefab.

5. Geräte-Tap-Stichprobe

3–5 kritische Buttons im Hauptfluss; visuelles Zentrum mit Finger vergleichen. Offset nur bei einem Popup → verschachtelten Canvas oder doppelten Scaler prüfen.

6. Prefab im Repo committen

Pass-Kriterien liegen im versionierten Prefab, nicht in Test-Scene-Overrides (Pre-Ship-Punkt 6). Nach Anchor-Änderungen Locale-Overflow-Smoke auf Stress-Sprachen laufen lassen.


Kanal / Mini-Game

SzenarioHinweis
Native AppScreen.safeArea + echte Geräte
Manche Mini-Games / Quick AppsContainer safeArea / systemInfo ≠ Editor-Sim
Android-CutoutsCutout vs. safeArea können abweichen
PC / DecksafeArea oft Vollbild

Pattern: ISafeAreaProvider (oder Äquivalent); pro Plattform injizieren – #if in HUD-Prefabs vermeiden.


Fix-Routing

SymptomWahrscheinliche UrsacheAktionOwner
Geräte-Clip, Editor OKKein SafeRoot / kein safeArea-TreiberLayer-Prefab + Safe Area; Gerät erneut testenEngineering
Hintergrund OK, Buttons geclipptButtons unter Bleed-LayerIn SafeRoot verschieben; Studio-Re-Export der LayerEngineering + Design
Tap-OffsetMulti-Canvas / Camera-UI / verschachtelter ScalerCanvas zusammenführen oder Raycast-Kamera vereinheitlichenEngineering
Drift bei AuflösungswechselNur feste AnchorsAnchors fixen; Engine-Punkt 6Engineering
Design hat keinen Safe-FrameFehlender Handoff-Punkt 7Design ergänzt Notch-/Home-Referenzen; Re-ExportDesign
Flacher Studio-ExportBG + HUD nicht getrenntIn-Place-Split, dann Re-ExportEngineering + Design

Was Design liefert (sekundär)

LieferungNutzung im Prefab
Zielauflösung + Safe-Referenz (Notch / Home-Bar)Reference Resolution und Inset-Erwartungen
Benannte Full-Bleed- vs. HUD-LayerPrefab Background_* / SafeRoot
Edge-Tabs innerhalb Safe oder bewusstes BleedAnchor-Strategie

Designer müssen keine Skripte schreiben – klare Markierungen reduzieren geratene Inset-px.


Häufig gestellte Fragen

Reicht Game-View-Auflösung des iPhone?
Nur Dev-Smoke; Ship erfordert Zielgeräte (Pre-Ship-Punkt 1). Editor-safeArea weicht oft ab.

Safe-Area-Komponente vs. manueller Offset?
Team-Entscheidung; manuell muss bei safeArea-/Orientierungsänderungen aktualisieren – doppelte Logik vermeiden.

Clip allein per Canvas Scaler fixen?
Scaler skaliert; Inset ist separat. Clip ist Content-Rect; Scaler ist globale Skalierung.

Kann MCP/Cursor helfen?
Gut für Prefab-Umbenennungen, Safe Area anhängen, Play-Smoke – Zahlen kommen trotzdem aus Geräte-Logs. Engine-+-MCP-Checkliste.

Safe Area plus Locale-Overflow?
Erst SafeRoot-Layout fixen, dann Stress-Locales – Inset verkleinert die Breite.

VberAI Studio vs. Google AI Studio?
Nein. Siehe Vergleich.

Weitere Guides, die Sie interessieren könnten