Jump to content
Unity Insider Forum

Integration von zusätzlichen C# Klassen


markusk
 Share

Recommended Posts

Hallo,

wenn ihr bei eurem Projekt zusätzliche separate Klassen anlegt, also z.B. diverse Helper-Klassen oder was auch immer - wo legt ihr die immer ab? Im selben Folder wie die ganzen Scripts zu den Gameobjects oder baut ihr euch da immer eine separate Folder-Struktur?

lg, Markus

Link to comment
Share on other sites

Bei mir liegen sie im Scriptordner weil ich nach Dingen sortiere. (Sounds,Textures,Scripts,Prefabs usw.) Ja und innerhalb dieser Ordner habe ich natürlich noch Unterordner.

Wenn diese Klassen aber jetzt aber unabhängig vom Projekt wären, wie z.B. eine eigene Mathe-Klasse, dann würde ich die auch in einen separaten Hauptordner legen.

Aber das ist alles eine Frage der Vorlieben.

Link to comment
Share on other sites

Tatsächlich bin ich mal eine Zeitlang auf die semantische Gruppierung umgestiegen, also

  • Modules
    • Player
      • Runtime (Also ingame-Scripts)
      • Editor
      • Prefabs
      • Models
      • Materials
    • Camera
      • Runtime
    • Enemies
      • Runtime
      • Prefabs

usw. Finde ich auch nach wie vor ganz cool. Wenn man an einem Teil des Projekts arbeitet, dann bleibt man auch in einem oder zwei Bereichen der Assets und ist nicht kreuz und quer am Editieren. Das Problem ist, dass ich auch eine andere Sache ganz cool finde: Mein Projekt nach Code und anderen Assets aufzuteilen. Texturen, Sounds und Szenen können in der Summe recht groß werden, und ich bin deshalb kein Fan davon, ein riesig aufgeblähtes Git-Repo zu haben, das aufgrund von Fortschritt im Code ständig Updates kriegt. Überhaupt mag ich es, wenn die Commit History meines Codes nicht mit Updates an irgendwelchen Bildern vollgemüllt ist. Deshalb habe ich inzwischen nur noch Code im "Modules"-Ordner, womit er eigentlich direkt wieder ein "Scripts"-Ordner ist. Nur halt mit Runtime- und Editor-Ordnern (und ggf. "Tests") in jedem "Modul". Aber das machen ja sowieso die meisten. Alle anderen Assets sind in einem Git-Submodul, das dann wiederum dieselbe Aufteilung hat.

Man sollte dazu sagen, dass es keine optimale Lösung gibt, so ein zweidimensionales Problem in eine Ordnerstruktur zu drücken. Entweder, deine Prefabs sind in lauter Ordner verstreut, oder deine "Player"-Assets sind überall verstreut, weil der Code beim Code und die Prefabs bei den Prefabs liegen. Deshalb sollte man sich nicht auf saubere Ordnerstrukturen beschränken und z.B. Tags verwenden. Die werden ja gerne mal übersehen, aber du kannst bei allen Assets unten rechts im Preview-Fenster beliebig viele Tags anbringen. In der Suchleiste deiner Project View kannst du dann danach Filtern. So sucht z.B. "t:prefab l:tree" nach Prefabs mit dem "Tree"-Tag. Du musst dir das auch nicht merken, hast ja die Buttons rechts neben der Suchleiste. Wenn man das richtig nutzt, wird die Ordnerstruktur auch sofort weniger entscheidend für den Workflow, und man kann sie mehr nach technischer Notwendigkeit designen :)

Eines noch: So oder so geht's mir mega auf den Keks, wenn ich abwechseln das eine und dann das andere Prefab (oder mehrere Szenen) bearbeite und ich da jedes Mal durch die Ordner klicken muss. Darum hab ich mir ein Fenster geschrieben, in dem man Favoriten anpinnen kann. Benutze ich immer wieder gerne, darfst du auch ;)

Link to comment
Share on other sites

So wie das @Sascha macht, versuche ich es auch mittlerweile.

Der Unterschied ist nur, dass ich eher andere Namen verwende:

  • Game
    • Units
      • UnitName
        • Scripts (je nachdem, ob sie personalisierte haben)
        • Models
        • Prefab
        • Texture

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...