Coooder Geschrieben 20. Juli 2016 Melden Share Geschrieben 20. Juli 2016 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? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MarcoMeter Geschrieben 20. Juli 2016 Melden Share Geschrieben 20. Juli 2016 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 More sharing options...
Coooder Geschrieben 20. Juli 2016 Autor Melden Share Geschrieben 20. Juli 2016 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 More sharing options...
MarcoMeter Geschrieben 20. Juli 2016 Melden Share Geschrieben 20. Juli 2016 Du kannst dir es so vorstellen, dass die Obstacles einen Teil vom NavMesh ausschneiden und das dynamisch zur Laufzeit. Wenn Cubes kein Hinderniss mehr sind, dann wird einfach die Komponente des Obstacles deaktiviert. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Coooder Geschrieben 20. Juli 2016 Autor Melden Share Geschrieben 20. Juli 2016 Aber es gibt doch kein NavMesh wo die was auschneiden können. Das ganze Spielfeld besteht ja dann aus Obstacles. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MarcoMeter Geschrieben 20. Juli 2016 Melden Share Geschrieben 20. Juli 2016 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 More sharing options...
Coooder Geschrieben 20. Juli 2016 Autor Melden Share Geschrieben 20. Juli 2016 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? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MarcoMeter Geschrieben 20. Juli 2016 Melden Share Geschrieben 20. Juli 2016 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 More sharing options...
malzbie Geschrieben 20. Juli 2016 Melden Share Geschrieben 20. Juli 2016 Was hindert dich daran, ein unsichtbares Objekt mit Obstacle an dem Punkt zu belassen? Edit: Ne Hundertstel zu langsam. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Coooder Geschrieben 20. Juli 2016 Autor Melden Share Geschrieben 20. Juli 2016 Ok das mit den unsichtbaren Obstacles versteh ich. Aber wie werden die Cubes die nach oben verschoben wurden begehbar gemacht? Theoretisch kann dann da auch ne Einheit drauf sein. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.