Jump to content
Unity Insider Forum

Straßen Script


Marcel

Recommended Posts

Meinst du eine gezeichnete Straße auf einem Unity Terrain? Dafür müsstest du die Positionen der (Strassen)Textur aus der Splatmap des Terrains auslesen (siehe terrainData.GetAlphamaps). Abschließend kann man nun einen 2D-Grid über die Flächen dieser Textur legen auf welchem dann der A*-Algo arbeiten kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kenne dein Pathfindingkript (Grid) nicht und auch nicht genau die verwendete Technik und was es alles für Möglichkeiten bietet. Eventuell wäre eine Möglichkeit deine Straße in mehrere "Spuren" aufzuteilen, .d.h. auf der Straße würden dann 2 Grids liegen, ein Grid für die linke Spur und ein Grid für die rechte Spur. Wäre dies keine Lösung, dann müsstest du die Spur des Autos über die Positionen des Autos auf dem Grid selbst festlegen. Dafür müsstet du genau die Position und die Ränder deines Grids kennen, damit du die Positionen des Autos so setzen kannst, das diese beispielsweise am linken oder am rechten Rand des Grids liegen. Zudem müsstest du die neue Position des Autos regelmäßig neu setzen (d.h. in einem festgelegten Intervall). Ansonsten besteht die Gefahr, daß das Auto abkürzt und die Spur verlässt. Das Problem hierbei ist das Festlegen dieser Wegpunkte.
Daher ist die klar bessere Lösung die Straße über 2 Grids - die über der eigentlichen Straße liegen - zu zerteilen. Bei einem Spurwechsel müsste dann von einem Grid zum anderen gewechselt werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du könntest die Zellen auf der anderen Straßen Seite als nicht befahrbar markieren, idealerweise vor Spielstart.

Ansonsten ist A* vermutlich nicht so wirklich die passendste Lösung. Flow Fields würden vielleicht ein besseres Ergebnis liefern. Dann wäre die Straßenseite in eigener Fahrtrichtung der optimale Weg, während die andere Seite zwar nicht unpassierbar, aber ineffizient ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, zumindest beim Unity Navmesh kann man ja auch Kosten für "Areas" angeben. Am Beispiel einer Straße würde man hier den Mesh der Straße in 2 Meshes zerteilen (linke und rechte Spur) und nach dem Erstellen des Unity-Navmeshgrids die Gegenseite der Straße entweder als "non Walkable" oder als Gebiet mit hohen Kosten markieren. Ob die Straße dann später tatsächlich aus 2 Meshes besteht ist denke ich egal. Problem ist nur die Zerteilung der Straße in 2 Meshes vor dem Navmesh-"Baken".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...