Scene-Konflikt-Workflow

Unity-Scene-Merge-Konflikte in Git sicher lösen

Ein Unity-Scene-Konflikt ist selten nur ein Textproblem. Eine sichere Auflösung bewahrt zuerst alle drei Versionen, nutzt Smart Merge als Ausgangspunkt, prüft Objektstruktur und Referenzen und validiert das Ergebnis in Unity, bevor es committed wird.

7 Wolves 29. Juli 2026 12 Min. Lesezeit Merge-Konflikte

Warum ein Scene-Konflikt mehr als Text ist

Eine .unity-Datei enthält Dokumente für GameObjects, Komponenten und weitere serialisierte Objekte. fileIDs verbinden Komponenten mit Eigentümern, GUIDs verbinden externe Assets, und Transform-Beziehungen bilden die Hierarchie. Zwei harmlose Zeilenänderungen können deshalb dieselbe logische Struktur betreffen.

Reihenfolge, Reparenting, Delete-vs-Edit und Prefab-Overrides sind typische Fälle, in denen ein syntaktisch gültiges YAML-Ergebnis trotzdem fachlich falsch sein kann.

Der sichere 8-Schritte-Workflow

  1. Arbeit stoppen: keine weiteren Saves in der konfliktbehafteten Scene.
  2. Status prüfen: betroffene Datei, Branches und uncommitted Änderungen mit git status erfassen.
  3. Base/Ours/Theirs sichern: die drei Revisionen in getrennte temporäre Dateien exportieren.
  4. Keine Version vorschnell verwerfen: weder „ours“ noch „theirs“ pauschal übernehmen.
  5. UnityYAMLMerge ausführen: Smart Merge als ersten strukturellen Merge-Versuch nutzen.
  6. Semantisch prüfen: Hierarchie, Komponenten, Properties, Referenzen und Prefab-Overrides vergleichen.
  7. In Unity validieren: Projekt importieren, Scene öffnen, Console und betroffene Workflows prüfen.
  8. Gezielt committen: nur die Konfliktauflösung samt notwendigen Meta-Änderungen aufnehmen.

Base, Ours und Theirs richtig lesen

Base ist der gemeinsame Ausgangspunkt. Ours ist die Version des aktuell ausgecheckten Branches, Theirs die eingehende Version. Diese Namen bedeuten nicht automatisch „richtig“ und „falsch“.

MergeSight für transparente Scene-Konflikte stellt die drei Eingaben als Unity-Objekte dar. So lässt sich pro Änderung entscheiden, statt eine komplette Datei zu bevorzugen.

Was nach dem Merge geprüft werden muss

  • Wurden GameObjects unerwartet entfernt, dupliziert oder umbenannt?
  • Stimmen Parent-Child-Beziehungen und Root-Reihenfolge?
  • Besitzen Komponenten weiterhin das richtige GameObject?
  • Zeigen GUID- und fileID-Referenzen noch auf existierende Objekte und Assets?
  • Sind Prefab-Instanzen, Source-Links und Overrides erhalten?
  • Gibt es Missing Scripts, Konfliktmarker oder neue Console-Fehler?

Öffnen Sie zusätzlich die wichtigsten Play-Mode- oder Edit-Mode-Tests. Ein importierbares Asset ist noch kein fachlich korrektes Level.

Wann Sie den Merge verwerfen und neu aufbauen sollten

Brechen Sie ab, wenn Base/Ours/Theirs nicht eindeutig sind, der YAML-Parser scheitert, Objektidentitäten ambig werden oder eine große manuelle Marker-Bereinigung nötig wäre. Stellen Sie die gesicherten Eingaben wieder her und lösen Sie den Konflikt in kleineren, nachvollziehbaren Schritten. Ein schneller, nicht reproduzierbarer Fix ist riskanter als ein kontrollierter Neustart.

Künftige Scene-Konflikte reduzieren

  • Große Levels in additive Scenes mit klarer Ownership teilen.
  • Wiederverwendbare Systeme in Prefabs statt in die gemeinsame Scene verschieben.
  • High-Risk-Assets selektiv locken und geplante Paralleländerungen abstimmen.
  • Kleine Commits erstellen und Branches häufig synchronisieren.
  • Scene- und Prefab-Reviews sowie Validierung in Pull Requests und CI aufnehmen.

Häufige Fragen

Wie löse ich einen Unity-Scene-Merge-Konflikt in Git?

Sichern Sie Base, Ours und Theirs, führen Sie UnityYAMLMerge als ersten strukturellen Versuch aus, prüfen Sie das Ergebnis semantisch und öffnen Sie die Scene anschließend in Unity. Committen Sie erst nach Referenz-, Hierarchie- und Console-Checks.

Soll ich bei einer Unity-Scene ours oder theirs wählen?

Nur wenn eine Seite die andere vollständig ersetzen soll und diese Entscheidung fachlich bestätigt ist. In den meisten Teamkonflikten enthalten beide Seiten wertvolle Änderungen, die objektweise geprüft werden müssen.

Kann UnityYAMLMerge jeden Scene-Konflikt lösen?

Nein. Smart Merge löst viele strukturierte Fälle, aber Delete-vs-Edit, ambige Objektidentität, komplexe Hierarchieänderungen oder beschädigte Eingaben können manuelle Entscheidungen und zusätzliche Validierung erfordern.

Warum öffnet sich eine gemergte Scene, ist aber trotzdem falsch?

Syntaktisch gültiges YAML kann semantisch falsche Hierarchie, Referenzen, Komponenten-Ownership oder Prefab-Overrides enthalten. Deshalb müssen Struktur und Verhalten zusätzlich geprüft werden.

Wie verhindert man Scene-Konflikte in Unity?

Nutzen Sie additive Scenes, Prefab-Ownership, selektives Locking, kleine Commits, häufige Synchronisierung und semantische Reviews. Konflikte lassen sich reduzieren, aber bei echter Parallelität nicht vollständig ausschließen.

Fazit

Alle drei Inputs erhalten

Base/Ours/Theirs machen Entscheidungen nachvollziehbar und erlauben einen sicheren Neustart.

Struktur statt nur YAML prüfen

Hierarchie, Komponenten, Overrides und Referenzen bestimmen die tatsächliche Bedeutung.

Unity ist die letzte Validierungsstufe

Import, Console, Tests und ein fachlicher Level-Check gehören vor den Commit.