Vom Chaos zur Ordnung oder "Erstellen Sie eine Projektstruktur in Unity und nicht nur ..."

Wenn Sie ein neues Projekt erstellen, ist es so sauber und verständlich, dass es keinen überschüssigen Müll gibt ... es ist leer. Je länger die Entwicklung dauert, desto mehr zusätzlicher Müll, undurchsichtige Ordner und Dateien werden angezeigt. Manchmal können Fertighäuser für andere Projekte dorthin gelangen, und die gesamte Organisation fliegt nach Tartar.

Es stellt sich heraus, dass die Organisation noch nie war, das Projekt ist drei Jahre alt, es ist zu spät, um die Dinge in Ordnung zu bringen, es ist nicht bequem zu arbeiten und im Allgemeinen ...

Willkommen im Chaos, Sie sind hier, weil:

  • Ich hätte nie gedacht, warum Sie eine Projektstruktur in Unity benötigen
  • Ihre Projekte haben ein ewiges Durcheinander und Sie möchten es loswerden
  • auf der Suche nach neuen Wegen zu organisieren
  • verlor die Hoffnung, die Dinge in ihrem Projekt in Ordnung zu bringen

Früher oder später werden Sie zu Ihrer Entscheidung kommen und es wird am besten für Sie geeignet sein. Ich kann nur bei der Suche helfen und Ihre Optionen anbieten. Wir werden uns einige Beispiele ansehen, die am besten geeignete Lösung analysieren und ausarbeiten. Wir werden auch über Strukturierung, Hierarchie und Eigennamen sprechen und darüber, wie die Reihenfolge die Dinge beschleunigt.



Willkommen bei Katze.

Vielen Dank an alle, die mein vorheriges Material gelesen haben. Es waren die Kommentare unter ihm, die mich dazu veranlassten, diesen Artikel zu schreiben. Informativer und nützlicher, mit einer romantischen Einführung, aber praktischen Inhalten. Heute werden wir über ziemlich offensichtliche Dinge sprechen. Wenn es etwas hinzuzufügen gibt, können Sie gerne schreiben und Ihre eigenen Optionen anbieten.
Auf den Punkt.
Warum brauchen wir eine Struktur? - Zeit. Wir sparen viel Zeit beim Debuggen, Hinzufügen neuer Funktionen, Dateien und Bereinigen, vorausgesetzt, unsere Organisation ist für uns klar und bequem, sofern dies der Fall ist. Richtige Dateinamen, Reihenfolge, Tags und andere kleine Tricks können Zeit sparen.
Das Netzwerk verfügt über genügend ähnliche Materialien mit Beispielen, aber nicht sehr viele Erklärungen dafür, "warum dies so ist". Ich werde die Lösungen beschreiben, die ich selbst verwende, und wie sie speziell für mich geeignet sind. Ich glaube nicht, dass ich etwas Neues mitbringen werde, aber die richtige Organisation ist der Beginn des Beginns eines Projekts.

"Wie wird es gemacht?"


Nehmen Sie zum Beispiel Collider für die Umwelt. Welche Objekte und Flugzeuge haben wir?

  • Geschlecht
  • die Wände
  • Hindernisse (Kisten, Fässer, Steine ​​usw.)
  • die Decke

In der Hierarchie der Szene können wir dies alles in einem Spielobjekt zusammenfassen , aber die Suche ist unpraktisch.

Daher werden wir ein separates Spielobjekt für Kollider von Boden, Wänden, Decke und Hindernissen erstellen.

Als Beispiel das Level aus dem Spiel



Wenn wir mehr als 10 Kinder haben, empfehle ich, ein Tag zu schreiben, dies vereinfacht die Suche. Wiederum, Collider, wenn wir über 2D sprechen, werden Kante, Polygon, Box, Kreis verwendet und jeder kann ein Ebenen- oder Hindernis-Collider sein. Es kann als "coll_edge_N" oder "coll_e_N" bezeichnet werden, da Wandcollider ein übergeordnetes Wandobjekt haben (das wiederum ein übergeordnetes Colliders- Objekt hat). Es stellt sich die Frage, ob Sie für eine vereinfachte Suche ein Tag der Ebene "coll_wall_edge_N" schreiben sollen, wenn die Anzahl der Objekte groß ist viel Zeit sparen.

Wir bekommen etwas Ähnliches.





Ordner in Unity organisieren

Das Projekt hat auch ziemlich klare Regeln.

Nämlich:

  • es sollte klar sein, wo liegt
  • Es ist klar, wo neue Dateien und Quellen hinzugefügt werden sollen
  • adaptive und komfortable Struktur
  • Die Struktur ist nicht zu komplex und nicht zerkleinert

Natürlich können Sie alles und überall werfen, ohne an die Organisation zu denken.

Wie so



Sie können etwas organisierter mit einer klaren Struktur tun.

Irgendwie so



Schauen wir uns nun an, was benötigt wird, was nicht.

Es ist sehr praktisch, das Projekt in interne und externe Assets zu unterteilen . Dies ist ein Plus.
Bei externen Vermögenswerten verfügen wir über alle Vermögenswerte von Drittanbietern und nicht mehr.
Es gibt einen separaten Szenenordner, in dem sich alle Szenen befinden.
Der Skriptordner ist ebenfalls separat und bequemer.
Der für uns interessanteste Ordner sind interne Assets
Alles, was den sichtbaren Teil unseres Spiels betrifft, liegt dort.



Welche Ordner werden dort benötigt?

  • Prefabs Hauptordner für alle Prefabs
  • Texturen / Sprites, für die es bequemer ist und je nachdem, ob es sich um ein 2D- oder ein 3D-Projekt handelt
  • Materialien Materialien hier und alles ist klar
  • Shader ähnlich, wenige Fragen
  • Animationen
  • Vfx
  • Sound ist hier eine einfache Organisation im Ordner selbst und die Trennung von Sounds in BGM, Impact FX usw.

Als VFX-Künstler und 2D / 3D-Animationskünstler werde ich näher auf die Organisation dieser bestimmten Ordner eingehen.

Für die Einheitenanimation müssen wir Animatorsteuerungen und Animationsclips erstellen . Es gibt mehrere Animationsclips, daher ist es bequemer, sie in einem Ordner abzulegen. Außerdem benötigen Sie einen Ordner für das Gerät.

Es wird so aussehen.


Das ist bequem
Nun zu VFX

Im Ordner mit vfx benötigen Sie die Ordnertexturen, Materialien und optional Fertighäuser . Für einen VFX-Künstler ist es bequemer, in seinen Ordnern zu arbeiten und nicht das gesamte Projekt herumzuspielen, sondern Ordnung in seinem Garten zu halten. Texturen für Effekte sind immer Texturen. Materialien für Effekte haben unterschiedliche Einstellungen von Additiv zu Alpha-Mischung. Manchmal wird eine Textur an mehrere Materialien gesendet. Wenn sich der Texturordner in der Nähe befindet, ist die Suche einfacher. Wenn Sie Shader schreiben, ist das Abrufen von Texturen aus dem VFX- Ordner bequemer. Außerdem ist es bequemer und logischer, die Materialien des fertigen Shaders in VFX zu platzieren.
Warum brauche ich einen Papierkorb?

Oft müssen Sie etwas löschen, nicht die Tatsache, dass Sie es tun können und alles reibungslos verläuft, oft geht etwas verloren und wenn Sie nicht der Hauptprogrammierer des Projekts sind, können Sie es tun. Es besteht auch die Notwendigkeit, eine Funktion / Idee zu testen und nicht die Tatsache, dass sie Wurzeln schlägt und im Allgemeinen benötigt wird. Dafür ist der Papierkorb gedacht, alle Tests, alles, was gelöscht werden muss oder alles, was Sie nicht mit dem aktuellen Commit senden möchten, ist besser hier zu platzieren und sich für die Gita ignorieren zu registrieren.

Organisieren einer Hierarchie in Unity

Etwas höher war ein Beispiel für Collider. Diese Regel gehorcht allem. In unserem Projekt haben wir eine solche Lösung angewendet.



Wir haben gerade "--- Kapitelname ---" hinzugefügt. Dies ist ein leeres Objekt, das nur den Namen trägt. Es scheint eine nutzlose und überflüssige Sache zu sein, aber es vereinfacht manchmal die Suche und das Verständnis der Hierarchie auf der Bühne. Mit einer solchen einfachen Lösung können Sie die visuelle Suche mehrmals beschleunigen. Zum Beispiel haben wir ein Objekt von Gegnern, wir können mehrere untergeordnete Objekte für jeden Feindtyp komplizieren und erstellen und für Bosse trennen sowie ein Tag für jeden Feind erstellen. Und wir können ein Mutterobjekt für fliegende Gegner erstellen, das Symbol ^ , strong $ und den Boss als % bezeichnen . Für Collider ist diese Lösung nicht sehr praktisch, aber für Gegner und ihre visuelle Trennung in der Hierarchie - ganz gut.

Organisation am Beispiel der Wirbelsäule

Wenn wir über 2D- oder 3D-Animation sprechen, geht die Bedeutung von Organisation und Namen auf eine andere Ebene. Sie können auf Animations-Mocap zurückgreifen und sich nicht um die Organisation kümmern, sondern nur die notwendigen Bewegungen im Studio ausführen und das Finale genau dort durchführen. Leider passiert dies nicht immer. Es gibt viele Dinge, die manuell geändert werden müssen, auch wenn Bewegungen erfasst werden, aber darüber sprechen wir nicht. Wie korrigiere ich alle Bewegungen, bestimme den gewünschten Punkt, Knochen, wenn es mehr als 20 gibt? Eine einfache Person mit 5 Knochen wird nicht schwer zu organisieren und die Zusammenhänge zu verstehen sein und jetzt 10 Finger hinzufügen, es ist schwieriger, oder?

Die Regeln sind dieselben, aber in der Animation gibt es Abhängigkeiten und untergeordnete Knochen, die die Organisation vereinfachen. Für die visuelle Wahrnehmung wird auch eine Änderung der Farbe der Knochen verwendet. Es gibt immer einen Schlüsselknochen, an dem andere Knochen befestigt sind. An diesen Knochen befinden sich noch Knochen und so weiter bis zum Ende. Oft nennen wir es einfach Wurzel , die Hüften oder der Oberkörper gehen weiter davon weg, die linke oder rechte Hand vom Oberkörper und so weiter. Mit den Namen fällt es uns leichter zu verstehen, was und wo.

Und hier ist ein Beispiel für das Hervorheben, hilft bei der Arbeit (zum Beispiel Dragon Bones )



Hauptregeln


  • Klarheit der Namen
  • Bequemlichkeit
  • vernünftiger Ansatz

Fazit


Beispiele sind nur meine Beispiele. Nur eines ist offensichtlich und sicher - Namen, Struktur, Reihenfolge, für jeden sein eigenes, aber für die Menschen, mit denen Sie arbeiten, verständlich, niemand wird Ihre Trümmer aufheben. Große Unternehmen stellen häufig höhere Anforderungen an das Unternehmen. Je früher Sie lernen, Ordnung zu halten, desto einfacher wird es für Sie in Zukunft.
Ich werde dir keine Reinigungskampagne anstellen, ich habe dir einen Besen gegeben, benutze ihn.


Kommentare



Leopotam
"ExternalAssets" ist der Weg ins Nirgendwo, wenn Sie Assets nicht nur hinzufügen, sondern auch aktualisieren müssen. Die korrekteste und einfachste Lösung besteht darin, die lokalen Projekt-Assets zu isolieren (im Artikel heißt es „InternalAssets“) und externe Assets so zu speichern, wie die Autoren sie vorbereitet haben - idealerweise in separaten Ordnern auf Ordnerebene „InternalAssets“. In diesem Fall wird das Update einfach und unkompliziert. Sie müssen nicht nach benutzerdefinierten Ordnern sortieren, was im Update enthalten sein kann und was vorher nicht vorhanden war. Darüber hinaus gibt es spezielle Ordner, die nicht verschoben werden können und die sich nur im Stammverzeichnis befinden können (Gizmos, Plugins / Android, Plugins / iOS usw.).

Source: https://habr.com/ru/post/de439114/


All Articles