Projekt-Grundaufbau
Projekte anlegen
- In Unity Hub über den New-Schalter ein Projekt erzeugen.
Achtung:
- Der Button erzeugt ein Projekt in der letzten installierten Version. Bei mehreren Installationen, das New-Dropwdown verwenden , um die Version zu bestimmen, in der das Projekt erzeugt wird.
- Die richtige Unity-Version zu wählen ist relativ wichtig , weil spätere Änderungen (vor allem zu einer früheren Version) in der Regel problematisch sind.
- Templates: Vorlagen sind im Wesentlichen Vorabkonfigurationen, es gibt technisch keine echten unterschiedlichen Projekt-Typen.
- Folglich kann eine Projektumgebung auch später umkonfiguriert werden (z.B. von 3D zu 2D), man muss dann aber wissen, wo man hinlangen muss.
- "Microgames" Projektvorlagen mit einem integrierten Tutorial direkt in der Editor-Oberfläche. Eignet sich vor allem zum Lernen, erfordert teils eine ganz bestimmte Unity-Version.
- Standard-Templates sind "2D" oder "3D" , starten Sie im Zweifel hiermit.
- Name und Ordner: Geben Sie einen sinnvollen Projektnamen ohne Sonderzeichen an.
- Für das Projekt wird ein Projekt-Ordner mit dem Projekt-Namen im angegebenen Pfad angelegt, der alle Projektdaten enthält.
- Der Projektname ist wichtig , da aus ihm weitere Dateinamen und Projekt-IDs generiert werden. Verwenden Sie möglichst keine Sonderzeichen (z.B. Umlaute) und keine Leerschritte, wenn Sie das Risiko späterer Probleme von vorn herein vermeiden wollen.
Grundaufbau von Unity-Projekten
Im Project-Tab zwei wichtige Grundelemente:
- Assets – Enthält alle inhaltlichen Projektdateien. Arbeiten Sie mit allen Ihren Inhalten in diesem Ordner (bzw. dortigen Unterordnern).
- Packages – Sammlung von installierten Modulen, die sich wie Assets verhalten, aber von Drittanbietern bereitgestellt und aktualisiert werden. Verändern Sie hier nichts manuell (sondern nur über den Package Manager).
Ordnerstruktur der Unity-Projekte
Assets | Wichtig! Alle eigenen Dateien und Inhalte des Projekts. |
---|---|
Library | Cache und Zwischenspeicher, wird schnell sehr groß. Wird von Unity bei Bedarf neu aufgebaut. |
Logs | Automatisch erstellte Protokolle. Löschbar. |
Obj | Cache und Zwischenspeicher. Löschbar. |
Packages | Wichtig! Datenbank installierter Drittanbieterprojekte. |
Project Settings | Wichtig! Einstellungen des Projekts. |
Temp | Zwischenspeicher, löschbar. |
*.vsproject | Das Visual Studio-Projekt zur Code-Bearbeitung. Kann gelöscht werden, dann erstellt es Unity bei Bedarf neu. |
Wichtige Ordner sichern
Oben fett gedruckte Elemente sind der Projektinhalt, der erhalten bleiben muss. Diese Ordner unbedingt sichern und erhalten. Die dünn gedruckten Ordner können in der Regel gelöscht oder aus Backups ausgenommen werden, da sie von Unity bei Bedarf neu erstellt werden.
Ganz wichtig: .meta** -Dateien**
Im ganzen Projekt befinden sich meta-Dateien, die die Zusammenhänge zwischen den einzelnen Dateien umsetzen. Diese dürfen nicht gelöscht werden und müssen unbedingt auch in Backups usw. erhalten bleiben. Im Datei-Explorer ggf. versteckte Dateien einblenden, falls die .meta-Dateien nicht sichtbar sind. (Kontrolle: für jede Datei innerhalb von Assets muss auch eine .meta-Datei existieren.)
Einchecken in Repositories
Wenn Sie ein Projekt über ein Repository wie Git sichern wollen, achten Sie beim Anlegen darauf, die temporären Dateien (siehe oben dünn gedruckt) auszuschließen. Andernfalls belasten Sie Ihr Repository mit riesigen Mengen irrelevanter Dateien, Check-In/Out dauert länger und Konflikt-Risiken erhöhen sich.
Für GitHub gibt es bereits vordefinierte .gitignore -Definitionen, die die wiederherstellbaren Daten ausschließen: GitHub Unity.gitignore⧉
Aber Achtung: Oben genanntes .gitignore ist weiter gefasst und schließt z.B. auch erzeugte Pakete wie .exe oder .unitypackage etc. aus. Prüfen Sie, ob das gewollt ist, bzw. nicht vergessen!
Zusammenarbeit in Teams
Sie können zwei Ansätze verfolgen, wenn mehrere im Team zusammen arbeiten sollen: Synchronisieren mit Unity Teams oder Segmente manuell zusammenführen.
Unity Teams
Prinzip: Synchronisationsassistent, der direkt im Editor den Datenaustausch koordiniert. Kurzanleitung: Happier Faster Teamwork⧉
Vorteile:
- Beste Technische Unterstütztung, da von Unity direkt angeboten
- Direkte Editor-Integration
- Automatische Builds auf dem Server im Hintergrund
Nachteile:
- Bei freier Lizenz: Beschränkt auf 3 Teilnehmer und 1GB Projektgröße
- Speichert und verarbeitet alle Projektinhalte auf Unity-Servern (vermutlich in USA)
- Viel Traffic und Online-Synchronisierung
Manuelles Zusammenführen von Fragmenten
Prinzip: Teilnehmende arbeitet je in eigenem Projekt (oder Checkout des gemeinsamen Projekts), dann werden die Einzelteile zusammengeführt.
Vorteile:
- Zunächst einfach, weil unabhängig gearbeitet werden kann.
- Kein ständiger Synchronisationstraffic und keine Daten auf fremden Servern.
Nachteile:
- Koordinator nötig, um die Zusammenführung zu überwachen und ggf. Datei-Konflikte aufzulösen.
- Sauber Aufteilung und akribische Dateiorganisation nötig, um Dateikonflikte zu minimieren.
Tipps für die Entscheidung der Kollaborationsform
- Probieren Sie zu Projektstart anhand eines einfachen Projekts aus , welcher Weg für Sie am besten funktioniert (Teams, Github/Repository, Dateien kopieren, …). Erzeugen Sie ein Hello-World-Projekt mit ein paar Dateien, verteilen Sie es auf das Team, lassen Sie vom Team Änderungen durchführen und versuchen Sie die Zusammenführung zurück.
- Organisieren Sie Ihre Inhalte in klaren Ordner-Strukturen , z.B. jedes Team hat einen eigenen Ordner innerhalb der Assets + ein gemeinsamer Ordner für Dinge an denen mehrere arbeiten.
- Um Teilbereiche eines Projekts in ein anderes Projekt zu überführen, können Sie .unitypackages erzeugen, eine Art Unity-spezifisches Zip-Format, das auch Änderungen und Versionen (rudimentär) erkennt. Wählen Sie dazu Ihre Assets im Project-Tab, und wählen Sie Rechtsklick → Export Package, um ein Archiv zu erzeugen. Der Importeur wählt in seinem Projekt dann Menü Assets → Import Package → Custom Package und öffnet die unitypackage-Datei.
- Platzieren Sie komplette Projekte NICHT in Clouds wie Dropbox , um sie zu teilen, da es hier schnell zu Problemen kommt und die Cloudspeicher oft nicht auf Datei-Merging optimiert sind.
Backups und Datensicherung
- Zip-Backup: Beenden Sie Unity Editor und packen Sie den Wurzelordner des Projekts inklusive aller Inhalte in eine Zip-Datei.
- Die Kopie aller Inhalte bewirkt einen vollständigen Schnappschuss, d.h. das Projekt lässt sich später exakt so wiederherstellen wie zum Zip-Zeitpunkt.
- Durch das Packen in ein Archiv sind die Daten gleichzeitig gegen versehentliches Verändern geschützt, weil Dateien schon systemseitig nicht direkt im Archiv geändert werden können.
- Sehr einfach zu handhaben: Kopieren Sie die Zip-Sicherung einfach auf eine externe Festplatte, einen USB-Stick, einen Cloudspeicher, etc.
- Nachteil: Weil auch alle temporären Cache-Daten mitgesichert werden, dauert das Zippen bei großen Projekten lange und die Sicherungsdatei wird groß.
- Achtung: MacOS entpackt auch .unitypackage-Dateien, was zu unerwarteten Ergebnissen führt. Falls das Zip unitypackages enthält, entpacken Sie unter MacOS über das Terminal, siehe: Mein Youtube-Video dazu⧉
- Repository-Backup: Checken Sie das Projekt in ein Repository wie GitHub ein, um es auf einem Server zu sichern.
- Verwenden Sie gitignore-Definitionen, um nur die Quelldaten, keine temporären Caches, einzuchecken (siehe oben).
- Repositories sind meist einigermaßen zuverlässig und ausfallsicher. Die Daten sind zudem direkt auf einer anderen physikalischen Maschine gespeichert, d.h. wenn Ihre Festplatte kaputtgeht, sind die entfernt gesicherten Daten nicht betroffen.
- Der Einsatz eines Servers vereinfacht die Arbeit auf verschiedenen Geräten.
- Repositories zeichnen automatisch Versionen auf, so dass Sie leicht zu früheren Dateiversionen zurück wechseln können, ohne ausdrücklich mehrere Backups führen zu müssen.
- Nachteil: Da nur die Quellen eingecheckt werden, kann es bei der Wiederherstellung des Projekts (und der Neuberechnung der Caches) ggf. zu Abweichungen kommen, was manuelles Korrigieren erfordern kann.
Die hier gezeigten Lektionen sind eine Auswahl von Inhalten aus mehreren verschiedenen kostenpflichtigen Kursen. Um alle Inhalte zu sehen, müssen mehrere Kurse gekauft werden. Änderungen und Aktualisierungen der Kursinhalte werden auf dieser Seite möglicherweise nicht oder nicht sofort dargestellt. Die kostenpflichtigen Udemy-Kurse enthalten neben den Videos auch Übungen, Textartikel, weitere Materialien, sowie ein Support-Forum für Fragen. Vereinzelt kann eine Lektion im mehreren Kursen gleichzeitig enthalten sein. Wenn etwas unklar ist, stelle Deine Frage per E-Mail an rene@gamedev-profi.de .