Moin,
ich war mir nicht ganz sicher in welches Forum das hier soll, hoffe es ist richtig
Also zu meiner Frage:
ich hab mich jetzt unabhängig von einander mit Pathfinding(A*) und Tilemaps in Unity3D beschäftig.
Nun würde ich das ganze allerdings gerne zusammenführen und bin mir nicht ganz schlüssig wie ich es am besten machen soll.
Um euch einen besseren Überblick zu geben erstmal eine kleine Aufführung aller Programmteile.
TDMap: Tilemap Datenklasse, welche Informationen über die einzelnen Tiles beinhaltet, repräsentiert die Karte
Tilemap: Graphisches Frontend der TDMap, welche sich aus TDMap die Informationen holt und daraus dann Mesh und Texturen generiert.
Das wars auch schon für Tilemap
Bei Pathfinding ist es etwas mehr:
Node: Einzelne Node des Pathfinding Algorithmus, Informationen wie walkable,worldPosition,GridPosition sind hier hinterlegt
Grid: Grid aus einzelnen Nodes
Pathfinding: Script welches mithilfe von Grid und dem A* Algorithmus einen Pfad findet
PathRequest: Klasse die von Einheiten Requests nach einem Pfad annimmt und dann mithilfe von Pathfinding einen Pfad an die Einheit zurückliefert
So erstmal die Übersicht, was meiner Meinung nach direkt auffällt ist das TDMap und Node/Grid sehr ähnlich sind. Sprich man könnte also theoretisch versuchen das ganze zusammenzuführen, würde dann eine Klasse TDTile geben welche mehr oder weniger die Informationen aus Node hat und TDMap ist ja im Prinzip nichts anderes als TDMap.
Der Unterschied liegt eigentlich darin, das die TileData Klassen komplett unabhängig von Unity sind, sprich auch erstmal nichts über die Geschehnisse in Unity wissen sondern einfach nur die Daten beinhalten. Die Gridklasse hingegen wird einem Objekt hinzugefügt und hat dann auch Zugriff auf Attribute wie
transform und ähnliches.
Daher war meine Überlegung erst, einfach 2 Layer zu machen einmal einen Tilemaplayer und einmal einen A_starLayer, allerdings sind dann halt doch sehr viele Informationen doppelt vorhanden.
Eventuell wäre es auch besser nur die Klasse Tilemap als graphischen Layer dem Objekt zu assignen und dann alle wichtigen Informationen an TDMap/Grid weiterzugeben welche ja prinzipiell nichts mit Unity zutun haben sollten.
Bin mir allerdings wirklich nicht ganz schlüssig wo die Vor- und Nachteile davon sind, beziehungsweise ob es überhaupt einen großen Unterschied macht.
Was wäre eure Meinung.
Gruß
Moritz
PS: Hoffe mit der etwas ausführlicheren Beschreibung wird klar was ich meine.
Gruß
Moritz