Jump to content
Unity Insider Forum

Pfad finden


Coooder

Recommended Posts

Hallo Leute,

 

wie man auf dem angehängten Bild sehen kann, besteht mein spielfeld aus Cubes. Die Hellblauben Cubes, sind die Cubes die in Reichweite für die Einheit(Capsule) sind.

 

Wie man sieht fehlt unter der Einheit ein Cube, quasie ein Hindernis. Wie kann ich in so einem Szenario den passenden Pfad berechnen den die Einheit laufen soll? Also mal angenommen er soll z.B. hinter den fehlenden Cube laufen. Er soll weder drüber laufen noch schräg laufen.

 

Da das Spielfeld aus einzelnen Cubes besteht und die später auch noch alle bewegbar sind, kann ich mit dem NavmeshAgent hier nicht arbeiten oder?

post-4766-0-37676700-1469009379_thumb.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Coooder,

 

die einfachste und schnellste Möglichkeit ist das NavMesh von Unity zu nutzen. Für die Hindernisse gibt es NavMesh Obstacles. Das gesamte Spielfeld sollte dann zum NavMesh gehören. In deiner Logik kannst du dann natürlich in Hinblick auf die hellblauen Cubes Einschränkungen vornehmen. Wenn das Ziel per Mausklick gewählt wird, dann ist ein Klick nur auf hellblaue Cubes ein valides Ziel.

 

Alternativ müsstest du dich sonst mit A* oder anderen Algorithmen auseinander setzen oder ein Asset aus dem Store besorgen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann müssten alle cubes Obstacles sein. Kann der NavMeshAgent da drauf laufen?

Der Spieler kann die Position der Cubes später noch verändern um so neue Wege zu bauen.

Die Cubes werden auch per Code gesetzt, es gibt also auch nichts was ich für den NavMesh baken kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Ausschneiden ist als Metapher gemeint. Du legst dir ein NavMesh zu und gibt's jedem Hindernis eine Obstacle Komponente. Das heißt, dass dein NavMeshAgent um das Obstacle herum navigieren muss. Wenn das Hindernis als solches nicht mehr fungiert, dann kannst du ganz einfach die Obstacle Komponente deaktivieren. Was genau davon kannst du nicht nachvollziehen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn dann Cubes angehoben werden ensteht dort an der stelle ein Loch. Die Einheit würde jetzt aber einfach über das Loch drüber laufen da der NavMesh ja so gebaked ist. Hinzu kommt, würde jetzt eine Einheit zusätzlich auf der Plattform sein, würde sie da nich drauf laufen können, weil da ja nich gebaked wurde. (-> siehe screenshot)

 

Oder irre ich mich da?

post-4766-0-99828500-1469018142_thumb.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Probleme kannst du mit NavMesh Obstacles lösen. Dann hast du möglicherweise da "unsichtbare" Cubes stehen, die das Obstacle dann bilden. Diese Fälle werden natürlich gesondert betrachtet, aber bedienen sich der selben Möglichkeiten. Ein neues NavMesh brauch dafür nicht gebacken werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...